aidly

[![NPM version](https://img.shields.io/npm/v/aidly.svg?style=flat-square)](https://www.npmjs.com/package/aidly)
[English](./README.md) | 简体中文

纯 JavaScript 运行时的一个工具函数集合,能够很好的进行 tree-shaking。 ### 调试平台 > https://imtaotao.github.io/aidly/ ### 使用 ```js import { clone } from 'aidly'; console.log(clone(/a/ig)); // `/a/gi` ``` ### CDN ```html ``` ### API 以下是所有的函数。如果您有其他需要的函数,请在 [Issues](https://github.com/imtaotao/aidly/issues) 中添加话题讨论。 > https://unpkg.com/browse/aidly/dist/index.d.ts Api | 描述 -------------------- | -------------------------------------- `throttle` | Throttle 函数, 第一次调用时,将立即触发函数调用。 `debounce` | Debounce 函数, 第一次调用时,将立即触发函数调用。 `loopSlice` | 切片指定次数的循环,默认切片时间为 `17ms`。 `colors` | 一些默认的颜色值。 `uuid` | 生成一个 `uuid`。 `noop` | 一个空箭头函数。 `qsParse` | Query string 解析。 `qsStringify` | Query string 格式化为字符串。 `rgbToHsl` | `RGB` 转换为 `Hsl`。 `rgbToHex` | `RGB` 转换为 `Hexadecimal`。 `rgbToAnsi256` | `RGB` 转换为 `Ansi256`。 `hslToRgb` | `Hsl` 转换为 `RGB`。 `hexToRgb` | `Hexadecimal` 转换为 `RGB`。 `ansi256ToRgb` | `Ansi256` 转换为 `RGB`。 `randomColor` | 生成随机颜色值,默认格式为 `RGB` 格式。 `assert` | 断言一个条件。 `raf` | `requestAnimationFrame` 的兼容性处理。 `now` | `Date.now` 和 `performance.now` 的兼容性处理。 `idleCallback` | `requestIdleCallback` 的兼容性处理。 `isAbsolute` | 判断一个路径在浏览器中是否是绝对路径。 `last` | 返回数组中的倒数第 `n` 个元素(默认是最后一个元素)。 `uniq` | 数组去重。 `hasOwn` | `Object.hasOwnProperty.call` 别名. `slash` | 替换 `\` 为 `/`. `makeMap` | 将 `Array` 转换为 `Record boolean>`。 `decimalPlaces` | 返回数字的小数位数。 `random` | 返回指定范围内的随机数。如果仅指定一个参数 `T`,则范围默认为 `0 ~ T`。 `once` | 生成一个只会执行一次的高阶函数。 `sleep` | 暂停 `n` 毫秒,返回一个 promise。 `remove` | 从 `Array` 或 `Set` 中删除指定元素。 `map` | 对 `Object`,`Array`,`Set` 执行 map 操作并返回一个全新的副本。 `retry` | 重试函数,直到成功或达到最大重试次数。 `toCamelCase` | 将字符串转换为 `camelCase` 或 `pascalCase` 命名,默认处理 `_` 和 `-`。 `capitalize` | 将字符串的首字母转换为大写。 `getExtname` | 获取 url 的 `extname`。 `getIteratorFn` | 获取一个对象的迭代器函数。 `sortKeys` | 对 `Object` 的键进行排序并返回一个新的副本。 `clearUndef` | 从对象中清除 `undefined` 的值。 `pick` | 从一个对象中选择所需的属性值并返回一个新的副本。 `omit` | 从一个对象中过滤传入的属性值并返回一个新的副本。 `unindent` | 格式化模板字符串 `(unindet(string))`。 `deferred` | 返回一个 `deferred` 对象。 `supportWasm` | 检查当前环境是否支持 `WebAssembly`。 `isBrowser` | 检查是否处于浏览器环境中。 `isNil` | 检查一个值是否是 `null` 或 `undefined`。 `isNumber` | 检查一个值是否是 `Number`。 `isBigInt` | 检查一个值是否是 `BigInt`。 `isString` | 检查一个值是否是 `String`。 `isFunction` | 检查一个值是否是 `Function`。 `isObject` | 检查一个值是否是 `Object`。 `isPlainObject` | 检查一个值是否是 `plainObject`。 `isDate` | 检查一个值是否是 `Date`。 `isRegExp` | 检查一个值是否是 `RegExp`。 `isSet` | 检查一个值是否是 `Set`。 `isWeakSet` | 检查一个值是否是 `WeakSet`。 `isMap` | 检查一个值是否是 `Map`。 `isWeakMap` | 检查一个值是否是 `WeakMap`。 `isPromise` | 检查一个值是否是 `PromiseLike`。 `isPrimitiveValue` | 检查一个值是否是原始类型的值。 `isEmptyObject` | 检查一个对象是否是一个空对象。 `isWhitespace` | 检查一个字符是否为空白字符。 `isWindow` | 检查一个对象是否是 `window` 对象。 `isBase64` | 检查一个字符串是否是有效的 base64 字符串。 `isInBounds` | 检查数字是否在指定范围内 `(isInBounds([1, 5], 2))`。 `isIP` | 检查是否是有效的 `IP` 地址。 `isDomain` | 检查是否是一个有效的 `域名`。 `isPort` | 检查是否是一个有效的 `端口`。 `isEmail` | 检查是否是一个有效的 `email`。 `isPhone` | 检查是否是一个有效的 `手机号码`。 `isCNPhone` | 检查是否是一个 `中国大陆` 有效的 `手机号码`。 `root` | 为全局对象提供的别名,兼容不同环境。 `Result` | 结果类,用于处理异步操作的结果。 `Runner` | 运行器类,用于包装同步/异步函数,统计耗时,状态码,提供调用前后的钩子。 `KV` | 键值对类型。 `inlineString` | 将字符串常量化。 `topologicalSort` | 对有向无环图进行拓扑排序。 `exec` | 执行一段 js 代码,可以以 `cjs`,`esm` 和普通模式来执行代码,默认为普通模式。 `mathExprEvaluate` | 数学计算表达式求值。 `batchProcess` | 用于事务的批量处理,例如: `const set = batchProcess({ ms: 50, process(ls) { ... } });`。 `createCacheObject` | 创建一个在内存中的缓存系统。 `jsonParse` | 将 `json` 字符串解析为对象,能够处理引用关系(包括循环引用)。 `jsonStringify` | 将对象格式化为 `json` 字符串,能够处理引用关系(包括循环引用)。 `merge` | 合并两个 `Object` 或 `Array` 并返回一个新对象或数组,而不处理循环引用。 `clone` | 克隆一个允许循环引用的对象,类型包括`Object`,`Array`,`TypeArray`,`Set`,`Map`,`RegExp`,`Date`,`Promise`,`Buffer`,`Response`,`setter/getter`,`Non-enumerable 属性(默认不克隆)`。