zhiaiwan-utils 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (761) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +92 -0
  3. package/dist/cjs/_internal/MapCache.js +29 -0
  4. package/dist/cjs/_internal/assignSources.js +24 -0
  5. package/dist/cjs/_internal/assignValue.js +20 -0
  6. package/dist/cjs/_internal/baseClone.js +190 -0
  7. package/dist/cjs/_internal/baseCollectionKeys.js +59 -0
  8. package/dist/cjs/_internal/baseDefaultsDeep.js +59 -0
  9. package/dist/cjs/_internal/baseDifference.js +25 -0
  10. package/dist/cjs/_internal/baseExtremum.js +34 -0
  11. package/dist/cjs/_internal/baseExtremumBy.js +63 -0
  12. package/dist/cjs/_internal/baseFilter.js +61 -0
  13. package/dist/cjs/_internal/baseFind.js +153 -0
  14. package/dist/cjs/_internal/baseFlatten.js +32 -0
  15. package/dist/cjs/_internal/baseForEach.js +92 -0
  16. package/dist/cjs/_internal/baseForOwn.js +33 -0
  17. package/dist/cjs/_internal/baseIsEqual.js +161 -0
  18. package/dist/cjs/_internal/baseIsMatch.js +80 -0
  19. package/dist/cjs/_internal/baseIteratee.js +46 -0
  20. package/dist/cjs/_internal/baseKeysIn.js +44 -0
  21. package/dist/cjs/_internal/baseMap.js +49 -0
  22. package/dist/cjs/_internal/baseMerge.js +139 -0
  23. package/dist/cjs/_internal/basePad.js +40 -0
  24. package/dist/cjs/_internal/basePath.js +85 -0
  25. package/dist/cjs/_internal/baseRange.js +18 -0
  26. package/dist/cjs/_internal/baseReduce.js +77 -0
  27. package/dist/cjs/_internal/baseSum.js +27 -0
  28. package/dist/cjs/_internal/baseTreeTraverse.js +225 -0
  29. package/dist/cjs/_internal/baseTrim.js +32 -0
  30. package/dist/cjs/_internal/baseUnset.js +49 -0
  31. package/dist/cjs/_internal/baseUpdate.js +65 -0
  32. package/dist/cjs/_internal/coerceToString.js +21 -0
  33. package/dist/cjs/_internal/colorMath.js +66 -0
  34. package/dist/cjs/_internal/compareValues.js +49 -0
  35. package/dist/cjs/_internal/composePartials.js +39 -0
  36. package/dist/cjs/_internal/createCompounder.js +24 -0
  37. package/dist/cjs/_internal/deburr.js +74 -0
  38. package/dist/cjs/_internal/flattenPaths.js +21 -0
  39. package/dist/cjs/_internal/htmlEscape.js +36 -0
  40. package/dist/cjs/_internal/identity.js +11 -0
  41. package/dist/cjs/_internal/index.js +21 -0
  42. package/dist/cjs/_internal/isArguments.js +31 -0
  43. package/dist/cjs/_internal/isArrayLike.js +15 -0
  44. package/dist/cjs/_internal/isArrayLikeObject.js +15 -0
  45. package/dist/cjs/_internal/isEmptyValue.js +11 -0
  46. package/dist/cjs/_internal/isFlattenable.js +15 -0
  47. package/dist/cjs/_internal/isIndex.js +23 -0
  48. package/dist/cjs/_internal/isLength.js +15 -0
  49. package/dist/cjs/_internal/isPlainObject.js +17 -0
  50. package/dist/cjs/_internal/mergeInto.js +33 -0
  51. package/dist/cjs/_internal/repeatString.js +15 -0
  52. package/dist/cjs/_internal/toInteger.js +24 -0
  53. package/dist/cjs/_internal/toLength.js +17 -0
  54. package/dist/cjs/_internal/toPath.js +29 -0
  55. package/dist/cjs/_internal/upperFirst.js +14 -0
  56. package/dist/cjs/_internal/validateFieldRule.js +138 -0
  57. package/dist/cjs/_internal/words.js +13 -0
  58. package/dist/cjs/array/chunk.js +37 -0
  59. package/dist/cjs/array/compact.js +34 -0
  60. package/dist/cjs/array/concat.js +37 -0
  61. package/dist/cjs/array/difference.js +44 -0
  62. package/dist/cjs/array/differenceBy.js +55 -0
  63. package/dist/cjs/array/drop.js +31 -0
  64. package/dist/cjs/array/each.js +23 -0
  65. package/dist/cjs/array/every.js +69 -0
  66. package/dist/cjs/array/filter.js +26 -0
  67. package/dist/cjs/array/find.js +29 -0
  68. package/dist/cjs/array/findIndex.js +24 -0
  69. package/dist/cjs/array/findLast.js +24 -0
  70. package/dist/cjs/array/findLastIndex.js +24 -0
  71. package/dist/cjs/array/flatten.js +27 -0
  72. package/dist/cjs/array/flattenDeep.js +28 -0
  73. package/dist/cjs/array/forEach.js +32 -0
  74. package/dist/cjs/array/forEachRight.js +29 -0
  75. package/dist/cjs/array/groupBy.js +67 -0
  76. package/dist/cjs/array/head.js +21 -0
  77. package/dist/cjs/array/includes.js +60 -0
  78. package/dist/cjs/array/index.js +92 -0
  79. package/dist/cjs/array/intersection.js +51 -0
  80. package/dist/cjs/array/keyBy.js +79 -0
  81. package/dist/cjs/array/last.js +23 -0
  82. package/dist/cjs/array/map.js +26 -0
  83. package/dist/cjs/array/max.js +25 -0
  84. package/dist/cjs/array/maxBy.js +27 -0
  85. package/dist/cjs/array/mean.js +27 -0
  86. package/dist/cjs/array/meanBy.js +30 -0
  87. package/dist/cjs/array/min.js +25 -0
  88. package/dist/cjs/array/minBy.js +27 -0
  89. package/dist/cjs/array/orderBy.js +95 -0
  90. package/dist/cjs/array/partition.js +68 -0
  91. package/dist/cjs/array/reduce.js +30 -0
  92. package/dist/cjs/array/reduceRight.js +30 -0
  93. package/dist/cjs/array/some.js +66 -0
  94. package/dist/cjs/array/sortBy.js +27 -0
  95. package/dist/cjs/array/sum.js +25 -0
  96. package/dist/cjs/array/sumBy.js +31 -0
  97. package/dist/cjs/array/take.js +31 -0
  98. package/dist/cjs/array/union.js +35 -0
  99. package/dist/cjs/array/uniq.js +33 -0
  100. package/dist/cjs/array/uniqBy.js +41 -0
  101. package/dist/cjs/array/without.js +30 -0
  102. package/dist/cjs/color/getCssVariable.js +31 -0
  103. package/dist/cjs/color/getThemePalette.js +56 -0
  104. package/dist/cjs/color/hexToRgb.js +26 -0
  105. package/dist/cjs/color/index.js +16 -0
  106. package/dist/cjs/color/rgbStringToHex.js +42 -0
  107. package/dist/cjs/color/rgbToHex.js +24 -0
  108. package/dist/cjs/convert/index.js +32 -0
  109. package/dist/cjs/convert/toArray.js +56 -0
  110. package/dist/cjs/convert/toFinite.js +34 -0
  111. package/dist/cjs/convert/toInteger.js +33 -0
  112. package/dist/cjs/convert/toLength.js +30 -0
  113. package/dist/cjs/convert/toLower.js +25 -0
  114. package/dist/cjs/convert/toNumber.js +55 -0
  115. package/dist/cjs/convert/toPairs.js +24 -0
  116. package/dist/cjs/convert/toPairsIn.js +32 -0
  117. package/dist/cjs/convert/toPath.js +23 -0
  118. package/dist/cjs/convert/toPlainObject.js +39 -0
  119. package/dist/cjs/convert/toSafeInteger.js +34 -0
  120. package/dist/cjs/convert/toString.js +34 -0
  121. package/dist/cjs/convert/toUpper.js +25 -0
  122. package/dist/cjs/function/after.js +32 -0
  123. package/dist/cjs/function/before.js +32 -0
  124. package/dist/cjs/function/curry.js +57 -0
  125. package/dist/cjs/function/debounce.js +107 -0
  126. package/dist/cjs/function/flow.js +51 -0
  127. package/dist/cjs/function/flowRight.js +46 -0
  128. package/dist/cjs/function/index.js +30 -0
  129. package/dist/cjs/function/memoize.js +26 -0
  130. package/dist/cjs/function/once.js +31 -0
  131. package/dist/cjs/function/partial.js +35 -0
  132. package/dist/cjs/function/partialRight.js +33 -0
  133. package/dist/cjs/function/throttle.js +20 -0
  134. package/dist/cjs/index.js +28 -0
  135. package/dist/cjs/object/assign.js +24 -0
  136. package/dist/cjs/object/clone.js +29 -0
  137. package/dist/cjs/object/cloneDeep.js +30 -0
  138. package/dist/cjs/object/cloneDeepWith.js +30 -0
  139. package/dist/cjs/object/cloneWith.js +30 -0
  140. package/dist/cjs/object/defaults.js +23 -0
  141. package/dist/cjs/object/defaultsDeep.js +44 -0
  142. package/dist/cjs/object/findKey.js +26 -0
  143. package/dist/cjs/object/findLastKey.js +26 -0
  144. package/dist/cjs/object/forIn.js +29 -0
  145. package/dist/cjs/object/forOwn.js +29 -0
  146. package/dist/cjs/object/fromPairs.js +28 -0
  147. package/dist/cjs/object/get.js +37 -0
  148. package/dist/cjs/object/has.js +39 -0
  149. package/dist/cjs/object/index.js +64 -0
  150. package/dist/cjs/object/invert.js +34 -0
  151. package/dist/cjs/object/keys.js +25 -0
  152. package/dist/cjs/object/mapKeys.js +37 -0
  153. package/dist/cjs/object/mapValues.js +37 -0
  154. package/dist/cjs/object/merge.js +29 -0
  155. package/dist/cjs/object/mergeWith.js +41 -0
  156. package/dist/cjs/object/omit.js +36 -0
  157. package/dist/cjs/object/omitBy.js +38 -0
  158. package/dist/cjs/object/pick.js +37 -0
  159. package/dist/cjs/object/pickBy.js +38 -0
  160. package/dist/cjs/object/set.js +67 -0
  161. package/dist/cjs/object/unset.js +28 -0
  162. package/dist/cjs/object/update.js +31 -0
  163. package/dist/cjs/object/updateWith.js +33 -0
  164. package/dist/cjs/object/values.js +25 -0
  165. package/dist/cjs/string/camelCase.js +37 -0
  166. package/dist/cjs/string/capitalize.js +25 -0
  167. package/dist/cjs/string/endsWith.js +36 -0
  168. package/dist/cjs/string/escape.js +26 -0
  169. package/dist/cjs/string/index.js +40 -0
  170. package/dist/cjs/string/kebabCase.js +27 -0
  171. package/dist/cjs/string/lowerCase.js +24 -0
  172. package/dist/cjs/string/pad.js +31 -0
  173. package/dist/cjs/string/padEnd.js +31 -0
  174. package/dist/cjs/string/padStart.js +31 -0
  175. package/dist/cjs/string/repeat.js +30 -0
  176. package/dist/cjs/string/snakeCase.js +27 -0
  177. package/dist/cjs/string/startsWith.js +34 -0
  178. package/dist/cjs/string/trim.js +30 -0
  179. package/dist/cjs/string/trimEnd.js +30 -0
  180. package/dist/cjs/string/trimStart.js +30 -0
  181. package/dist/cjs/string/unescape.js +26 -0
  182. package/dist/cjs/string/upperFirst.js +25 -0
  183. package/dist/cjs/tree/filterTreeNodes.js +51 -0
  184. package/dist/cjs/tree/findTreeNode.js +45 -0
  185. package/dist/cjs/tree/forEachTree.js +33 -0
  186. package/dist/cjs/tree/getParentNodes.js +49 -0
  187. package/dist/cjs/tree/getTreeDepth.js +38 -0
  188. package/dist/cjs/tree/index.js +30 -0
  189. package/dist/cjs/tree/mapTree.js +98 -0
  190. package/dist/cjs/tree/pruneTree.js +126 -0
  191. package/dist/cjs/tree/toFlatList.js +57 -0
  192. package/dist/cjs/tree/toTree.js +71 -0
  193. package/dist/cjs/tree/traverseTree.js +29 -0
  194. package/dist/cjs/tree/traverseTreeBfs.js +29 -0
  195. package/dist/cjs/util/clamp.js +56 -0
  196. package/dist/cjs/util/constant.js +21 -0
  197. package/dist/cjs/util/defaultTo.js +28 -0
  198. package/dist/cjs/util/defer.js +25 -0
  199. package/dist/cjs/util/delay.js +25 -0
  200. package/dist/cjs/util/identity.js +22 -0
  201. package/dist/cjs/util/inRange.js +41 -0
  202. package/dist/cjs/util/index.js +48 -0
  203. package/dist/cjs/util/iteratee.js +30 -0
  204. package/dist/cjs/util/matches.js +27 -0
  205. package/dist/cjs/util/matchesProperty.js +37 -0
  206. package/dist/cjs/util/negate.js +25 -0
  207. package/dist/cjs/util/noop.js +20 -0
  208. package/dist/cjs/util/now.js +20 -0
  209. package/dist/cjs/util/property.js +33 -0
  210. package/dist/cjs/util/random.js +71 -0
  211. package/dist/cjs/util/range.js +46 -0
  212. package/dist/cjs/util/size.js +47 -0
  213. package/dist/cjs/util/sleep.js +22 -0
  214. package/dist/cjs/util/times.js +41 -0
  215. package/dist/cjs/util/uniqueId.js +26 -0
  216. package/dist/cjs/util/validateFields.js +106 -0
  217. package/dist/cjs/verify/index.js +78 -0
  218. package/dist/cjs/verify/isArguments.js +25 -0
  219. package/dist/cjs/verify/isArray.js +21 -0
  220. package/dist/cjs/verify/isArrayBuffer.js +21 -0
  221. package/dist/cjs/verify/isArrayLike.js +31 -0
  222. package/dist/cjs/verify/isBoolean.js +21 -0
  223. package/dist/cjs/verify/isBuffer.js +23 -0
  224. package/dist/cjs/verify/isDate.js +21 -0
  225. package/dist/cjs/verify/isElement.js +26 -0
  226. package/dist/cjs/verify/isEmpty.js +44 -0
  227. package/dist/cjs/verify/isEqual.js +30 -0
  228. package/dist/cjs/verify/isEqualWith.js +31 -0
  229. package/dist/cjs/verify/isError.js +23 -0
  230. package/dist/cjs/verify/isFinite.js +28 -0
  231. package/dist/cjs/verify/isFunction.js +22 -0
  232. package/dist/cjs/verify/isInteger.js +22 -0
  233. package/dist/cjs/verify/isLength.js +26 -0
  234. package/dist/cjs/verify/isMap.js +21 -0
  235. package/dist/cjs/verify/isMatch.js +30 -0
  236. package/dist/cjs/verify/isMatchWith.js +31 -0
  237. package/dist/cjs/verify/isNaN.js +28 -0
  238. package/dist/cjs/verify/isNative.js +25 -0
  239. package/dist/cjs/verify/isNil.js +27 -0
  240. package/dist/cjs/verify/isNull.js +21 -0
  241. package/dist/cjs/verify/isNumber.js +24 -0
  242. package/dist/cjs/verify/isObject.js +26 -0
  243. package/dist/cjs/verify/isObjectLike.js +30 -0
  244. package/dist/cjs/verify/isPlainObject.js +25 -0
  245. package/dist/cjs/verify/isRegExp.js +21 -0
  246. package/dist/cjs/verify/isSafeInteger.js +30 -0
  247. package/dist/cjs/verify/isSet.js +21 -0
  248. package/dist/cjs/verify/isString.js +21 -0
  249. package/dist/cjs/verify/isSymbol.js +21 -0
  250. package/dist/cjs/verify/isTypedArray.js +38 -0
  251. package/dist/cjs/verify/isUndefined.js +21 -0
  252. package/dist/cjs/verify/isWeakMap.js +21 -0
  253. package/dist/cjs/verify/isWeakSet.js +21 -0
  254. package/dist/cjs/version.js +17 -0
  255. package/dist/esm/_internal/MapCache.js +26 -0
  256. package/dist/esm/_internal/assignSources.js +21 -0
  257. package/dist/esm/_internal/assignValue.js +17 -0
  258. package/dist/esm/_internal/baseClone.js +187 -0
  259. package/dist/esm/_internal/baseCollectionKeys.js +52 -0
  260. package/dist/esm/_internal/baseDefaultsDeep.js +53 -0
  261. package/dist/esm/_internal/baseDifference.js +22 -0
  262. package/dist/esm/_internal/baseExtremum.js +28 -0
  263. package/dist/esm/_internal/baseExtremumBy.js +57 -0
  264. package/dist/esm/_internal/baseFilter.js +55 -0
  265. package/dist/esm/_internal/baseFind.js +145 -0
  266. package/dist/esm/_internal/baseFlatten.js +26 -0
  267. package/dist/esm/_internal/baseForEach.js +86 -0
  268. package/dist/esm/_internal/baseForOwn.js +26 -0
  269. package/dist/esm/_internal/baseIsEqual.js +158 -0
  270. package/dist/esm/_internal/baseIsMatch.js +74 -0
  271. package/dist/esm/_internal/baseIteratee.js +40 -0
  272. package/dist/esm/_internal/baseKeysIn.js +38 -0
  273. package/dist/esm/_internal/baseMap.js +43 -0
  274. package/dist/esm/_internal/baseMerge.js +132 -0
  275. package/dist/esm/_internal/basePad.js +34 -0
  276. package/dist/esm/_internal/basePath.js +77 -0
  277. package/dist/esm/_internal/baseRange.js +15 -0
  278. package/dist/esm/_internal/baseReduce.js +71 -0
  279. package/dist/esm/_internal/baseSum.js +21 -0
  280. package/dist/esm/_internal/baseTreeTraverse.js +219 -0
  281. package/dist/esm/_internal/baseTrim.js +29 -0
  282. package/dist/esm/_internal/baseUnset.js +43 -0
  283. package/dist/esm/_internal/baseUpdate.js +59 -0
  284. package/dist/esm/_internal/coerceToString.js +18 -0
  285. package/dist/esm/_internal/colorMath.js +56 -0
  286. package/dist/esm/_internal/compareValues.js +45 -0
  287. package/dist/esm/_internal/composePartials.js +35 -0
  288. package/dist/esm/_internal/createCompounder.js +18 -0
  289. package/dist/esm/_internal/deburr.js +71 -0
  290. package/dist/esm/_internal/flattenPaths.js +18 -0
  291. package/dist/esm/_internal/htmlEscape.js +32 -0
  292. package/dist/esm/_internal/identity.js +8 -0
  293. package/dist/esm/_internal/index.js +8 -0
  294. package/dist/esm/_internal/isArguments.js +28 -0
  295. package/dist/esm/_internal/isArrayLike.js +9 -0
  296. package/dist/esm/_internal/isArrayLikeObject.js +9 -0
  297. package/dist/esm/_internal/isEmptyValue.js +8 -0
  298. package/dist/esm/_internal/isFlattenable.js +9 -0
  299. package/dist/esm/_internal/isIndex.js +20 -0
  300. package/dist/esm/_internal/isLength.js +12 -0
  301. package/dist/esm/_internal/isPlainObject.js +14 -0
  302. package/dist/esm/_internal/mergeInto.js +27 -0
  303. package/dist/esm/_internal/repeatString.js +12 -0
  304. package/dist/esm/_internal/toInteger.js +21 -0
  305. package/dist/esm/_internal/toLength.js +11 -0
  306. package/dist/esm/_internal/toPath.js +26 -0
  307. package/dist/esm/_internal/upperFirst.js +11 -0
  308. package/dist/esm/_internal/validateFieldRule.js +132 -0
  309. package/dist/esm/_internal/words.js +10 -0
  310. package/dist/esm/array/chunk.js +31 -0
  311. package/dist/esm/array/compact.js +31 -0
  312. package/dist/esm/array/concat.js +34 -0
  313. package/dist/esm/array/difference.js +38 -0
  314. package/dist/esm/array/differenceBy.js +49 -0
  315. package/dist/esm/array/drop.js +25 -0
  316. package/dist/esm/array/each.js +18 -0
  317. package/dist/esm/array/every.js +63 -0
  318. package/dist/esm/array/filter.js +20 -0
  319. package/dist/esm/array/find.js +26 -0
  320. package/dist/esm/array/findIndex.js +21 -0
  321. package/dist/esm/array/findLast.js +21 -0
  322. package/dist/esm/array/findLastIndex.js +21 -0
  323. package/dist/esm/array/flatten.js +21 -0
  324. package/dist/esm/array/flattenDeep.js +22 -0
  325. package/dist/esm/array/forEach.js +26 -0
  326. package/dist/esm/array/forEachRight.js +23 -0
  327. package/dist/esm/array/groupBy.js +61 -0
  328. package/dist/esm/array/head.js +18 -0
  329. package/dist/esm/array/includes.js +54 -0
  330. package/dist/esm/array/index.js +43 -0
  331. package/dist/esm/array/intersection.js +48 -0
  332. package/dist/esm/array/keyBy.js +73 -0
  333. package/dist/esm/array/last.js +20 -0
  334. package/dist/esm/array/map.js +20 -0
  335. package/dist/esm/array/max.js +19 -0
  336. package/dist/esm/array/maxBy.js +21 -0
  337. package/dist/esm/array/mean.js +21 -0
  338. package/dist/esm/array/meanBy.js +24 -0
  339. package/dist/esm/array/min.js +19 -0
  340. package/dist/esm/array/minBy.js +21 -0
  341. package/dist/esm/array/orderBy.js +89 -0
  342. package/dist/esm/array/partition.js +62 -0
  343. package/dist/esm/array/reduce.js +24 -0
  344. package/dist/esm/array/reduceRight.js +24 -0
  345. package/dist/esm/array/some.js +60 -0
  346. package/dist/esm/array/sortBy.js +21 -0
  347. package/dist/esm/array/sum.js +19 -0
  348. package/dist/esm/array/sumBy.js +25 -0
  349. package/dist/esm/array/take.js +25 -0
  350. package/dist/esm/array/union.js +32 -0
  351. package/dist/esm/array/uniq.js +30 -0
  352. package/dist/esm/array/uniqBy.js +35 -0
  353. package/dist/esm/array/without.js +24 -0
  354. package/dist/esm/color/getCssVariable.js +28 -0
  355. package/dist/esm/color/getThemePalette.js +53 -0
  356. package/dist/esm/color/hexToRgb.js +23 -0
  357. package/dist/esm/color/index.js +5 -0
  358. package/dist/esm/color/rgbStringToHex.js +36 -0
  359. package/dist/esm/color/rgbToHex.js +21 -0
  360. package/dist/esm/convert/index.js +13 -0
  361. package/dist/esm/convert/toArray.js +50 -0
  362. package/dist/esm/convert/toFinite.js +28 -0
  363. package/dist/esm/convert/toInteger.js +27 -0
  364. package/dist/esm/convert/toLength.js +24 -0
  365. package/dist/esm/convert/toLower.js +19 -0
  366. package/dist/esm/convert/toNumber.js +52 -0
  367. package/dist/esm/convert/toPairs.js +21 -0
  368. package/dist/esm/convert/toPairsIn.js +29 -0
  369. package/dist/esm/convert/toPath.js +16 -0
  370. package/dist/esm/convert/toPlainObject.js +36 -0
  371. package/dist/esm/convert/toSafeInteger.js +28 -0
  372. package/dist/esm/convert/toString.js +31 -0
  373. package/dist/esm/convert/toUpper.js +19 -0
  374. package/dist/esm/function/after.js +29 -0
  375. package/dist/esm/function/before.js +29 -0
  376. package/dist/esm/function/curry.js +53 -0
  377. package/dist/esm/function/debounce.js +104 -0
  378. package/dist/esm/function/flow.js +49 -0
  379. package/dist/esm/function/flowRight.js +43 -0
  380. package/dist/esm/function/index.js +11 -0
  381. package/dist/esm/function/memoize.js +20 -0
  382. package/dist/esm/function/once.js +28 -0
  383. package/dist/esm/function/partial.js +31 -0
  384. package/dist/esm/function/partialRight.js +30 -0
  385. package/dist/esm/function/throttle.js +14 -0
  386. package/dist/esm/index.js +10 -0
  387. package/dist/esm/object/assign.js +21 -0
  388. package/dist/esm/object/clone.js +23 -0
  389. package/dist/esm/object/cloneDeep.js +24 -0
  390. package/dist/esm/object/cloneDeepWith.js +24 -0
  391. package/dist/esm/object/cloneWith.js +24 -0
  392. package/dist/esm/object/defaults.js +20 -0
  393. package/dist/esm/object/defaultsDeep.js +38 -0
  394. package/dist/esm/object/findKey.js +23 -0
  395. package/dist/esm/object/findLastKey.js +23 -0
  396. package/dist/esm/object/forIn.js +23 -0
  397. package/dist/esm/object/forOwn.js +23 -0
  398. package/dist/esm/object/fromPairs.js +25 -0
  399. package/dist/esm/object/get.js +31 -0
  400. package/dist/esm/object/has.js +33 -0
  401. package/dist/esm/object/index.js +29 -0
  402. package/dist/esm/object/invert.js +31 -0
  403. package/dist/esm/object/keys.js +22 -0
  404. package/dist/esm/object/mapKeys.js +31 -0
  405. package/dist/esm/object/mapValues.js +31 -0
  406. package/dist/esm/object/merge.js +23 -0
  407. package/dist/esm/object/mergeWith.js +35 -0
  408. package/dist/esm/object/omit.js +30 -0
  409. package/dist/esm/object/omitBy.js +32 -0
  410. package/dist/esm/object/pick.js +31 -0
  411. package/dist/esm/object/pickBy.js +32 -0
  412. package/dist/esm/object/set.js +61 -0
  413. package/dist/esm/object/unset.js +22 -0
  414. package/dist/esm/object/update.js +25 -0
  415. package/dist/esm/object/updateWith.js +27 -0
  416. package/dist/esm/object/values.js +22 -0
  417. package/dist/esm/string/camelCase.js +31 -0
  418. package/dist/esm/string/capitalize.js +19 -0
  419. package/dist/esm/string/endsWith.js +30 -0
  420. package/dist/esm/string/escape.js +20 -0
  421. package/dist/esm/string/index.js +17 -0
  422. package/dist/esm/string/kebabCase.js +22 -0
  423. package/dist/esm/string/lowerCase.js +19 -0
  424. package/dist/esm/string/pad.js +25 -0
  425. package/dist/esm/string/padEnd.js +25 -0
  426. package/dist/esm/string/padStart.js +25 -0
  427. package/dist/esm/string/repeat.js +24 -0
  428. package/dist/esm/string/snakeCase.js +22 -0
  429. package/dist/esm/string/startsWith.js +28 -0
  430. package/dist/esm/string/trim.js +24 -0
  431. package/dist/esm/string/trimEnd.js +24 -0
  432. package/dist/esm/string/trimStart.js +24 -0
  433. package/dist/esm/string/unescape.js +20 -0
  434. package/dist/esm/string/upperFirst.js +19 -0
  435. package/dist/esm/tree/filterTreeNodes.js +45 -0
  436. package/dist/esm/tree/findTreeNode.js +39 -0
  437. package/dist/esm/tree/forEachTree.js +27 -0
  438. package/dist/esm/tree/getParentNodes.js +43 -0
  439. package/dist/esm/tree/getTreeDepth.js +32 -0
  440. package/dist/esm/tree/index.js +12 -0
  441. package/dist/esm/tree/mapTree.js +95 -0
  442. package/dist/esm/tree/pruneTree.js +123 -0
  443. package/dist/esm/tree/toFlatList.js +51 -0
  444. package/dist/esm/tree/toTree.js +68 -0
  445. package/dist/esm/tree/traverseTree.js +23 -0
  446. package/dist/esm/tree/traverseTreeBfs.js +23 -0
  447. package/dist/esm/util/clamp.js +53 -0
  448. package/dist/esm/util/constant.js +18 -0
  449. package/dist/esm/util/defaultTo.js +25 -0
  450. package/dist/esm/util/defer.js +19 -0
  451. package/dist/esm/util/delay.js +22 -0
  452. package/dist/esm/util/identity.js +17 -0
  453. package/dist/esm/util/inRange.js +38 -0
  454. package/dist/esm/util/index.js +21 -0
  455. package/dist/esm/util/iteratee.js +24 -0
  456. package/dist/esm/util/matches.js +21 -0
  457. package/dist/esm/util/matchesProperty.js +31 -0
  458. package/dist/esm/util/negate.js +22 -0
  459. package/dist/esm/util/noop.js +17 -0
  460. package/dist/esm/util/now.js +17 -0
  461. package/dist/esm/util/property.js +27 -0
  462. package/dist/esm/util/random.js +68 -0
  463. package/dist/esm/util/range.js +40 -0
  464. package/dist/esm/util/size.js +41 -0
  465. package/dist/esm/util/sleep.js +19 -0
  466. package/dist/esm/util/times.js +35 -0
  467. package/dist/esm/util/uniqueId.js +23 -0
  468. package/dist/esm/util/validateFields.js +100 -0
  469. package/dist/esm/verify/index.js +36 -0
  470. package/dist/esm/verify/isArguments.js +18 -0
  471. package/dist/esm/verify/isArray.js +18 -0
  472. package/dist/esm/verify/isArrayBuffer.js +18 -0
  473. package/dist/esm/verify/isArrayLike.js +25 -0
  474. package/dist/esm/verify/isBoolean.js +18 -0
  475. package/dist/esm/verify/isBuffer.js +20 -0
  476. package/dist/esm/verify/isDate.js +18 -0
  477. package/dist/esm/verify/isElement.js +20 -0
  478. package/dist/esm/verify/isEmpty.js +38 -0
  479. package/dist/esm/verify/isEqual.js +24 -0
  480. package/dist/esm/verify/isEqualWith.js +25 -0
  481. package/dist/esm/verify/isError.js +20 -0
  482. package/dist/esm/verify/isFinite.js +22 -0
  483. package/dist/esm/verify/isFunction.js +19 -0
  484. package/dist/esm/verify/isInteger.js +19 -0
  485. package/dist/esm/verify/isLength.js +19 -0
  486. package/dist/esm/verify/isMap.js +18 -0
  487. package/dist/esm/verify/isMatch.js +24 -0
  488. package/dist/esm/verify/isMatchWith.js +25 -0
  489. package/dist/esm/verify/isNaN.js +22 -0
  490. package/dist/esm/verify/isNative.js +22 -0
  491. package/dist/esm/verify/isNil.js +24 -0
  492. package/dist/esm/verify/isNull.js +18 -0
  493. package/dist/esm/verify/isNumber.js +21 -0
  494. package/dist/esm/verify/isObject.js +23 -0
  495. package/dist/esm/verify/isObjectLike.js +27 -0
  496. package/dist/esm/verify/isPlainObject.js +18 -0
  497. package/dist/esm/verify/isRegExp.js +18 -0
  498. package/dist/esm/verify/isSafeInteger.js +24 -0
  499. package/dist/esm/verify/isSet.js +18 -0
  500. package/dist/esm/verify/isString.js +18 -0
  501. package/dist/esm/verify/isSymbol.js +18 -0
  502. package/dist/esm/verify/isTypedArray.js +35 -0
  503. package/dist/esm/verify/isUndefined.js +18 -0
  504. package/dist/esm/verify/isWeakMap.js +18 -0
  505. package/dist/esm/verify/isWeakSet.js +18 -0
  506. package/dist/esm/version.js +14 -0
  507. package/dist/types/_internal/MapCache.d.ts +13 -0
  508. package/dist/types/_internal/assignSources.d.ts +6 -0
  509. package/dist/types/_internal/assignValue.d.ts +6 -0
  510. package/dist/types/_internal/baseClone.d.ts +11 -0
  511. package/dist/types/_internal/baseCollectionKeys.d.ts +12 -0
  512. package/dist/types/_internal/baseDefaultsDeep.d.ts +6 -0
  513. package/dist/types/_internal/baseDifference.d.ts +6 -0
  514. package/dist/types/_internal/baseExtremum.d.ts +6 -0
  515. package/dist/types/_internal/baseExtremumBy.d.ts +7 -0
  516. package/dist/types/_internal/baseFilter.d.ts +7 -0
  517. package/dist/types/_internal/baseFind.d.ts +20 -0
  518. package/dist/types/_internal/baseFlatten.d.ts +6 -0
  519. package/dist/types/_internal/baseForEach.d.ts +6 -0
  520. package/dist/types/_internal/baseForOwn.d.ts +14 -0
  521. package/dist/types/_internal/baseIsEqual.d.ts +10 -0
  522. package/dist/types/_internal/baseIsMatch.d.ts +10 -0
  523. package/dist/types/_internal/baseIteratee.d.ts +7 -0
  524. package/dist/types/_internal/baseKeysIn.d.ts +6 -0
  525. package/dist/types/_internal/baseMap.d.ts +7 -0
  526. package/dist/types/_internal/baseMerge.d.ts +13 -0
  527. package/dist/types/_internal/basePad.d.ts +6 -0
  528. package/dist/types/_internal/basePath.d.ts +20 -0
  529. package/dist/types/_internal/baseRange.d.ts +6 -0
  530. package/dist/types/_internal/baseReduce.d.ts +7 -0
  531. package/dist/types/_internal/baseSum.d.ts +6 -0
  532. package/dist/types/_internal/baseTreeTraverse.d.ts +86 -0
  533. package/dist/types/_internal/baseTrim.d.ts +6 -0
  534. package/dist/types/_internal/baseUnset.d.ts +6 -0
  535. package/dist/types/_internal/baseUpdate.d.ts +6 -0
  536. package/dist/types/_internal/coerceToString.d.ts +6 -0
  537. package/dist/types/_internal/colorMath.d.ts +14 -0
  538. package/dist/types/_internal/compareValues.d.ts +12 -0
  539. package/dist/types/_internal/composePartials.d.ts +8 -0
  540. package/dist/types/_internal/createCompounder.d.ts +6 -0
  541. package/dist/types/_internal/deburr.d.ts +6 -0
  542. package/dist/types/_internal/flattenPaths.d.ts +6 -0
  543. package/dist/types/_internal/htmlEscape.d.ts +12 -0
  544. package/dist/types/_internal/identity.d.ts +6 -0
  545. package/dist/types/_internal/index.d.ts +10 -0
  546. package/dist/types/_internal/isArguments.d.ts +6 -0
  547. package/dist/types/_internal/isArrayLike.d.ts +6 -0
  548. package/dist/types/_internal/isArrayLikeObject.d.ts +6 -0
  549. package/dist/types/_internal/isEmptyValue.d.ts +6 -0
  550. package/dist/types/_internal/isFlattenable.d.ts +6 -0
  551. package/dist/types/_internal/isIndex.d.ts +6 -0
  552. package/dist/types/_internal/isLength.d.ts +6 -0
  553. package/dist/types/_internal/isPlainObject.d.ts +8 -0
  554. package/dist/types/_internal/mergeInto.d.ts +7 -0
  555. package/dist/types/_internal/repeatString.d.ts +6 -0
  556. package/dist/types/_internal/toInteger.d.ts +6 -0
  557. package/dist/types/_internal/toLength.d.ts +6 -0
  558. package/dist/types/_internal/toPath.d.ts +7 -0
  559. package/dist/types/_internal/upperFirst.d.ts +6 -0
  560. package/dist/types/_internal/validateFieldRule.d.ts +26 -0
  561. package/dist/types/_internal/words.d.ts +6 -0
  562. package/dist/types/array/chunk.d.ts +17 -0
  563. package/dist/types/array/compact.d.ts +16 -0
  564. package/dist/types/array/concat.d.ts +17 -0
  565. package/dist/types/array/difference.d.ts +17 -0
  566. package/dist/types/array/differenceBy.d.ts +18 -0
  567. package/dist/types/array/drop.d.ts +17 -0
  568. package/dist/types/array/each.d.ts +18 -0
  569. package/dist/types/array/every.d.ts +21 -0
  570. package/dist/types/array/filter.d.ts +18 -0
  571. package/dist/types/array/find.d.ts +23 -0
  572. package/dist/types/array/findIndex.d.ts +18 -0
  573. package/dist/types/array/findLast.d.ts +18 -0
  574. package/dist/types/array/findLastIndex.d.ts +18 -0
  575. package/dist/types/array/flatten.d.ts +16 -0
  576. package/dist/types/array/flattenDeep.d.ts +16 -0
  577. package/dist/types/array/forEach.d.ts +23 -0
  578. package/dist/types/array/forEachRight.d.ts +20 -0
  579. package/dist/types/array/groupBy.d.ts +18 -0
  580. package/dist/types/array/head.d.ts +16 -0
  581. package/dist/types/array/includes.d.ts +21 -0
  582. package/dist/types/array/index.d.ts +43 -0
  583. package/dist/types/array/intersection.d.ts +16 -0
  584. package/dist/types/array/keyBy.d.ts +24 -0
  585. package/dist/types/array/last.d.ts +16 -0
  586. package/dist/types/array/map.d.ts +18 -0
  587. package/dist/types/array/max.d.ts +16 -0
  588. package/dist/types/array/maxBy.d.ts +18 -0
  589. package/dist/types/array/mean.d.ts +16 -0
  590. package/dist/types/array/meanBy.d.ts +18 -0
  591. package/dist/types/array/min.d.ts +16 -0
  592. package/dist/types/array/minBy.d.ts +18 -0
  593. package/dist/types/array/orderBy.d.ts +23 -0
  594. package/dist/types/array/partition.d.ts +18 -0
  595. package/dist/types/array/reduce.d.ts +19 -0
  596. package/dist/types/array/reduceRight.d.ts +19 -0
  597. package/dist/types/array/some.d.ts +18 -0
  598. package/dist/types/array/sortBy.d.ts +18 -0
  599. package/dist/types/array/sum.d.ts +16 -0
  600. package/dist/types/array/sumBy.d.ts +18 -0
  601. package/dist/types/array/take.d.ts +17 -0
  602. package/dist/types/array/union.d.ts +16 -0
  603. package/dist/types/array/uniq.d.ts +16 -0
  604. package/dist/types/array/uniqBy.d.ts +18 -0
  605. package/dist/types/array/without.d.ts +17 -0
  606. package/dist/types/color/getCssVariable.d.ts +18 -0
  607. package/dist/types/color/getThemePalette.d.ts +28 -0
  608. package/dist/types/color/hexToRgb.d.ts +16 -0
  609. package/dist/types/color/index.d.ts +6 -0
  610. package/dist/types/color/rgbStringToHex.d.ts +16 -0
  611. package/dist/types/color/rgbToHex.d.ts +18 -0
  612. package/dist/types/convert/index.d.ts +13 -0
  613. package/dist/types/convert/toArray.d.ts +19 -0
  614. package/dist/types/convert/toFinite.d.ts +19 -0
  615. package/dist/types/convert/toInteger.d.ts +19 -0
  616. package/dist/types/convert/toLength.d.ts +19 -0
  617. package/dist/types/convert/toLower.d.ts +16 -0
  618. package/dist/types/convert/toNumber.d.ts +19 -0
  619. package/dist/types/convert/toPairs.d.ts +16 -0
  620. package/dist/types/convert/toPairsIn.d.ts +20 -0
  621. package/dist/types/convert/toPath.d.ts +16 -0
  622. package/dist/types/convert/toPlainObject.d.ts +19 -0
  623. package/dist/types/convert/toSafeInteger.d.ts +19 -0
  624. package/dist/types/convert/toString.d.ts +19 -0
  625. package/dist/types/convert/toUpper.d.ts +16 -0
  626. package/dist/types/function/after.d.ts +20 -0
  627. package/dist/types/function/before.d.ts +20 -0
  628. package/dist/types/function/curry.d.ts +27 -0
  629. package/dist/types/function/debounce.d.ts +31 -0
  630. package/dist/types/function/flow.d.ts +18 -0
  631. package/dist/types/function/flowRight.d.ts +18 -0
  632. package/dist/types/function/index.d.ts +11 -0
  633. package/dist/types/function/memoize.d.ts +41 -0
  634. package/dist/types/function/once.d.ts +18 -0
  635. package/dist/types/function/partial.d.ts +26 -0
  636. package/dist/types/function/partialRight.d.ts +25 -0
  637. package/dist/types/function/throttle.d.ts +26 -0
  638. package/dist/types/index.d.ts +10 -0
  639. package/dist/types/object/assign.d.ts +18 -0
  640. package/dist/types/object/clone.d.ts +20 -0
  641. package/dist/types/object/cloneDeep.d.ts +21 -0
  642. package/dist/types/object/cloneDeepWith.d.ts +23 -0
  643. package/dist/types/object/cloneWith.d.ts +23 -0
  644. package/dist/types/object/defaults.d.ts +17 -0
  645. package/dist/types/object/defaultsDeep.d.ts +17 -0
  646. package/dist/types/object/findKey.d.ts +17 -0
  647. package/dist/types/object/findLastKey.d.ts +17 -0
  648. package/dist/types/object/forIn.d.ts +16 -0
  649. package/dist/types/object/forOwn.d.ts +16 -0
  650. package/dist/types/object/fromPairs.d.ts +16 -0
  651. package/dist/types/object/get.d.ts +20 -0
  652. package/dist/types/object/has.d.ts +19 -0
  653. package/dist/types/object/index.d.ts +29 -0
  654. package/dist/types/object/invert.d.ts +16 -0
  655. package/dist/types/object/keys.d.ts +19 -0
  656. package/dist/types/object/mapKeys.d.ts +18 -0
  657. package/dist/types/object/mapValues.d.ts +18 -0
  658. package/dist/types/object/merge.d.ts +20 -0
  659. package/dist/types/object/mergeWith.d.ts +27 -0
  660. package/dist/types/object/omit.d.ts +18 -0
  661. package/dist/types/object/omitBy.d.ts +18 -0
  662. package/dist/types/object/pick.d.ts +18 -0
  663. package/dist/types/object/pickBy.d.ts +18 -0
  664. package/dist/types/object/set.d.ts +23 -0
  665. package/dist/types/object/unset.d.ts +19 -0
  666. package/dist/types/object/update.d.ts +19 -0
  667. package/dist/types/object/updateWith.d.ts +21 -0
  668. package/dist/types/object/values.d.ts +19 -0
  669. package/dist/types/string/camelCase.d.ts +19 -0
  670. package/dist/types/string/capitalize.d.ts +16 -0
  671. package/dist/types/string/endsWith.d.ts +21 -0
  672. package/dist/types/string/escape.d.ts +16 -0
  673. package/dist/types/string/index.d.ts +17 -0
  674. package/dist/types/string/kebabCase.d.ts +20 -0
  675. package/dist/types/string/lowerCase.d.ts +17 -0
  676. package/dist/types/string/pad.d.ts +21 -0
  677. package/dist/types/string/padEnd.d.ts +21 -0
  678. package/dist/types/string/padStart.d.ts +21 -0
  679. package/dist/types/string/repeat.d.ts +20 -0
  680. package/dist/types/string/snakeCase.d.ts +20 -0
  681. package/dist/types/string/startsWith.d.ts +21 -0
  682. package/dist/types/string/trim.d.ts +20 -0
  683. package/dist/types/string/trimEnd.d.ts +20 -0
  684. package/dist/types/string/trimStart.d.ts +20 -0
  685. package/dist/types/string/unescape.d.ts +16 -0
  686. package/dist/types/string/upperFirst.d.ts +16 -0
  687. package/dist/types/tree/filterTreeNodes.d.ts +29 -0
  688. package/dist/types/tree/findTreeNode.d.ts +22 -0
  689. package/dist/types/tree/forEachTree.d.ts +25 -0
  690. package/dist/types/tree/getParentNodes.d.ts +26 -0
  691. package/dist/types/tree/getTreeDepth.d.ts +22 -0
  692. package/dist/types/tree/index.d.ts +14 -0
  693. package/dist/types/tree/mapTree.d.ts +23 -0
  694. package/dist/types/tree/pruneTree.d.ts +32 -0
  695. package/dist/types/tree/toFlatList.d.ts +26 -0
  696. package/dist/types/tree/toTree.d.ts +22 -0
  697. package/dist/types/tree/traverseTree.d.ts +22 -0
  698. package/dist/types/tree/traverseTreeBfs.d.ts +22 -0
  699. package/dist/types/util/clamp.d.ts +18 -0
  700. package/dist/types/util/constant.d.ts +16 -0
  701. package/dist/types/util/defaultTo.d.ts +23 -0
  702. package/dist/types/util/defer.d.ts +16 -0
  703. package/dist/types/util/delay.d.ts +17 -0
  704. package/dist/types/util/identity.d.ts +17 -0
  705. package/dist/types/util/inRange.d.ts +18 -0
  706. package/dist/types/util/index.d.ts +22 -0
  707. package/dist/types/util/iteratee.d.ts +17 -0
  708. package/dist/types/util/matches.d.ts +16 -0
  709. package/dist/types/util/matchesProperty.d.ts +17 -0
  710. package/dist/types/util/negate.d.ts +16 -0
  711. package/dist/types/util/noop.d.ts +15 -0
  712. package/dist/types/util/now.d.ts +15 -0
  713. package/dist/types/util/property.d.ts +16 -0
  714. package/dist/types/util/random.d.ts +18 -0
  715. package/dist/types/util/range.d.ts +18 -0
  716. package/dist/types/util/size.d.ts +22 -0
  717. package/dist/types/util/sleep.d.ts +15 -0
  718. package/dist/types/util/times.d.ts +17 -0
  719. package/dist/types/util/uniqueId.d.ts +19 -0
  720. package/dist/types/util/validateFields.d.ts +46 -0
  721. package/dist/types/verify/index.d.ts +36 -0
  722. package/dist/types/verify/isArguments.d.ts +18 -0
  723. package/dist/types/verify/isArray.d.ts +16 -0
  724. package/dist/types/verify/isArrayBuffer.d.ts +16 -0
  725. package/dist/types/verify/isArrayLike.d.ts +24 -0
  726. package/dist/types/verify/isBoolean.d.ts +16 -0
  727. package/dist/types/verify/isBuffer.d.ts +17 -0
  728. package/dist/types/verify/isDate.d.ts +16 -0
  729. package/dist/types/verify/isElement.d.ts +17 -0
  730. package/dist/types/verify/isEmpty.d.ts +21 -0
  731. package/dist/types/verify/isEqual.d.ts +21 -0
  732. package/dist/types/verify/isEqualWith.d.ts +24 -0
  733. package/dist/types/verify/isError.d.ts +18 -0
  734. package/dist/types/verify/isFinite.d.ts +19 -0
  735. package/dist/types/verify/isFunction.d.ts +16 -0
  736. package/dist/types/verify/isInteger.d.ts +17 -0
  737. package/dist/types/verify/isLength.d.ts +19 -0
  738. package/dist/types/verify/isMap.d.ts +16 -0
  739. package/dist/types/verify/isMatch.d.ts +21 -0
  740. package/dist/types/verify/isMatchWith.d.ts +24 -0
  741. package/dist/types/verify/isNaN.d.ts +19 -0
  742. package/dist/types/verify/isNative.d.ts +19 -0
  743. package/dist/types/verify/isNil.d.ts +22 -0
  744. package/dist/types/verify/isNull.d.ts +16 -0
  745. package/dist/types/verify/isNumber.d.ts +19 -0
  746. package/dist/types/verify/isObject.d.ts +20 -0
  747. package/dist/types/verify/isObjectLike.d.ts +25 -0
  748. package/dist/types/verify/isPlainObject.d.ts +18 -0
  749. package/dist/types/verify/isRegExp.d.ts +16 -0
  750. package/dist/types/verify/isSafeInteger.d.ts +19 -0
  751. package/dist/types/verify/isSet.d.ts +16 -0
  752. package/dist/types/verify/isString.d.ts +16 -0
  753. package/dist/types/verify/isSymbol.d.ts +16 -0
  754. package/dist/types/verify/isTypedArray.d.ts +19 -0
  755. package/dist/types/verify/isUndefined.d.ts +16 -0
  756. package/dist/types/verify/isWeakMap.d.ts +16 -0
  757. package/dist/types/verify/isWeakSet.d.ts +16 -0
  758. package/dist/types/version.d.ts +13 -0
  759. package/dist/umd/zhiaiwan-utils.js +8178 -0
  760. package/dist/umd/zhiaiwan-utils.min.js +2 -0
  761. package/package.json +99 -0
@@ -0,0 +1,17 @@
1
+ import identity from '../_internal/identity';
2
+ /**
3
+ * 返回第一个参数。
4
+ *
5
+ * @param value - 任意值
6
+ * @returns 传入的 value
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * zhiaiwanUtils.identity(42);
11
+ * // => 42
12
+ * ```
13
+ *
14
+ * @since 1.0.0
15
+ * @category Util
16
+ */
17
+ export default identity;
@@ -0,0 +1,38 @@
1
+ function toFinite(value) {
2
+ const result = Number(value);
3
+ if (result === Infinity || result === -Infinity) {
4
+ return result < 0 ? -Number.MAX_VALUE : Number.MAX_VALUE;
5
+ }
6
+ return result === result ? result : 0;
7
+ }
8
+ /**
9
+ * 检查 number 是否位于 [start, end) 区间内。
10
+ *
11
+ * @param number - 待检查的值
12
+ * @param start - 区间起点;仅传两参时表示 end,start 置 0
13
+ * @param end - 区间终点(不含)
14
+ * @returns 是否在区间内
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * zhiaiwanUtils.inRange(3, 2, 4);
19
+ * // => true
20
+ * ```
21
+ *
22
+ * @since 1.0.0
23
+ * @category Util
24
+ */
25
+ export default function inRange(number, start, end) {
26
+ let resolvedStart = toFinite(start);
27
+ let resolvedEnd = end;
28
+ if (resolvedEnd === undefined) {
29
+ resolvedEnd = resolvedStart;
30
+ resolvedStart = 0;
31
+ }
32
+ else {
33
+ resolvedEnd = toFinite(resolvedEnd);
34
+ }
35
+ const resolvedNumber = Number(number);
36
+ return (resolvedNumber >= Math.min(resolvedStart, resolvedEnd) &&
37
+ resolvedNumber < Math.max(resolvedStart, resolvedEnd));
38
+ }
@@ -0,0 +1,21 @@
1
+ export { default as noop } from './noop';
2
+ export { default as identity } from './identity';
3
+ export { default as delay } from './delay';
4
+ export { default as defer } from './defer';
5
+ export { default as now } from './now';
6
+ export { default as uniqueId } from './uniqueId';
7
+ export { default as sleep } from './sleep';
8
+ export { default as validateFields } from './validateFields';
9
+ export { default as defaultTo } from './defaultTo';
10
+ export { default as size } from './size';
11
+ export { default as range } from './range';
12
+ export { default as times } from './times';
13
+ export { default as constant } from './constant';
14
+ export { default as negate } from './negate';
15
+ export { default as iteratee } from './iteratee';
16
+ export { default as property } from './property';
17
+ export { default as matches } from './matches';
18
+ export { default as matchesProperty } from './matchesProperty';
19
+ export { default as clamp } from './clamp';
20
+ export { default as inRange } from './inRange';
21
+ export { default as random } from './random';
@@ -0,0 +1,24 @@
1
+ import baseClone from '../_internal/baseClone';
2
+ import baseIteratee from '../_internal/baseIteratee';
3
+ /**
4
+ * 将 value 转为统一 iteratee 回调。
5
+ *
6
+ * @param func - 函数、属性路径、匹配对象或数组
7
+ * @returns 回调函数
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * zhiaiwanUtils.iteratee('user')({ user: 'fred' });
12
+ * // => 'fred'
13
+ * ```
14
+ *
15
+ * @since 1.0.0
16
+ * @category Util
17
+ */
18
+ export default function iteratee(func) {
19
+ if (typeof func === 'function') {
20
+ return func;
21
+ }
22
+ const cloned = func == null ? func : baseClone(func, new WeakMap(), { deep: true });
23
+ return baseIteratee(cloned);
24
+ }
@@ -0,0 +1,21 @@
1
+ import baseClone from '../_internal/baseClone';
2
+ import baseIsMatch from '../_internal/baseIsMatch';
3
+ /**
4
+ * 创建部分深度匹配 source 属性的断言函数。
5
+ *
6
+ * @param source - 要匹配的属性对象
7
+ * @returns 断言函数
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * zhiaiwanUtils.matches({ a: 1 })({ a: 1, b: 2 });
12
+ * // => true
13
+ * ```
14
+ *
15
+ * @since 1.0.0
16
+ * @category Util
17
+ */
18
+ export default function matches(source) {
19
+ const cloned = baseClone(source, new WeakMap(), { deep: true });
20
+ return (object) => baseIsMatch(object, cloned);
21
+ }
@@ -0,0 +1,31 @@
1
+ import baseClone from '../_internal/baseClone';
2
+ import baseIsEqual from '../_internal/baseIsEqual';
3
+ import { getPathValue, hasPath } from '../_internal/basePath';
4
+ import toPath from '../_internal/toPath';
5
+ /**
6
+ * 创建比较 object 指定路径值与 srcValue 的断言函数。
7
+ *
8
+ * @param path - 属性路径
9
+ * @param srcValue - 期望值
10
+ * @returns 断言函数
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * zhiaiwanUtils.matchesProperty('a', 1)({ a: 1, b: 2 });
15
+ * // => true
16
+ * ```
17
+ *
18
+ * @since 1.0.0
19
+ * @category Util
20
+ */
21
+ export default function matchesProperty(path, srcValue) {
22
+ const keys = toPath(path);
23
+ const cloned = baseClone(srcValue, new WeakMap(), { deep: true });
24
+ return (object) => {
25
+ const value = getPathValue(object, keys);
26
+ if (value === undefined && value === srcValue) {
27
+ return hasPath(object, keys);
28
+ }
29
+ return baseIsEqual(cloned, value, new WeakMap());
30
+ };
31
+ }
@@ -0,0 +1,22 @@
1
+ const FUNC_ERROR_TEXT = 'Expected a function';
2
+ /**
3
+ * 创建一个对 predicate 结果取反的函数。
4
+ *
5
+ * @param predicate - 原断言函数
6
+ * @returns 取反后的函数
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * zhiaiwanUtils.negate(Boolean)(1);
11
+ * // => false
12
+ * ```
13
+ *
14
+ * @since 1.0.0
15
+ * @category Util
16
+ */
17
+ export default function negate(predicate) {
18
+ if (typeof predicate !== 'function') {
19
+ throw new TypeError(FUNC_ERROR_TEXT);
20
+ }
21
+ return (...args) => !predicate(...args);
22
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 一个什么都不做的函数,常用作默认回调。
3
+ *
4
+ * @returns `undefined`
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * noop();
9
+ * // => undefined
10
+ * ```
11
+ *
12
+ * @since 1.0.0
13
+ * @category Util
14
+ */
15
+ export default function noop() {
16
+ // 有意为空
17
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 返回当前时间的毫秒时间戳,等效于 `Date.now()`。
3
+ *
4
+ * @returns 毫秒时间戳
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * zhiaiwanUtils.now();
9
+ * // => 1700000000000
10
+ * ```
11
+ *
12
+ * @since 1.0.0
13
+ * @category Util
14
+ */
15
+ export default function now() {
16
+ return Date.now();
17
+ }
@@ -0,0 +1,27 @@
1
+ import { getPathValue } from '../_internal/basePath';
2
+ import toPath from '../_internal/toPath';
3
+ function isKey(value) {
4
+ return value !== '' && !value.includes('.') && !value.includes('[');
5
+ }
6
+ /**
7
+ * 创建读取 object 指定路径值的访问器函数。
8
+ *
9
+ * @param path - 属性路径
10
+ * @returns 访问器函数
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * zhiaiwanUtils.property('a')({ a: 1 });
15
+ * // => 1
16
+ * ```
17
+ *
18
+ * @since 1.0.0
19
+ * @category Util
20
+ */
21
+ export default function property(path) {
22
+ if (typeof path === 'string' && isKey(path)) {
23
+ return (object) => object == null ? undefined : object[path];
24
+ }
25
+ const keys = toPath(path);
26
+ return (object) => getPathValue(object, keys);
27
+ }
@@ -0,0 +1,68 @@
1
+ function toFinite(value) {
2
+ const result = Number(value);
3
+ if (result === Infinity || result === -Infinity) {
4
+ return result < 0 ? -Number.MAX_VALUE : Number.MAX_VALUE;
5
+ }
6
+ return result === result ? result : 0;
7
+ }
8
+ function baseRandom(lower, upper) {
9
+ return lower + Math.floor(Math.random() * (upper - lower + 1));
10
+ }
11
+ /**
12
+ * 生成 [lower, upper] 范围内的随机数。
13
+ *
14
+ * @param lower - 下界,默认 0
15
+ * @param upper - 上界,默认 1
16
+ * @param floating - 是否返回浮点数
17
+ * @returns 随机数
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * zhiaiwanUtils.random(0, 5);
22
+ * // => 0 到 5 的整数
23
+ * ```
24
+ *
25
+ * @since 1.0.0
26
+ * @category Util
27
+ */
28
+ export default function random(lower = 0, upper, floating) {
29
+ let resolvedLower = lower;
30
+ let resolvedUpper = upper;
31
+ let resolvedFloating = floating;
32
+ if (typeof resolvedUpper === 'boolean' && resolvedFloating === undefined) {
33
+ resolvedFloating = resolvedUpper;
34
+ resolvedUpper = undefined;
35
+ }
36
+ else if (typeof resolvedLower === 'boolean' && resolvedFloating === undefined) {
37
+ resolvedFloating = resolvedLower;
38
+ resolvedLower = 0;
39
+ resolvedUpper = 1;
40
+ }
41
+ if (resolvedLower === undefined && resolvedUpper === undefined) {
42
+ resolvedLower = 0;
43
+ resolvedUpper = 1;
44
+ }
45
+ else {
46
+ resolvedLower = toFinite(resolvedLower);
47
+ if (resolvedUpper === undefined) {
48
+ resolvedUpper = resolvedLower;
49
+ resolvedLower = 0;
50
+ }
51
+ else {
52
+ resolvedUpper = toFinite(resolvedUpper);
53
+ }
54
+ }
55
+ let lowerBound = resolvedLower;
56
+ let upperBound = resolvedUpper;
57
+ if (lowerBound > upperBound) {
58
+ const temp = lowerBound;
59
+ lowerBound = upperBound;
60
+ upperBound = temp;
61
+ }
62
+ if (resolvedFloating || lowerBound % 1 || upperBound % 1) {
63
+ const rand = Math.random();
64
+ return Math.min(lowerBound +
65
+ rand * (upperBound - lowerBound + Number.parseFloat(`1e-${String(rand).length - 1}`)), upperBound);
66
+ }
67
+ return baseRandom(lowerBound, upperBound);
68
+ }
@@ -0,0 +1,40 @@
1
+ import baseRange from '../_internal/baseRange';
2
+ function toFinite(value) {
3
+ const result = Number(value);
4
+ if (result === Infinity || result === -Infinity) {
5
+ return result < 0 ? -Number.MAX_VALUE : Number.MAX_VALUE;
6
+ }
7
+ return result === result ? result : 0;
8
+ }
9
+ /**
10
+ * 创建从 start 到 end(不含)按 step 递增的数字数组。
11
+ *
12
+ * @param start - 起始值;仅传一个参数时表示 end,start 置 0
13
+ * @param end - 结束值(不含)
14
+ * @param step - 步长,默认 1 或 -1
15
+ * @returns 数字数组
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * zhiaiwanUtils.range(4);
20
+ * // => [0, 1, 2, 3]
21
+ * ```
22
+ *
23
+ * @since 1.0.0
24
+ * @category Util
25
+ */
26
+ export default function range(start, end, step) {
27
+ let resolvedStart = toFinite(start);
28
+ let resolvedEnd = end;
29
+ let resolvedStep = step;
30
+ if (resolvedEnd === undefined) {
31
+ resolvedEnd = resolvedStart;
32
+ resolvedStart = 0;
33
+ }
34
+ else {
35
+ resolvedEnd = toFinite(resolvedEnd);
36
+ }
37
+ resolvedStep =
38
+ resolvedStep === undefined ? (resolvedStart < resolvedEnd ? 1 : -1) : toFinite(resolvedStep);
39
+ return baseRange(resolvedStart, resolvedEnd, resolvedStep, false);
40
+ }
@@ -0,0 +1,41 @@
1
+ import isArrayLike from '../_internal/isArrayLike';
2
+ /**
3
+ * 返回 collection 的长度;Map / Set 返回 size,对象返回自有可枚举键数量。
4
+ *
5
+ * @param collection - 待检查的集合
6
+ * @returns 集合长度
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * zhiaiwanUtils.size([1, 2, 3]);
11
+ * // => 3
12
+ *
13
+ * zhiaiwanUtils.size({ a: 1, b: 2 });
14
+ * // => 2
15
+ *
16
+ * zhiaiwanUtils.size('abc');
17
+ * // => 3
18
+ * ```
19
+ *
20
+ * @since 1.0.0
21
+ * @category Util
22
+ */
23
+ export default function size(collection) {
24
+ var _a;
25
+ if (collection == null) {
26
+ return 0;
27
+ }
28
+ if (typeof collection === 'string' || Array.isArray(collection)) {
29
+ return collection.length;
30
+ }
31
+ if (isArrayLike(collection)) {
32
+ return (_a = collection.length) !== null && _a !== void 0 ? _a : 0;
33
+ }
34
+ if (collection instanceof Map || collection instanceof Set) {
35
+ return collection.size;
36
+ }
37
+ if (typeof collection === 'object') {
38
+ return Object.keys(collection).length;
39
+ }
40
+ return 0;
41
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * 返回一个在 ms 毫秒后 resolve 的 Promise,用于异步等待。
3
+ *
4
+ * @param ms - 等待毫秒数
5
+ * @returns Promise
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * await sleep(1000);
10
+ * ```
11
+ *
12
+ * @since 1.0.0
13
+ * @category Util
14
+ */
15
+ export default function sleep(ms) {
16
+ return new Promise((resolve) => {
17
+ setTimeout(resolve, ms);
18
+ });
19
+ }
@@ -0,0 +1,35 @@
1
+ import toInteger from '../_internal/toInteger';
2
+ import identity from '../_internal/identity';
3
+ const MAX_SAFE_INTEGER = 9007199254740991;
4
+ const MAX_ARRAY_LENGTH = 4294967295;
5
+ /**
6
+ * 调用 iteratee n 次并收集结果。
7
+ *
8
+ * @param n - 调用次数
9
+ * @param iteratee - 每次调用函数,接收 index
10
+ * @returns 结果数组
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * zhiaiwanUtils.times(3, String);
15
+ * // => ['0', '1', '2']
16
+ * ```
17
+ *
18
+ * @since 1.0.0
19
+ * @category Util
20
+ */
21
+ export default function times(n, iteratee = identity) {
22
+ const resolved = toInteger(n);
23
+ if (resolved < 1 || resolved > MAX_SAFE_INTEGER) {
24
+ return [];
25
+ }
26
+ const length = Math.min(resolved, MAX_ARRAY_LENGTH);
27
+ const result = new Array(length);
28
+ for (let index = 0; index < length; index++) {
29
+ result[index] = iteratee(index);
30
+ }
31
+ for (let index = MAX_ARRAY_LENGTH; index < resolved; index++) {
32
+ iteratee(index);
33
+ }
34
+ return result;
35
+ }
@@ -0,0 +1,23 @@
1
+ let idCounter = 0;
2
+ /**
3
+ * 生成递增的唯一 ID 字符串,可选前缀 prefix。
4
+ *
5
+ * @param prefix - 可选前缀,null/undefined 视为空字符串
6
+ * @returns 唯一 ID 字符串
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * zhiaiwanUtils.uniqueId();
11
+ * // => '1'
12
+ *
13
+ * zhiaiwanUtils.uniqueId('contact_');
14
+ * // => 'contact_2'
15
+ * ```
16
+ *
17
+ * @since 1.0.0
18
+ * @category Util
19
+ */
20
+ export default function uniqueId(prefix) {
21
+ const id = ++idCounter;
22
+ return `${prefix == null ? '' : String(prefix)}${id}`;
23
+ }
@@ -0,0 +1,100 @@
1
+ import validateFieldRule from '../_internal/validateFieldRule';
2
+ import toPath from '../_internal/toPath';
3
+ function getValueByPath(object, path) {
4
+ const keys = toPath(path);
5
+ let current = object;
6
+ for (const key of keys) {
7
+ if (current == null) {
8
+ return undefined;
9
+ }
10
+ current = current[key];
11
+ }
12
+ return current;
13
+ }
14
+ function normalizeRules(rule) {
15
+ return Array.isArray(rule) ? rule : [rule];
16
+ }
17
+ function buildResult(fieldErrors) {
18
+ const errorFields = Object.keys(fieldErrors);
19
+ if (errorFields.length === 0) {
20
+ return { valid: true, errors: {} };
21
+ }
22
+ const field = errorFields[0];
23
+ return {
24
+ valid: false,
25
+ errors: fieldErrors,
26
+ firstError: { field, message: fieldErrors[field][0] },
27
+ };
28
+ }
29
+ function collectFieldErrors(cells) {
30
+ const fieldErrors = {};
31
+ for (const cell of cells) {
32
+ if (cell.messages.length > 0) {
33
+ fieldErrors[cell.field] = cell.messages;
34
+ }
35
+ }
36
+ return fieldErrors;
37
+ }
38
+ /**
39
+ * 按规则对象校验表单/数据对象。rules 的 key 为字段路径(与 `get` 相同的路径写法),
40
+ * value 为单条规则或规则数组。自定义 `validator` 返回 `true` / `void` 表示通过,
41
+ * 返回 `false` 或非空字符串表示失败。
42
+ *
43
+ * @param values - 待校验的数据对象
44
+ * @param rules - 字段路径到规则的映射
45
+ * @param options - 可选配置
46
+ * @returns 校验结果;存在异步 validator 时返回 Promise
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * validateFields(
51
+ * { user: { name: '' }, password: 'abc', confirmPassword: '456' },
52
+ * {
53
+ * 'user.name': { required: true, message: '请输入姓名' },
54
+ * confirmPassword: {
55
+ * validator: ({ value, values }) => {
56
+ * if (value !== values.password) return '两次密码不一致';
57
+ * },
58
+ * },
59
+ * },
60
+ * );
61
+ * // => { valid: false, errors: { 'user.name': ['请输入姓名'], ... } }
62
+ * ```
63
+ *
64
+ * @since 1.0.0
65
+ * @category Util
66
+ */
67
+ export default function validateFields(values, rules, options) {
68
+ var _a;
69
+ const data = values !== null && values !== void 0 ? values : {};
70
+ const fields = (_a = options === null || options === void 0 ? void 0 : options.fields) !== null && _a !== void 0 ? _a : Object.keys(rules);
71
+ const cells = [];
72
+ for (const field of fields) {
73
+ const fieldRules = rules[field];
74
+ if (!fieldRules) {
75
+ continue;
76
+ }
77
+ const value = getValueByPath(data, field);
78
+ const cell = { field, messages: [], promises: [] };
79
+ for (const rule of normalizeRules(fieldRules)) {
80
+ const ctx = { value, values: data, field, rule };
81
+ const outcome = validateFieldRule(ctx);
82
+ if (outcome instanceof Promise) {
83
+ cell.promises.push(outcome.then((error) => {
84
+ if (error) {
85
+ cell.messages.push(error);
86
+ }
87
+ }));
88
+ }
89
+ else if (outcome) {
90
+ cell.messages.push(outcome);
91
+ }
92
+ }
93
+ cells.push(cell);
94
+ }
95
+ const asyncTasks = cells.flatMap((cell) => cell.promises);
96
+ if (asyncTasks.length > 0) {
97
+ return Promise.all(asyncTasks).then(() => buildResult(collectFieldErrors(cells)));
98
+ }
99
+ return buildResult(collectFieldErrors(cells));
100
+ }
@@ -0,0 +1,36 @@
1
+ export { default as isString } from './isString';
2
+ export { default as isNumber } from './isNumber';
3
+ export { default as isBoolean } from './isBoolean';
4
+ export { default as isArray } from './isArray';
5
+ export { default as isArguments } from './isArguments';
6
+ export { default as isArrayBuffer } from './isArrayBuffer';
7
+ export { default as isTypedArray } from './isTypedArray';
8
+ export { default as isBuffer } from './isBuffer';
9
+ export { default as isFunction } from './isFunction';
10
+ export { default as isNative } from './isNative';
11
+ export { default as isObject } from './isObject';
12
+ export { default as isPlainObject } from './isPlainObject';
13
+ export { default as isUndefined } from './isUndefined';
14
+ export { default as isNull } from './isNull';
15
+ export { default as isNil } from './isNil';
16
+ export { default as isDate } from './isDate';
17
+ export { default as isRegExp } from './isRegExp';
18
+ export { default as isSymbol } from './isSymbol';
19
+ export { default as isInteger } from './isInteger';
20
+ export { default as isSafeInteger } from './isSafeInteger';
21
+ export { default as isLength } from './isLength';
22
+ export { default as isEmpty } from './isEmpty';
23
+ export { default as isMap } from './isMap';
24
+ export { default as isSet } from './isSet';
25
+ export { default as isWeakMap } from './isWeakMap';
26
+ export { default as isWeakSet } from './isWeakSet';
27
+ export { default as isError } from './isError';
28
+ export { default as isEqual } from './isEqual';
29
+ export { default as isEqualWith } from './isEqualWith';
30
+ export { default as isNaN } from './isNaN';
31
+ export { default as isFinite } from './isFinite';
32
+ export { default as isMatch } from './isMatch';
33
+ export { default as isMatchWith } from './isMatchWith';
34
+ export { default as isArrayLike } from './isArrayLike';
35
+ export { default as isObjectLike } from './isObjectLike';
36
+ export { default as isElement } from './isElement';
@@ -0,0 +1,18 @@
1
+ /**
2
+ * 检查 value 是否是 `arguments` 对象。
3
+ *
4
+ * @param value - 要检查的值
5
+ * @returns 如果 value 是 arguments 对象,返回 true,否则返回 false
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * (function () {
10
+ * return zhiaiwanUtils.isArguments(arguments);
11
+ * })();
12
+ * // => true
13
+ * ```
14
+ *
15
+ * @since 1.0.0
16
+ * @category Verify
17
+ */
18
+ export { default } from '../_internal/isArguments';
@@ -0,0 +1,18 @@
1
+ /**
2
+ * 检查 value 是否是一个数组。
3
+ *
4
+ * @param value - 要检查的值
5
+ * @returns 如果 value 是数组,返回 true,否则返回 false
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * isArray([1, 2, 3]); // => true
10
+ * isArray('abc'); // => false
11
+ * ```
12
+ *
13
+ * @since 1.0.0
14
+ * @category Verify
15
+ */
16
+ export default function isArray(value) {
17
+ return Array.isArray(value);
18
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * 检查 value 是否是 `ArrayBuffer` 对象。
3
+ *
4
+ * @param value - 要检查的值
5
+ * @returns 如果 value 是 ArrayBuffer,返回 true,否则返回 false
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * isArrayBuffer(new ArrayBuffer(8));
10
+ * // => true
11
+ * ```
12
+ *
13
+ * @since 1.0.0
14
+ * @category Verify
15
+ */
16
+ export default function isArrayBuffer(value) {
17
+ return Object.prototype.toString.call(value) === '[object ArrayBuffer]';
18
+ }