|
1 | | -# Rslib project |
| 1 | +# @winner-fed/cloud-utils |
2 | 2 |
|
3 | | -## Setup |
| 3 | +一个实用的工具类库,提供丰富的工具函数,帮助开发者提高开发效率。 |
4 | 4 |
|
5 | | -Install the dependencies: |
| 5 | +## 特性 |
| 6 | + |
| 7 | +- 🚀 开箱即用:提供丰富的工具函数,无需重复造轮子 |
| 8 | +- 🛠️ 类型安全:使用 TypeScript 开发,提供完整的类型定义 |
| 9 | +- 📦 模块化:按需引入,减小打包体积 |
| 10 | +- 🔧 可扩展:支持自定义配置,满足不同场景需求 |
| 11 | +- 📝 文档完善:提供详细的 API 文档和使用示例 |
| 12 | +- 🔄 持续更新:定期更新,保持代码质量 |
| 13 | + |
| 14 | +## 安装 |
6 | 15 |
|
7 | 16 | ```bash |
8 | | -pnpm install |
| 17 | +# 使用 npm |
| 18 | +npm install @winner-fed/cloud-utils |
| 19 | + |
| 20 | +# 使用 yarn |
| 21 | +yarn add @winner-fed/cloud-utils |
| 22 | + |
| 23 | +# 使用 pnpm |
| 24 | +pnpm add @winner-fed/cloud-utils |
9 | 25 | ``` |
10 | 26 |
|
11 | | -## Get started |
| 27 | +## 使用 |
12 | 28 |
|
13 | | -Build the library: |
| 29 | +### 按需引入 |
14 | 30 |
|
15 | | -```bash |
16 | | -pnpm build |
| 31 | +```typescript |
| 32 | +import { formatDate, debounce } from '@winner-fed/cloud-utils'; |
| 33 | + |
| 34 | +// 使用日期格式化 |
| 35 | +const formattedDate = formatDate(new Date(), 'YYYY-MM-DD'); |
| 36 | + |
| 37 | +// 使用防抖函数 |
| 38 | +const debouncedFn = debounce(() => { |
| 39 | + console.log('执行防抖函数'); |
| 40 | +}, 300); |
17 | 41 | ``` |
18 | 42 |
|
19 | | -Build the library in watch mode: |
| 43 | +### 完整引入 |
| 44 | + |
| 45 | +```typescript |
| 46 | +import * as utils from '@winner-fed/cloud-utils'; |
| 47 | + |
| 48 | +// 使用工具函数 |
| 49 | +const result = utils.formatDate(new Date(), 'YYYY-MM-DD'); |
| 50 | +``` |
| 51 | + |
| 52 | +## 功能分类 |
| 53 | + |
| 54 | +### 日期处理 |
| 55 | +- `formatDate`: 日期格式化 |
| 56 | +- `formatDateToTimeStamp`: 日期转时间戳 |
| 57 | +- `getMonthOfDay`: 获取月份天数 |
| 58 | +- `getYearOfDay`: 获取年份天数 |
| 59 | +- `isLeapYear`: 判断是否为闰年 |
| 60 | + |
| 61 | +### 数学计算 |
| 62 | +- `accAdd`: 精确加法 |
| 63 | +- `preZeroFill`: 数字前补零 |
| 64 | +- `toNonExponential`: 数字转非科学计数法 |
| 65 | +- `formatNumber`: 数字格式化 |
| 66 | + |
| 67 | +### 类型判断 |
| 68 | +- `is`: 类型判断工具集 |
| 69 | +- `isEmpty`: 判断是否为空 |
| 70 | +- `isEmptyObject`: 判断是否为空对象 |
| 71 | +- `isValidDate`: 判断是否为有效日期 |
| 72 | +- `isDigit`: 判断是否为数字 |
| 73 | +- `isLetters`: 判断是否为字母 |
| 74 | +- `isHTML`: 判断是否为 HTML 字符串 |
| 75 | + |
| 76 | +### 字符串处理 |
| 77 | +- `trim`: 去除空格 |
| 78 | +- `toZhCN`: 转中文数字 |
| 79 | +- `numberToChinese`: 数字转中文 |
| 80 | +- `toCamelCaseVar`: 转驼峰变量 |
| 81 | +- `toUnderlineVar`: 转下划线变量 |
| 82 | +- `transferHumpUnderline`: 驼峰下划线互转 |
| 83 | + |
| 84 | +### DOM 操作 |
| 85 | +- `addClass`: 添加类名 |
| 86 | +- `removeClass`: 移除类名 |
| 87 | +- `scrollToTop`: 滚动到顶部 |
| 88 | +- `getScrollPos`: 获取滚动位置 |
| 89 | +- `insertAtCaret`: 在光标处插入内容 |
| 90 | +- `getPixelRatio`: 获取设备像素比 |
| 91 | + |
| 92 | +### 工具函数 |
| 93 | +- `debounce`: 防抖函数 |
| 94 | +- `throttle`: 节流函数 |
| 95 | +- `deepClone`: 深拷贝 |
| 96 | +- `deepMapKeys`: 深度映射键名 |
| 97 | +- `promisify`: Promise 化 |
| 98 | +- `timeTaken`: 计算执行时间 |
| 99 | +- `anagrams`: 生成字符串的所有排列组合 |
| 100 | + |
| 101 | +### 数据处理 |
| 102 | +- `merge`: 对象合并 |
| 103 | +- `only`: 对象过滤 |
| 104 | +- `size`: 获取对象大小 |
| 105 | +- `dig`: 深度获取对象属性 |
| 106 | +- `objectToPairs`: 对象转键值对数组 |
| 107 | +- `objectFromPairs`: 键值对数组转对象 |
| 108 | +- `mapKeys`: 映射对象键名 |
| 109 | +- `mapValues`: 映射对象值 |
| 110 | + |
| 111 | +### 文件处理 |
| 112 | +- `photoCompress`: 图片压缩 |
| 113 | +- `exportXls`: 导出 Excel |
| 114 | +- `prettyBytes`: 格式化文件大小 |
| 115 | +- `dynamicLoadScript`: 动态加载脚本 |
| 116 | + |
| 117 | +### 设备检测 |
| 118 | +- `getDevice`: 获取设备信息 |
| 119 | +- `isMobile`: 判断是否为移动设备 |
| 120 | +- `isMobileStrict`: 严格判断是否为移动设备 |
| 121 | +- `isMobileLoose`: 宽松判断是否为移动设备 |
| 122 | +- `isPhoneX`: 判断是否为 iPhone X |
| 123 | +- `isLightOS`: 判断是否为轻量级操作系统 |
| 124 | + |
| 125 | +### 验证工具 |
| 126 | +- `isValidEmail`: 验证邮箱 |
| 127 | +- `isValidPassword`: 验证密码 |
| 128 | +- `isValidTelephone`: 验证电话号码 |
| 129 | +- `isValidChineseName`: 验证中文姓名 |
| 130 | +- `isValidEnglishName`: 验证英文姓名 |
| 131 | +- `isValidBankNo`: 验证银行卡号 |
| 132 | +- `isValidIPV4`: 验证 IPv4 地址 |
| 133 | +- `isValidIPV6`: 验证 IPv6 地址 |
| 134 | +- `isValidURI`: 验证 URI |
| 135 | +- `isValidBase64Format`: 验证 Base64 格式 |
| 136 | +- `isValidMD5`: 验证 MD5 格式 |
| 137 | +- `isValidSemverVersion`: 验证语义化版本号 |
| 138 | +- `isValidSubnetMask`: 验证子网掩码 |
| 139 | +- `isValidTestScores`: 验证考试成绩 |
| 140 | +- `isValidZipcode`: 验证邮政编码 |
| 141 | +- `isValidWechatID`: 验证微信号 |
| 142 | +- `isValidQQ`: 验证 QQ 号 |
| 143 | +- `isValidPassport`: 验证护照号 |
| 144 | +- `isValidLicenseNo`: 验证车牌号 |
| 145 | +- `isValidNewEnergyLicenseNo`: 验证新能源车牌号 |
| 146 | +- `isValidUnifiedSocialCreditCode`: 验证统一社会信用代码 |
| 147 | +- `isValidAShareCode`: 验证 A 股代码 |
| 148 | + |
| 149 | +### URL 处理 |
| 150 | +- `urlJoin`: URL 拼接 |
| 151 | +- `getURLParameters`: 获取 URL 参数 |
| 152 | +- `getLocationSearchParam`: 获取 URL 搜索参数 |
| 153 | +- `getLocationHrefParam`: 获取 URL 哈希参数 |
| 154 | +- `getUrlNames`: 获取 URL 路径名 |
| 155 | + |
| 156 | +### 其他工具 |
| 157 | +- `cookie`: Cookie 操作 |
| 158 | +- `encrypt`: 加密工具 |
| 159 | +- `getRandomInt`: 获取随机整数 |
| 160 | +- `handleEmoji`: 处理表情符号 |
| 161 | +- `isEmoji`: 判断是否为表情符号 |
| 162 | +- `isSpecialChar`: 判断是否为特殊字符 |
| 163 | +- `rgbToHex`: RGB 转十六进制 |
| 164 | +- `setDocumentTitle`: 设置文档标题 |
| 165 | + |
| 166 | +## 开发 |
20 | 167 |
|
21 | 168 | ```bash |
| 169 | +# 安装依赖 |
| 170 | +pnpm install |
| 171 | + |
| 172 | +# 开发模式 |
22 | 173 | pnpm dev |
| 174 | + |
| 175 | +# 构建 |
| 176 | +pnpm build |
| 177 | + |
| 178 | +# 测试 |
| 179 | +pnpm test |
| 180 | + |
| 181 | +# 文档开发 |
| 182 | +pnpm docs:dev |
| 183 | + |
| 184 | +# 文档构建 |
| 185 | +pnpm docs:build |
23 | 186 | ``` |
| 187 | + |
| 188 | +## 贡献 |
| 189 | + |
| 190 | +欢迎提交 Issue 和 Pull Request。 |
| 191 | + |
| 192 | +## 许可证 |
| 193 | + |
| 194 | +[MIT](LICENSE) |
0 commit comments