zhiaiwan-utils
v1.0.3
Published
现代前端与 Node.js 通用工具函数库
Maintainers
Readme
zhiaiwan-utils
现代前端与 Node.js 通用工具函数库。支持 UMD / AMD / CMD / CommonJS / ESM,完整 TypeScript 类型,以及子路径按需引入。
安装
npm install zhiaiwan-utils
# 或
pnpm add zhiaiwan-utils使用
子路径按需引入(推荐)
import { forEach } from 'zhiaiwan-utils/array';
import { get } from 'zhiaiwan-utils/object';
const collected: number[] = [];
forEach([1, 2, 3, 4], (n) => collected.push(n));
// collected => [1, 2, 3, 4]整包引入
import { forEach, get, version } from 'zhiaiwan-utils';Node.js(CommonJS)
const { forEach } = require('zhiaiwan-utils');
const { forEachRight } = require('zhiaiwan-utils/array');浏览器(UMD 全局变量)
<script src="https://unpkg.com/zhiaiwan-utils/dist/umd/zhiaiwan-utils.min.js"></script>
<script>
zhiaiwanUtils.forEach([1, 2, 3, 4], (n) => console.log(n));
zhiaiwanUtils.version;
</script>模块清单
| 模块 | 引入路径 | 函数 |
|------|----------|------|
| array | zhiaiwan-utils/array | forEach、forEachRight、each、find、findLast、findIndex、findLastIndex、filter、map、some、every、includes、concat、compact、chunk、union、intersection、difference、differenceBy、without、groupBy、keyBy、partition、uniq、uniqBy、sortBy、orderBy、maxBy、minBy、sum、sumBy、meanBy、min、max、mean、reduce、reduceRight、flatten、flattenDeep、head、last、take、drop |
| object | zhiaiwan-utils/object | clone、cloneDeep、cloneWith、cloneDeepWith、get、set、has、findKey、findLastKey、pick、pickBy、omit、omitBy、merge、mergeWith、unset、defaults、defaultsDeep、assign、keys、values、mapKeys、mapValues、invert、fromPairs、forOwn、forIn、update、updateWith |
| convert | zhiaiwan-utils/convert | toArray、toFinite、toInteger、toLength、toNumber、toSafeInteger、toString、toPath、toPlainObject、toPairs、toPairsIn、toLower、toUpper |
| tree | zhiaiwan-utils/tree | traverseTree、traverseTreeBfs、forEachTree、findTreeNode、filterTreeNodes、getParentNodes、toTree、toFlatList、getTreeDepth、mapTree、pruneTree |
| string | zhiaiwan-utils/string | trim、trimStart、trimEnd、startsWith、endsWith、pad、padStart、padEnd、escape、unescape、repeat、camelCase、kebabCase、snakeCase、capitalize、lowerCase、upperFirst |
| util | zhiaiwan-utils/util | noop、identity、delay、defer、now、uniqueId、sleep、validateFields、defaultTo、size、range、times、constant、negate、iteratee、property、matches、matchesProperty、clamp、inRange、random |
| verify | zhiaiwan-utils/verify | isString、isNumber、isBoolean、isArray、isArguments、isArrayBuffer、isTypedArray、isBuffer、isFunction、isNative、isObject、isPlainObject、isUndefined、isNull、isNil、isDate、isRegExp、isSymbol、isInteger、isSafeInteger、isLength、isEmpty、isMap、isSet、isWeakMap、isWeakSet、isError、isEqual、isEqualWith、isNaN、isFinite、isMatch、isMatchWith、isArrayLike、isObjectLike、isElement |
| function | zhiaiwan-utils/function | once、debounce、throttle、before、after、memoize、partial、partialRight、flow、flowRight、curry |
| color | zhiaiwan-utils/color | rgbToHex、hexToRgb、rgbStringToHex、getCssVariable、getThemePalette |
此外主入口导出 version(当前库版本号)。
发布产物
| 目录 | 格式 | 说明 |
|------|------|------|
| dist/cjs/ | CommonJS | 保留目录树,支持子路径 require |
| dist/esm/ | ESM | 支持 Tree Shaking |
| dist/types/ | TypeScript 声明 | 与 package.json 的 exports 字段映射 |
| dist/umd/ | UMD 单文件 | .js / .min.js,全局名 zhiaiwanUtils |
开发脚本
pnpm test # Jest 单元测试
pnpm test:coverage # 覆盖率(阈值 80%)
pnpm bench # 性能基准测试
pnpm lint # ESLint目录约定
- 一函数一文件:每个工具函数独占
.ts文件,默认导出 - 模块聚合:每个子目录
index.ts统一 re-export - 内部共享:
src/_internal/存放库内共享逻辑,不对外 export - 版本号:
src/version.ts由构建流程自动生成,勿手改
