npm.io
0.8.0 • Published yesterday

patbear_js_common

Licence
MIT
Version
0.8.0
Deps
0
Size
532 kB
Vulns
0
Weekly
0

PatBear JS Common

一个简单、实用的JavaScript工具库,提供常用的工具函数、验证器和格式化器。

安装

使用npm安装:

npm install patbear_js_common

使用yarn安装:

yarn add patbear_js_common

功能特点

  • 轻量化: 体积小,按需引入
  • 模块化: 清晰的模块结构,易于使用
  • 全面: 涵盖工具函数、验证器和格式化器
  • 类型: 完整的TypeScript类型定义

使用方法

工具函数
import { truncate, capitalize, unique, deepMerge, formatDate } from 'patbear_js_common';

// 字符串工具
truncate('这是一个很长的字符串', 5); // '这是一个...'
capitalize('hello'); // 'Hello'

// 数组工具
const arr = [1, 2, 2, 3, 3, 4];
unique(arr); // [1, 2, 3, 4]

// 对象工具
const obj1 = { a: 1, b: { c: 2 } };
const obj2 = { b: { d: 3 }, e: 4 };
deepMerge(obj1, obj2); // { a: 1, b: { c: 2, d: 3 }, e: 4 }

// 日期工具
formatDate(new Date(), 'yyyy-MM-dd'); // '2023-06-01'
验证器
import { isEmpty, isEmail, isInRange, isValidDate } from 'patbear_js_common';

// 字符串验证
isEmpty(''); // true
isEmail('user@example.com'); // true

// 数字验证
isInRange(5, 1, 10); // true

// 日期验证
isValidDate('2023-06-01'); // true
格式化器
import { toCapitalize, toCurrency, formatDate, toRelativeTime } from 'patbear_js_common';

// 字符串格式化
toCapitalize('hello'); // 'Hello'

// 数字格式化
toCurrency(1234.56); // '¥1,234.56'

// 日期格式化
formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss'); // '2023-06-01 12:34:56'
toRelativeTime(new Date(Date.now() - 3600000)); // '1小时前'

项目路径规范

本项目使用路径别名,禁止使用相对路径导入:

// ❌ 错误的导入方式
import { formatDate } from './utils/date';

// ✅ 正确的导入方式
import { formatDate } from '@utils/date';

支持的路径别名:

  • @/* - src目录下的文件
  • @utils/* - 工具函数
  • @validators/* - 验证器函数
  • @formatters/* - 格式化器函数

API文档

工具函数
字符串工具
函数 描述 参数 返回值
truncate 截取字符串并添加省略号 str: string, maxLength: number string
capitalize 将字符串首字母大写 str: string string
camelToKebab 将驼峰命名转换为短横线命名 str: string string
kebabToCamel 将短横线命名转换为驼峰命名 str: string string
数组工具
函数 描述 参数 返回值
unique 数组去重 arr: T[] T[]
groupBy 数组分组 arr: T[], keyFn: (item: T) => K Record<K, T[]>
flatten 数组扁平化 arr: any[] T[]
removeItem 从数组中移除指定项 arr: T[], item: T boolean
对象工具
函数 描述 参数 返回值
deepMerge 深度合并对象 target: Record<string, any>, source: Record<string, any> Record<string, any>
get 从对象中获取嵌套属性值 obj: Record<string, any>, path: string, defaultValue?: T T | undefined
removeEmpty 从对象中移除值为null或undefined的属性 obj: Record<string, any> Record<string, any>
日期工具
函数 描述 参数 返回值
formatDate 格式化日期 date: Date | number, format?: string string
daysBetween 获取两个日期之间的天数差 start: Date, end: Date number
addDays 将日期增加指定天数 date: Date, days: number Date
isSameDay 判断是否为同一天 date1: Date, date2: Date boolean
验证器
字符串验证
函数 描述 参数 返回值
isEmpty 判断是否为空字符串 value: string | null | undefined boolean
isEmail 验证邮箱格式 email: string boolean
isChinesePhone 验证是否为手机号(中国大陆) phone: string boolean
isLengthBetween 验证字符串长度是否在指定范围内 value: string, min: number, max: number boolean
isUrl 验证URL格式 url: string boolean
数字验证
函数 描述 参数 返回值
isInRange 验证数字是否在指定范围内 value: number, min: number, max: number boolean
isInteger 验证是否为整数 value: number boolean
isPositive 验证是否为正数 value: number boolean
isNegative 验证是否为负数 value: number boolean
isNumeric 验证字符串是否可转换为数字 value: string boolean
日期验证
函数 描述 参数 返回值
isValidDate 验证是否为有效日期 value: any boolean
isDateInRange 验证日期是否在指定范围内 date: Date, min: Date, max: Date boolean
isFutureDate 验证日期是否为未来日期 date: Date boolean
isPastDate 验证日期是否为过去日期 date: Date boolean
isSameDate 验证是否为相同日期 date1: Date, date2: Date boolean
格式化器
字符串格式化
函数 描述 参数 返回值
toCapitalize 格式化首字母大写 str: string string
toKebabCase 格式化为短横线命名 str: string string
toCamelCase 格式化为驼峰命名 str: string string
toMasked 格式化为带掩码的字符串 str: string, start?: number, end?: number, mask?: string string
数字格式化
函数 描述 参数 返回值
toCurrency 格式化为货币 value: number, currency?: string, decimals?: number string
toPercent 格式化为百分比 value: number, decimals?: number string
toFixed 格式化为指定小数位数的数字 value: number, decimals?: number string
toThousands 格式化为带千位分隔符的数字 value: number string
toFileSize 格式化为指定单位的文件大小 bytes: number, decimals?: number string
日期格式化
函数 描述 参数 返回值
formatDate 格式化日期为指定格式 date: Date | number, format?: string string
toRelativeTime 格式化为相对时间 date: Date | number, now?: Date string
toFriendlyDate 格式化为友好的日期显示 date: Date | number string

贡献

欢迎提交Issue和Pull Request!

许可证

MIT

编译构建

本项目使用TypeScript开发,需要先编译成JavaScript才能发布。

安装依赖
npm install

或者

yarn
编译构建
npm run build

或者

yarn build

编译后的文件将输出到dist目录。

NPM发布

登录NPM

确保你已经有npm账号并已登录:

npm login
发布包

发布新版本前,请先更新package.json中的版本号,然后运行:

npm publish
发布特定标签版本

发布测试版本:

npm publish --tag beta
更新版本号

可以使用npm命令自动更新版本号:

# 更新补丁版本号 (1.0.0 -> 1.0.1)
npm version patch

# 更新次版本号 (1.0.0 -> 1.1.0)
npm version minor

# 更新主版本号 (1.0.0 -> 2.0.0)
npm version major

Keywords