Skip to content

utils

路径:packages/shared/utils
包名:@xichen-full-stack/utils

纯 TypeScript 工具函数,不依赖 Vue / axios,web、desktop、mobile 均可引用。

模块一览

模块方法典型场景
guardisNil, isNonNullable, isEmpty表单、列表判空
stringcapitalize, truncate, trimToEmpty, camelToKebab展示文案、CSS 类名
dateformatDate, formatDateTime, parseDate表格日期、日志
objectpick, omit, deepClone提交前剔除字段、拷贝表单
arrayunique, uniqueBy, groupBy下拉去重、分组
fnsleep, debounce, throttle搜索框防抖、按钮节流
urljoinUrl, buildQueryString, buildUrlAPI 路径、分页 query
numberclamp, formatFileSize, formatNumber进度条、文件大小、金额
errorgetErrorMessagecatch 块统一提示

示例

typescript
import {
  debounce,
  formatDateTime,
  getErrorMessage,
  joinUrl,
  isEmpty,
} from '@xichen-full-stack/utils'

const url = joinUrl('http://localhost:8080', '/api/v1/auth/login')

const onSearch = debounce((keyword: string) => {
  if (isEmpty(keyword)) return
  // ...
}, 300)

try {
  await doSomething()
} catch (error) {
  ElMessage.error(getErrorMessage(error, '请求失败'))
}

mobile 的 src/api/http.ts 已使用 joinUrl

构建

bash
pnpm --filter @xichen-full-stack/utils build

Turbo 全仓 pnpm build 时会因 ^build 依赖自动先构建 utils。

边界

  • 权限、菜单、路由:使用 @xichen-full-stack/auth
  • HTTP、Token:使用 @xichen-full-stack/api-client
  • API 类型:使用 @xichen-full-stack/types

相关文档

Xichen Full Stack 内部文档