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.
- package/LICENSE +21 -0
- package/README.md +92 -0
- package/dist/cjs/_internal/MapCache.js +29 -0
- package/dist/cjs/_internal/assignSources.js +24 -0
- package/dist/cjs/_internal/assignValue.js +20 -0
- package/dist/cjs/_internal/baseClone.js +190 -0
- package/dist/cjs/_internal/baseCollectionKeys.js +59 -0
- package/dist/cjs/_internal/baseDefaultsDeep.js +59 -0
- package/dist/cjs/_internal/baseDifference.js +25 -0
- package/dist/cjs/_internal/baseExtremum.js +34 -0
- package/dist/cjs/_internal/baseExtremumBy.js +63 -0
- package/dist/cjs/_internal/baseFilter.js +61 -0
- package/dist/cjs/_internal/baseFind.js +153 -0
- package/dist/cjs/_internal/baseFlatten.js +32 -0
- package/dist/cjs/_internal/baseForEach.js +92 -0
- package/dist/cjs/_internal/baseForOwn.js +33 -0
- package/dist/cjs/_internal/baseIsEqual.js +161 -0
- package/dist/cjs/_internal/baseIsMatch.js +80 -0
- package/dist/cjs/_internal/baseIteratee.js +46 -0
- package/dist/cjs/_internal/baseKeysIn.js +44 -0
- package/dist/cjs/_internal/baseMap.js +49 -0
- package/dist/cjs/_internal/baseMerge.js +139 -0
- package/dist/cjs/_internal/basePad.js +40 -0
- package/dist/cjs/_internal/basePath.js +85 -0
- package/dist/cjs/_internal/baseRange.js +18 -0
- package/dist/cjs/_internal/baseReduce.js +77 -0
- package/dist/cjs/_internal/baseSum.js +27 -0
- package/dist/cjs/_internal/baseTreeTraverse.js +225 -0
- package/dist/cjs/_internal/baseTrim.js +32 -0
- package/dist/cjs/_internal/baseUnset.js +49 -0
- package/dist/cjs/_internal/baseUpdate.js +65 -0
- package/dist/cjs/_internal/coerceToString.js +21 -0
- package/dist/cjs/_internal/colorMath.js +66 -0
- package/dist/cjs/_internal/compareValues.js +49 -0
- package/dist/cjs/_internal/composePartials.js +39 -0
- package/dist/cjs/_internal/createCompounder.js +24 -0
- package/dist/cjs/_internal/deburr.js +74 -0
- package/dist/cjs/_internal/flattenPaths.js +21 -0
- package/dist/cjs/_internal/htmlEscape.js +36 -0
- package/dist/cjs/_internal/identity.js +11 -0
- package/dist/cjs/_internal/index.js +21 -0
- package/dist/cjs/_internal/isArguments.js +31 -0
- package/dist/cjs/_internal/isArrayLike.js +15 -0
- package/dist/cjs/_internal/isArrayLikeObject.js +15 -0
- package/dist/cjs/_internal/isEmptyValue.js +11 -0
- package/dist/cjs/_internal/isFlattenable.js +15 -0
- package/dist/cjs/_internal/isIndex.js +23 -0
- package/dist/cjs/_internal/isLength.js +15 -0
- package/dist/cjs/_internal/isPlainObject.js +17 -0
- package/dist/cjs/_internal/mergeInto.js +33 -0
- package/dist/cjs/_internal/repeatString.js +15 -0
- package/dist/cjs/_internal/toInteger.js +24 -0
- package/dist/cjs/_internal/toLength.js +17 -0
- package/dist/cjs/_internal/toPath.js +29 -0
- package/dist/cjs/_internal/upperFirst.js +14 -0
- package/dist/cjs/_internal/validateFieldRule.js +138 -0
- package/dist/cjs/_internal/words.js +13 -0
- package/dist/cjs/array/chunk.js +37 -0
- package/dist/cjs/array/compact.js +34 -0
- package/dist/cjs/array/concat.js +37 -0
- package/dist/cjs/array/difference.js +44 -0
- package/dist/cjs/array/differenceBy.js +55 -0
- package/dist/cjs/array/drop.js +31 -0
- package/dist/cjs/array/each.js +23 -0
- package/dist/cjs/array/every.js +69 -0
- package/dist/cjs/array/filter.js +26 -0
- package/dist/cjs/array/find.js +29 -0
- package/dist/cjs/array/findIndex.js +24 -0
- package/dist/cjs/array/findLast.js +24 -0
- package/dist/cjs/array/findLastIndex.js +24 -0
- package/dist/cjs/array/flatten.js +27 -0
- package/dist/cjs/array/flattenDeep.js +28 -0
- package/dist/cjs/array/forEach.js +32 -0
- package/dist/cjs/array/forEachRight.js +29 -0
- package/dist/cjs/array/groupBy.js +67 -0
- package/dist/cjs/array/head.js +21 -0
- package/dist/cjs/array/includes.js +60 -0
- package/dist/cjs/array/index.js +92 -0
- package/dist/cjs/array/intersection.js +51 -0
- package/dist/cjs/array/keyBy.js +79 -0
- package/dist/cjs/array/last.js +23 -0
- package/dist/cjs/array/map.js +26 -0
- package/dist/cjs/array/max.js +25 -0
- package/dist/cjs/array/maxBy.js +27 -0
- package/dist/cjs/array/mean.js +27 -0
- package/dist/cjs/array/meanBy.js +30 -0
- package/dist/cjs/array/min.js +25 -0
- package/dist/cjs/array/minBy.js +27 -0
- package/dist/cjs/array/orderBy.js +95 -0
- package/dist/cjs/array/partition.js +68 -0
- package/dist/cjs/array/reduce.js +30 -0
- package/dist/cjs/array/reduceRight.js +30 -0
- package/dist/cjs/array/some.js +66 -0
- package/dist/cjs/array/sortBy.js +27 -0
- package/dist/cjs/array/sum.js +25 -0
- package/dist/cjs/array/sumBy.js +31 -0
- package/dist/cjs/array/take.js +31 -0
- package/dist/cjs/array/union.js +35 -0
- package/dist/cjs/array/uniq.js +33 -0
- package/dist/cjs/array/uniqBy.js +41 -0
- package/dist/cjs/array/without.js +30 -0
- package/dist/cjs/color/getCssVariable.js +31 -0
- package/dist/cjs/color/getThemePalette.js +56 -0
- package/dist/cjs/color/hexToRgb.js +26 -0
- package/dist/cjs/color/index.js +16 -0
- package/dist/cjs/color/rgbStringToHex.js +42 -0
- package/dist/cjs/color/rgbToHex.js +24 -0
- package/dist/cjs/convert/index.js +32 -0
- package/dist/cjs/convert/toArray.js +56 -0
- package/dist/cjs/convert/toFinite.js +34 -0
- package/dist/cjs/convert/toInteger.js +33 -0
- package/dist/cjs/convert/toLength.js +30 -0
- package/dist/cjs/convert/toLower.js +25 -0
- package/dist/cjs/convert/toNumber.js +55 -0
- package/dist/cjs/convert/toPairs.js +24 -0
- package/dist/cjs/convert/toPairsIn.js +32 -0
- package/dist/cjs/convert/toPath.js +23 -0
- package/dist/cjs/convert/toPlainObject.js +39 -0
- package/dist/cjs/convert/toSafeInteger.js +34 -0
- package/dist/cjs/convert/toString.js +34 -0
- package/dist/cjs/convert/toUpper.js +25 -0
- package/dist/cjs/function/after.js +32 -0
- package/dist/cjs/function/before.js +32 -0
- package/dist/cjs/function/curry.js +57 -0
- package/dist/cjs/function/debounce.js +107 -0
- package/dist/cjs/function/flow.js +51 -0
- package/dist/cjs/function/flowRight.js +46 -0
- package/dist/cjs/function/index.js +30 -0
- package/dist/cjs/function/memoize.js +26 -0
- package/dist/cjs/function/once.js +31 -0
- package/dist/cjs/function/partial.js +35 -0
- package/dist/cjs/function/partialRight.js +33 -0
- package/dist/cjs/function/throttle.js +20 -0
- package/dist/cjs/index.js +28 -0
- package/dist/cjs/object/assign.js +24 -0
- package/dist/cjs/object/clone.js +29 -0
- package/dist/cjs/object/cloneDeep.js +30 -0
- package/dist/cjs/object/cloneDeepWith.js +30 -0
- package/dist/cjs/object/cloneWith.js +30 -0
- package/dist/cjs/object/defaults.js +23 -0
- package/dist/cjs/object/defaultsDeep.js +44 -0
- package/dist/cjs/object/findKey.js +26 -0
- package/dist/cjs/object/findLastKey.js +26 -0
- package/dist/cjs/object/forIn.js +29 -0
- package/dist/cjs/object/forOwn.js +29 -0
- package/dist/cjs/object/fromPairs.js +28 -0
- package/dist/cjs/object/get.js +37 -0
- package/dist/cjs/object/has.js +39 -0
- package/dist/cjs/object/index.js +64 -0
- package/dist/cjs/object/invert.js +34 -0
- package/dist/cjs/object/keys.js +25 -0
- package/dist/cjs/object/mapKeys.js +37 -0
- package/dist/cjs/object/mapValues.js +37 -0
- package/dist/cjs/object/merge.js +29 -0
- package/dist/cjs/object/mergeWith.js +41 -0
- package/dist/cjs/object/omit.js +36 -0
- package/dist/cjs/object/omitBy.js +38 -0
- package/dist/cjs/object/pick.js +37 -0
- package/dist/cjs/object/pickBy.js +38 -0
- package/dist/cjs/object/set.js +67 -0
- package/dist/cjs/object/unset.js +28 -0
- package/dist/cjs/object/update.js +31 -0
- package/dist/cjs/object/updateWith.js +33 -0
- package/dist/cjs/object/values.js +25 -0
- package/dist/cjs/string/camelCase.js +37 -0
- package/dist/cjs/string/capitalize.js +25 -0
- package/dist/cjs/string/endsWith.js +36 -0
- package/dist/cjs/string/escape.js +26 -0
- package/dist/cjs/string/index.js +40 -0
- package/dist/cjs/string/kebabCase.js +27 -0
- package/dist/cjs/string/lowerCase.js +24 -0
- package/dist/cjs/string/pad.js +31 -0
- package/dist/cjs/string/padEnd.js +31 -0
- package/dist/cjs/string/padStart.js +31 -0
- package/dist/cjs/string/repeat.js +30 -0
- package/dist/cjs/string/snakeCase.js +27 -0
- package/dist/cjs/string/startsWith.js +34 -0
- package/dist/cjs/string/trim.js +30 -0
- package/dist/cjs/string/trimEnd.js +30 -0
- package/dist/cjs/string/trimStart.js +30 -0
- package/dist/cjs/string/unescape.js +26 -0
- package/dist/cjs/string/upperFirst.js +25 -0
- package/dist/cjs/tree/filterTreeNodes.js +51 -0
- package/dist/cjs/tree/findTreeNode.js +45 -0
- package/dist/cjs/tree/forEachTree.js +33 -0
- package/dist/cjs/tree/getParentNodes.js +49 -0
- package/dist/cjs/tree/getTreeDepth.js +38 -0
- package/dist/cjs/tree/index.js +30 -0
- package/dist/cjs/tree/mapTree.js +98 -0
- package/dist/cjs/tree/pruneTree.js +126 -0
- package/dist/cjs/tree/toFlatList.js +57 -0
- package/dist/cjs/tree/toTree.js +71 -0
- package/dist/cjs/tree/traverseTree.js +29 -0
- package/dist/cjs/tree/traverseTreeBfs.js +29 -0
- package/dist/cjs/util/clamp.js +56 -0
- package/dist/cjs/util/constant.js +21 -0
- package/dist/cjs/util/defaultTo.js +28 -0
- package/dist/cjs/util/defer.js +25 -0
- package/dist/cjs/util/delay.js +25 -0
- package/dist/cjs/util/identity.js +22 -0
- package/dist/cjs/util/inRange.js +41 -0
- package/dist/cjs/util/index.js +48 -0
- package/dist/cjs/util/iteratee.js +30 -0
- package/dist/cjs/util/matches.js +27 -0
- package/dist/cjs/util/matchesProperty.js +37 -0
- package/dist/cjs/util/negate.js +25 -0
- package/dist/cjs/util/noop.js +20 -0
- package/dist/cjs/util/now.js +20 -0
- package/dist/cjs/util/property.js +33 -0
- package/dist/cjs/util/random.js +71 -0
- package/dist/cjs/util/range.js +46 -0
- package/dist/cjs/util/size.js +47 -0
- package/dist/cjs/util/sleep.js +22 -0
- package/dist/cjs/util/times.js +41 -0
- package/dist/cjs/util/uniqueId.js +26 -0
- package/dist/cjs/util/validateFields.js +106 -0
- package/dist/cjs/verify/index.js +78 -0
- package/dist/cjs/verify/isArguments.js +25 -0
- package/dist/cjs/verify/isArray.js +21 -0
- package/dist/cjs/verify/isArrayBuffer.js +21 -0
- package/dist/cjs/verify/isArrayLike.js +31 -0
- package/dist/cjs/verify/isBoolean.js +21 -0
- package/dist/cjs/verify/isBuffer.js +23 -0
- package/dist/cjs/verify/isDate.js +21 -0
- package/dist/cjs/verify/isElement.js +26 -0
- package/dist/cjs/verify/isEmpty.js +44 -0
- package/dist/cjs/verify/isEqual.js +30 -0
- package/dist/cjs/verify/isEqualWith.js +31 -0
- package/dist/cjs/verify/isError.js +23 -0
- package/dist/cjs/verify/isFinite.js +28 -0
- package/dist/cjs/verify/isFunction.js +22 -0
- package/dist/cjs/verify/isInteger.js +22 -0
- package/dist/cjs/verify/isLength.js +26 -0
- package/dist/cjs/verify/isMap.js +21 -0
- package/dist/cjs/verify/isMatch.js +30 -0
- package/dist/cjs/verify/isMatchWith.js +31 -0
- package/dist/cjs/verify/isNaN.js +28 -0
- package/dist/cjs/verify/isNative.js +25 -0
- package/dist/cjs/verify/isNil.js +27 -0
- package/dist/cjs/verify/isNull.js +21 -0
- package/dist/cjs/verify/isNumber.js +24 -0
- package/dist/cjs/verify/isObject.js +26 -0
- package/dist/cjs/verify/isObjectLike.js +30 -0
- package/dist/cjs/verify/isPlainObject.js +25 -0
- package/dist/cjs/verify/isRegExp.js +21 -0
- package/dist/cjs/verify/isSafeInteger.js +30 -0
- package/dist/cjs/verify/isSet.js +21 -0
- package/dist/cjs/verify/isString.js +21 -0
- package/dist/cjs/verify/isSymbol.js +21 -0
- package/dist/cjs/verify/isTypedArray.js +38 -0
- package/dist/cjs/verify/isUndefined.js +21 -0
- package/dist/cjs/verify/isWeakMap.js +21 -0
- package/dist/cjs/verify/isWeakSet.js +21 -0
- package/dist/cjs/version.js +17 -0
- package/dist/esm/_internal/MapCache.js +26 -0
- package/dist/esm/_internal/assignSources.js +21 -0
- package/dist/esm/_internal/assignValue.js +17 -0
- package/dist/esm/_internal/baseClone.js +187 -0
- package/dist/esm/_internal/baseCollectionKeys.js +52 -0
- package/dist/esm/_internal/baseDefaultsDeep.js +53 -0
- package/dist/esm/_internal/baseDifference.js +22 -0
- package/dist/esm/_internal/baseExtremum.js +28 -0
- package/dist/esm/_internal/baseExtremumBy.js +57 -0
- package/dist/esm/_internal/baseFilter.js +55 -0
- package/dist/esm/_internal/baseFind.js +145 -0
- package/dist/esm/_internal/baseFlatten.js +26 -0
- package/dist/esm/_internal/baseForEach.js +86 -0
- package/dist/esm/_internal/baseForOwn.js +26 -0
- package/dist/esm/_internal/baseIsEqual.js +158 -0
- package/dist/esm/_internal/baseIsMatch.js +74 -0
- package/dist/esm/_internal/baseIteratee.js +40 -0
- package/dist/esm/_internal/baseKeysIn.js +38 -0
- package/dist/esm/_internal/baseMap.js +43 -0
- package/dist/esm/_internal/baseMerge.js +132 -0
- package/dist/esm/_internal/basePad.js +34 -0
- package/dist/esm/_internal/basePath.js +77 -0
- package/dist/esm/_internal/baseRange.js +15 -0
- package/dist/esm/_internal/baseReduce.js +71 -0
- package/dist/esm/_internal/baseSum.js +21 -0
- package/dist/esm/_internal/baseTreeTraverse.js +219 -0
- package/dist/esm/_internal/baseTrim.js +29 -0
- package/dist/esm/_internal/baseUnset.js +43 -0
- package/dist/esm/_internal/baseUpdate.js +59 -0
- package/dist/esm/_internal/coerceToString.js +18 -0
- package/dist/esm/_internal/colorMath.js +56 -0
- package/dist/esm/_internal/compareValues.js +45 -0
- package/dist/esm/_internal/composePartials.js +35 -0
- package/dist/esm/_internal/createCompounder.js +18 -0
- package/dist/esm/_internal/deburr.js +71 -0
- package/dist/esm/_internal/flattenPaths.js +18 -0
- package/dist/esm/_internal/htmlEscape.js +32 -0
- package/dist/esm/_internal/identity.js +8 -0
- package/dist/esm/_internal/index.js +8 -0
- package/dist/esm/_internal/isArguments.js +28 -0
- package/dist/esm/_internal/isArrayLike.js +9 -0
- package/dist/esm/_internal/isArrayLikeObject.js +9 -0
- package/dist/esm/_internal/isEmptyValue.js +8 -0
- package/dist/esm/_internal/isFlattenable.js +9 -0
- package/dist/esm/_internal/isIndex.js +20 -0
- package/dist/esm/_internal/isLength.js +12 -0
- package/dist/esm/_internal/isPlainObject.js +14 -0
- package/dist/esm/_internal/mergeInto.js +27 -0
- package/dist/esm/_internal/repeatString.js +12 -0
- package/dist/esm/_internal/toInteger.js +21 -0
- package/dist/esm/_internal/toLength.js +11 -0
- package/dist/esm/_internal/toPath.js +26 -0
- package/dist/esm/_internal/upperFirst.js +11 -0
- package/dist/esm/_internal/validateFieldRule.js +132 -0
- package/dist/esm/_internal/words.js +10 -0
- package/dist/esm/array/chunk.js +31 -0
- package/dist/esm/array/compact.js +31 -0
- package/dist/esm/array/concat.js +34 -0
- package/dist/esm/array/difference.js +38 -0
- package/dist/esm/array/differenceBy.js +49 -0
- package/dist/esm/array/drop.js +25 -0
- package/dist/esm/array/each.js +18 -0
- package/dist/esm/array/every.js +63 -0
- package/dist/esm/array/filter.js +20 -0
- package/dist/esm/array/find.js +26 -0
- package/dist/esm/array/findIndex.js +21 -0
- package/dist/esm/array/findLast.js +21 -0
- package/dist/esm/array/findLastIndex.js +21 -0
- package/dist/esm/array/flatten.js +21 -0
- package/dist/esm/array/flattenDeep.js +22 -0
- package/dist/esm/array/forEach.js +26 -0
- package/dist/esm/array/forEachRight.js +23 -0
- package/dist/esm/array/groupBy.js +61 -0
- package/dist/esm/array/head.js +18 -0
- package/dist/esm/array/includes.js +54 -0
- package/dist/esm/array/index.js +43 -0
- package/dist/esm/array/intersection.js +48 -0
- package/dist/esm/array/keyBy.js +73 -0
- package/dist/esm/array/last.js +20 -0
- package/dist/esm/array/map.js +20 -0
- package/dist/esm/array/max.js +19 -0
- package/dist/esm/array/maxBy.js +21 -0
- package/dist/esm/array/mean.js +21 -0
- package/dist/esm/array/meanBy.js +24 -0
- package/dist/esm/array/min.js +19 -0
- package/dist/esm/array/minBy.js +21 -0
- package/dist/esm/array/orderBy.js +89 -0
- package/dist/esm/array/partition.js +62 -0
- package/dist/esm/array/reduce.js +24 -0
- package/dist/esm/array/reduceRight.js +24 -0
- package/dist/esm/array/some.js +60 -0
- package/dist/esm/array/sortBy.js +21 -0
- package/dist/esm/array/sum.js +19 -0
- package/dist/esm/array/sumBy.js +25 -0
- package/dist/esm/array/take.js +25 -0
- package/dist/esm/array/union.js +32 -0
- package/dist/esm/array/uniq.js +30 -0
- package/dist/esm/array/uniqBy.js +35 -0
- package/dist/esm/array/without.js +24 -0
- package/dist/esm/color/getCssVariable.js +28 -0
- package/dist/esm/color/getThemePalette.js +53 -0
- package/dist/esm/color/hexToRgb.js +23 -0
- package/dist/esm/color/index.js +5 -0
- package/dist/esm/color/rgbStringToHex.js +36 -0
- package/dist/esm/color/rgbToHex.js +21 -0
- package/dist/esm/convert/index.js +13 -0
- package/dist/esm/convert/toArray.js +50 -0
- package/dist/esm/convert/toFinite.js +28 -0
- package/dist/esm/convert/toInteger.js +27 -0
- package/dist/esm/convert/toLength.js +24 -0
- package/dist/esm/convert/toLower.js +19 -0
- package/dist/esm/convert/toNumber.js +52 -0
- package/dist/esm/convert/toPairs.js +21 -0
- package/dist/esm/convert/toPairsIn.js +29 -0
- package/dist/esm/convert/toPath.js +16 -0
- package/dist/esm/convert/toPlainObject.js +36 -0
- package/dist/esm/convert/toSafeInteger.js +28 -0
- package/dist/esm/convert/toString.js +31 -0
- package/dist/esm/convert/toUpper.js +19 -0
- package/dist/esm/function/after.js +29 -0
- package/dist/esm/function/before.js +29 -0
- package/dist/esm/function/curry.js +53 -0
- package/dist/esm/function/debounce.js +104 -0
- package/dist/esm/function/flow.js +49 -0
- package/dist/esm/function/flowRight.js +43 -0
- package/dist/esm/function/index.js +11 -0
- package/dist/esm/function/memoize.js +20 -0
- package/dist/esm/function/once.js +28 -0
- package/dist/esm/function/partial.js +31 -0
- package/dist/esm/function/partialRight.js +30 -0
- package/dist/esm/function/throttle.js +14 -0
- package/dist/esm/index.js +10 -0
- package/dist/esm/object/assign.js +21 -0
- package/dist/esm/object/clone.js +23 -0
- package/dist/esm/object/cloneDeep.js +24 -0
- package/dist/esm/object/cloneDeepWith.js +24 -0
- package/dist/esm/object/cloneWith.js +24 -0
- package/dist/esm/object/defaults.js +20 -0
- package/dist/esm/object/defaultsDeep.js +38 -0
- package/dist/esm/object/findKey.js +23 -0
- package/dist/esm/object/findLastKey.js +23 -0
- package/dist/esm/object/forIn.js +23 -0
- package/dist/esm/object/forOwn.js +23 -0
- package/dist/esm/object/fromPairs.js +25 -0
- package/dist/esm/object/get.js +31 -0
- package/dist/esm/object/has.js +33 -0
- package/dist/esm/object/index.js +29 -0
- package/dist/esm/object/invert.js +31 -0
- package/dist/esm/object/keys.js +22 -0
- package/dist/esm/object/mapKeys.js +31 -0
- package/dist/esm/object/mapValues.js +31 -0
- package/dist/esm/object/merge.js +23 -0
- package/dist/esm/object/mergeWith.js +35 -0
- package/dist/esm/object/omit.js +30 -0
- package/dist/esm/object/omitBy.js +32 -0
- package/dist/esm/object/pick.js +31 -0
- package/dist/esm/object/pickBy.js +32 -0
- package/dist/esm/object/set.js +61 -0
- package/dist/esm/object/unset.js +22 -0
- package/dist/esm/object/update.js +25 -0
- package/dist/esm/object/updateWith.js +27 -0
- package/dist/esm/object/values.js +22 -0
- package/dist/esm/string/camelCase.js +31 -0
- package/dist/esm/string/capitalize.js +19 -0
- package/dist/esm/string/endsWith.js +30 -0
- package/dist/esm/string/escape.js +20 -0
- package/dist/esm/string/index.js +17 -0
- package/dist/esm/string/kebabCase.js +22 -0
- package/dist/esm/string/lowerCase.js +19 -0
- package/dist/esm/string/pad.js +25 -0
- package/dist/esm/string/padEnd.js +25 -0
- package/dist/esm/string/padStart.js +25 -0
- package/dist/esm/string/repeat.js +24 -0
- package/dist/esm/string/snakeCase.js +22 -0
- package/dist/esm/string/startsWith.js +28 -0
- package/dist/esm/string/trim.js +24 -0
- package/dist/esm/string/trimEnd.js +24 -0
- package/dist/esm/string/trimStart.js +24 -0
- package/dist/esm/string/unescape.js +20 -0
- package/dist/esm/string/upperFirst.js +19 -0
- package/dist/esm/tree/filterTreeNodes.js +45 -0
- package/dist/esm/tree/findTreeNode.js +39 -0
- package/dist/esm/tree/forEachTree.js +27 -0
- package/dist/esm/tree/getParentNodes.js +43 -0
- package/dist/esm/tree/getTreeDepth.js +32 -0
- package/dist/esm/tree/index.js +12 -0
- package/dist/esm/tree/mapTree.js +95 -0
- package/dist/esm/tree/pruneTree.js +123 -0
- package/dist/esm/tree/toFlatList.js +51 -0
- package/dist/esm/tree/toTree.js +68 -0
- package/dist/esm/tree/traverseTree.js +23 -0
- package/dist/esm/tree/traverseTreeBfs.js +23 -0
- package/dist/esm/util/clamp.js +53 -0
- package/dist/esm/util/constant.js +18 -0
- package/dist/esm/util/defaultTo.js +25 -0
- package/dist/esm/util/defer.js +19 -0
- package/dist/esm/util/delay.js +22 -0
- package/dist/esm/util/identity.js +17 -0
- package/dist/esm/util/inRange.js +38 -0
- package/dist/esm/util/index.js +21 -0
- package/dist/esm/util/iteratee.js +24 -0
- package/dist/esm/util/matches.js +21 -0
- package/dist/esm/util/matchesProperty.js +31 -0
- package/dist/esm/util/negate.js +22 -0
- package/dist/esm/util/noop.js +17 -0
- package/dist/esm/util/now.js +17 -0
- package/dist/esm/util/property.js +27 -0
- package/dist/esm/util/random.js +68 -0
- package/dist/esm/util/range.js +40 -0
- package/dist/esm/util/size.js +41 -0
- package/dist/esm/util/sleep.js +19 -0
- package/dist/esm/util/times.js +35 -0
- package/dist/esm/util/uniqueId.js +23 -0
- package/dist/esm/util/validateFields.js +100 -0
- package/dist/esm/verify/index.js +36 -0
- package/dist/esm/verify/isArguments.js +18 -0
- package/dist/esm/verify/isArray.js +18 -0
- package/dist/esm/verify/isArrayBuffer.js +18 -0
- package/dist/esm/verify/isArrayLike.js +25 -0
- package/dist/esm/verify/isBoolean.js +18 -0
- package/dist/esm/verify/isBuffer.js +20 -0
- package/dist/esm/verify/isDate.js +18 -0
- package/dist/esm/verify/isElement.js +20 -0
- package/dist/esm/verify/isEmpty.js +38 -0
- package/dist/esm/verify/isEqual.js +24 -0
- package/dist/esm/verify/isEqualWith.js +25 -0
- package/dist/esm/verify/isError.js +20 -0
- package/dist/esm/verify/isFinite.js +22 -0
- package/dist/esm/verify/isFunction.js +19 -0
- package/dist/esm/verify/isInteger.js +19 -0
- package/dist/esm/verify/isLength.js +19 -0
- package/dist/esm/verify/isMap.js +18 -0
- package/dist/esm/verify/isMatch.js +24 -0
- package/dist/esm/verify/isMatchWith.js +25 -0
- package/dist/esm/verify/isNaN.js +22 -0
- package/dist/esm/verify/isNative.js +22 -0
- package/dist/esm/verify/isNil.js +24 -0
- package/dist/esm/verify/isNull.js +18 -0
- package/dist/esm/verify/isNumber.js +21 -0
- package/dist/esm/verify/isObject.js +23 -0
- package/dist/esm/verify/isObjectLike.js +27 -0
- package/dist/esm/verify/isPlainObject.js +18 -0
- package/dist/esm/verify/isRegExp.js +18 -0
- package/dist/esm/verify/isSafeInteger.js +24 -0
- package/dist/esm/verify/isSet.js +18 -0
- package/dist/esm/verify/isString.js +18 -0
- package/dist/esm/verify/isSymbol.js +18 -0
- package/dist/esm/verify/isTypedArray.js +35 -0
- package/dist/esm/verify/isUndefined.js +18 -0
- package/dist/esm/verify/isWeakMap.js +18 -0
- package/dist/esm/verify/isWeakSet.js +18 -0
- package/dist/esm/version.js +14 -0
- package/dist/types/_internal/MapCache.d.ts +13 -0
- package/dist/types/_internal/assignSources.d.ts +6 -0
- package/dist/types/_internal/assignValue.d.ts +6 -0
- package/dist/types/_internal/baseClone.d.ts +11 -0
- package/dist/types/_internal/baseCollectionKeys.d.ts +12 -0
- package/dist/types/_internal/baseDefaultsDeep.d.ts +6 -0
- package/dist/types/_internal/baseDifference.d.ts +6 -0
- package/dist/types/_internal/baseExtremum.d.ts +6 -0
- package/dist/types/_internal/baseExtremumBy.d.ts +7 -0
- package/dist/types/_internal/baseFilter.d.ts +7 -0
- package/dist/types/_internal/baseFind.d.ts +20 -0
- package/dist/types/_internal/baseFlatten.d.ts +6 -0
- package/dist/types/_internal/baseForEach.d.ts +6 -0
- package/dist/types/_internal/baseForOwn.d.ts +14 -0
- package/dist/types/_internal/baseIsEqual.d.ts +10 -0
- package/dist/types/_internal/baseIsMatch.d.ts +10 -0
- package/dist/types/_internal/baseIteratee.d.ts +7 -0
- package/dist/types/_internal/baseKeysIn.d.ts +6 -0
- package/dist/types/_internal/baseMap.d.ts +7 -0
- package/dist/types/_internal/baseMerge.d.ts +13 -0
- package/dist/types/_internal/basePad.d.ts +6 -0
- package/dist/types/_internal/basePath.d.ts +20 -0
- package/dist/types/_internal/baseRange.d.ts +6 -0
- package/dist/types/_internal/baseReduce.d.ts +7 -0
- package/dist/types/_internal/baseSum.d.ts +6 -0
- package/dist/types/_internal/baseTreeTraverse.d.ts +86 -0
- package/dist/types/_internal/baseTrim.d.ts +6 -0
- package/dist/types/_internal/baseUnset.d.ts +6 -0
- package/dist/types/_internal/baseUpdate.d.ts +6 -0
- package/dist/types/_internal/coerceToString.d.ts +6 -0
- package/dist/types/_internal/colorMath.d.ts +14 -0
- package/dist/types/_internal/compareValues.d.ts +12 -0
- package/dist/types/_internal/composePartials.d.ts +8 -0
- package/dist/types/_internal/createCompounder.d.ts +6 -0
- package/dist/types/_internal/deburr.d.ts +6 -0
- package/dist/types/_internal/flattenPaths.d.ts +6 -0
- package/dist/types/_internal/htmlEscape.d.ts +12 -0
- package/dist/types/_internal/identity.d.ts +6 -0
- package/dist/types/_internal/index.d.ts +10 -0
- package/dist/types/_internal/isArguments.d.ts +6 -0
- package/dist/types/_internal/isArrayLike.d.ts +6 -0
- package/dist/types/_internal/isArrayLikeObject.d.ts +6 -0
- package/dist/types/_internal/isEmptyValue.d.ts +6 -0
- package/dist/types/_internal/isFlattenable.d.ts +6 -0
- package/dist/types/_internal/isIndex.d.ts +6 -0
- package/dist/types/_internal/isLength.d.ts +6 -0
- package/dist/types/_internal/isPlainObject.d.ts +8 -0
- package/dist/types/_internal/mergeInto.d.ts +7 -0
- package/dist/types/_internal/repeatString.d.ts +6 -0
- package/dist/types/_internal/toInteger.d.ts +6 -0
- package/dist/types/_internal/toLength.d.ts +6 -0
- package/dist/types/_internal/toPath.d.ts +7 -0
- package/dist/types/_internal/upperFirst.d.ts +6 -0
- package/dist/types/_internal/validateFieldRule.d.ts +26 -0
- package/dist/types/_internal/words.d.ts +6 -0
- package/dist/types/array/chunk.d.ts +17 -0
- package/dist/types/array/compact.d.ts +16 -0
- package/dist/types/array/concat.d.ts +17 -0
- package/dist/types/array/difference.d.ts +17 -0
- package/dist/types/array/differenceBy.d.ts +18 -0
- package/dist/types/array/drop.d.ts +17 -0
- package/dist/types/array/each.d.ts +18 -0
- package/dist/types/array/every.d.ts +21 -0
- package/dist/types/array/filter.d.ts +18 -0
- package/dist/types/array/find.d.ts +23 -0
- package/dist/types/array/findIndex.d.ts +18 -0
- package/dist/types/array/findLast.d.ts +18 -0
- package/dist/types/array/findLastIndex.d.ts +18 -0
- package/dist/types/array/flatten.d.ts +16 -0
- package/dist/types/array/flattenDeep.d.ts +16 -0
- package/dist/types/array/forEach.d.ts +23 -0
- package/dist/types/array/forEachRight.d.ts +20 -0
- package/dist/types/array/groupBy.d.ts +18 -0
- package/dist/types/array/head.d.ts +16 -0
- package/dist/types/array/includes.d.ts +21 -0
- package/dist/types/array/index.d.ts +43 -0
- package/dist/types/array/intersection.d.ts +16 -0
- package/dist/types/array/keyBy.d.ts +24 -0
- package/dist/types/array/last.d.ts +16 -0
- package/dist/types/array/map.d.ts +18 -0
- package/dist/types/array/max.d.ts +16 -0
- package/dist/types/array/maxBy.d.ts +18 -0
- package/dist/types/array/mean.d.ts +16 -0
- package/dist/types/array/meanBy.d.ts +18 -0
- package/dist/types/array/min.d.ts +16 -0
- package/dist/types/array/minBy.d.ts +18 -0
- package/dist/types/array/orderBy.d.ts +23 -0
- package/dist/types/array/partition.d.ts +18 -0
- package/dist/types/array/reduce.d.ts +19 -0
- package/dist/types/array/reduceRight.d.ts +19 -0
- package/dist/types/array/some.d.ts +18 -0
- package/dist/types/array/sortBy.d.ts +18 -0
- package/dist/types/array/sum.d.ts +16 -0
- package/dist/types/array/sumBy.d.ts +18 -0
- package/dist/types/array/take.d.ts +17 -0
- package/dist/types/array/union.d.ts +16 -0
- package/dist/types/array/uniq.d.ts +16 -0
- package/dist/types/array/uniqBy.d.ts +18 -0
- package/dist/types/array/without.d.ts +17 -0
- package/dist/types/color/getCssVariable.d.ts +18 -0
- package/dist/types/color/getThemePalette.d.ts +28 -0
- package/dist/types/color/hexToRgb.d.ts +16 -0
- package/dist/types/color/index.d.ts +6 -0
- package/dist/types/color/rgbStringToHex.d.ts +16 -0
- package/dist/types/color/rgbToHex.d.ts +18 -0
- package/dist/types/convert/index.d.ts +13 -0
- package/dist/types/convert/toArray.d.ts +19 -0
- package/dist/types/convert/toFinite.d.ts +19 -0
- package/dist/types/convert/toInteger.d.ts +19 -0
- package/dist/types/convert/toLength.d.ts +19 -0
- package/dist/types/convert/toLower.d.ts +16 -0
- package/dist/types/convert/toNumber.d.ts +19 -0
- package/dist/types/convert/toPairs.d.ts +16 -0
- package/dist/types/convert/toPairsIn.d.ts +20 -0
- package/dist/types/convert/toPath.d.ts +16 -0
- package/dist/types/convert/toPlainObject.d.ts +19 -0
- package/dist/types/convert/toSafeInteger.d.ts +19 -0
- package/dist/types/convert/toString.d.ts +19 -0
- package/dist/types/convert/toUpper.d.ts +16 -0
- package/dist/types/function/after.d.ts +20 -0
- package/dist/types/function/before.d.ts +20 -0
- package/dist/types/function/curry.d.ts +27 -0
- package/dist/types/function/debounce.d.ts +31 -0
- package/dist/types/function/flow.d.ts +18 -0
- package/dist/types/function/flowRight.d.ts +18 -0
- package/dist/types/function/index.d.ts +11 -0
- package/dist/types/function/memoize.d.ts +41 -0
- package/dist/types/function/once.d.ts +18 -0
- package/dist/types/function/partial.d.ts +26 -0
- package/dist/types/function/partialRight.d.ts +25 -0
- package/dist/types/function/throttle.d.ts +26 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/object/assign.d.ts +18 -0
- package/dist/types/object/clone.d.ts +20 -0
- package/dist/types/object/cloneDeep.d.ts +21 -0
- package/dist/types/object/cloneDeepWith.d.ts +23 -0
- package/dist/types/object/cloneWith.d.ts +23 -0
- package/dist/types/object/defaults.d.ts +17 -0
- package/dist/types/object/defaultsDeep.d.ts +17 -0
- package/dist/types/object/findKey.d.ts +17 -0
- package/dist/types/object/findLastKey.d.ts +17 -0
- package/dist/types/object/forIn.d.ts +16 -0
- package/dist/types/object/forOwn.d.ts +16 -0
- package/dist/types/object/fromPairs.d.ts +16 -0
- package/dist/types/object/get.d.ts +20 -0
- package/dist/types/object/has.d.ts +19 -0
- package/dist/types/object/index.d.ts +29 -0
- package/dist/types/object/invert.d.ts +16 -0
- package/dist/types/object/keys.d.ts +19 -0
- package/dist/types/object/mapKeys.d.ts +18 -0
- package/dist/types/object/mapValues.d.ts +18 -0
- package/dist/types/object/merge.d.ts +20 -0
- package/dist/types/object/mergeWith.d.ts +27 -0
- package/dist/types/object/omit.d.ts +18 -0
- package/dist/types/object/omitBy.d.ts +18 -0
- package/dist/types/object/pick.d.ts +18 -0
- package/dist/types/object/pickBy.d.ts +18 -0
- package/dist/types/object/set.d.ts +23 -0
- package/dist/types/object/unset.d.ts +19 -0
- package/dist/types/object/update.d.ts +19 -0
- package/dist/types/object/updateWith.d.ts +21 -0
- package/dist/types/object/values.d.ts +19 -0
- package/dist/types/string/camelCase.d.ts +19 -0
- package/dist/types/string/capitalize.d.ts +16 -0
- package/dist/types/string/endsWith.d.ts +21 -0
- package/dist/types/string/escape.d.ts +16 -0
- package/dist/types/string/index.d.ts +17 -0
- package/dist/types/string/kebabCase.d.ts +20 -0
- package/dist/types/string/lowerCase.d.ts +17 -0
- package/dist/types/string/pad.d.ts +21 -0
- package/dist/types/string/padEnd.d.ts +21 -0
- package/dist/types/string/padStart.d.ts +21 -0
- package/dist/types/string/repeat.d.ts +20 -0
- package/dist/types/string/snakeCase.d.ts +20 -0
- package/dist/types/string/startsWith.d.ts +21 -0
- package/dist/types/string/trim.d.ts +20 -0
- package/dist/types/string/trimEnd.d.ts +20 -0
- package/dist/types/string/trimStart.d.ts +20 -0
- package/dist/types/string/unescape.d.ts +16 -0
- package/dist/types/string/upperFirst.d.ts +16 -0
- package/dist/types/tree/filterTreeNodes.d.ts +29 -0
- package/dist/types/tree/findTreeNode.d.ts +22 -0
- package/dist/types/tree/forEachTree.d.ts +25 -0
- package/dist/types/tree/getParentNodes.d.ts +26 -0
- package/dist/types/tree/getTreeDepth.d.ts +22 -0
- package/dist/types/tree/index.d.ts +14 -0
- package/dist/types/tree/mapTree.d.ts +23 -0
- package/dist/types/tree/pruneTree.d.ts +32 -0
- package/dist/types/tree/toFlatList.d.ts +26 -0
- package/dist/types/tree/toTree.d.ts +22 -0
- package/dist/types/tree/traverseTree.d.ts +22 -0
- package/dist/types/tree/traverseTreeBfs.d.ts +22 -0
- package/dist/types/util/clamp.d.ts +18 -0
- package/dist/types/util/constant.d.ts +16 -0
- package/dist/types/util/defaultTo.d.ts +23 -0
- package/dist/types/util/defer.d.ts +16 -0
- package/dist/types/util/delay.d.ts +17 -0
- package/dist/types/util/identity.d.ts +17 -0
- package/dist/types/util/inRange.d.ts +18 -0
- package/dist/types/util/index.d.ts +22 -0
- package/dist/types/util/iteratee.d.ts +17 -0
- package/dist/types/util/matches.d.ts +16 -0
- package/dist/types/util/matchesProperty.d.ts +17 -0
- package/dist/types/util/negate.d.ts +16 -0
- package/dist/types/util/noop.d.ts +15 -0
- package/dist/types/util/now.d.ts +15 -0
- package/dist/types/util/property.d.ts +16 -0
- package/dist/types/util/random.d.ts +18 -0
- package/dist/types/util/range.d.ts +18 -0
- package/dist/types/util/size.d.ts +22 -0
- package/dist/types/util/sleep.d.ts +15 -0
- package/dist/types/util/times.d.ts +17 -0
- package/dist/types/util/uniqueId.d.ts +19 -0
- package/dist/types/util/validateFields.d.ts +46 -0
- package/dist/types/verify/index.d.ts +36 -0
- package/dist/types/verify/isArguments.d.ts +18 -0
- package/dist/types/verify/isArray.d.ts +16 -0
- package/dist/types/verify/isArrayBuffer.d.ts +16 -0
- package/dist/types/verify/isArrayLike.d.ts +24 -0
- package/dist/types/verify/isBoolean.d.ts +16 -0
- package/dist/types/verify/isBuffer.d.ts +17 -0
- package/dist/types/verify/isDate.d.ts +16 -0
- package/dist/types/verify/isElement.d.ts +17 -0
- package/dist/types/verify/isEmpty.d.ts +21 -0
- package/dist/types/verify/isEqual.d.ts +21 -0
- package/dist/types/verify/isEqualWith.d.ts +24 -0
- package/dist/types/verify/isError.d.ts +18 -0
- package/dist/types/verify/isFinite.d.ts +19 -0
- package/dist/types/verify/isFunction.d.ts +16 -0
- package/dist/types/verify/isInteger.d.ts +17 -0
- package/dist/types/verify/isLength.d.ts +19 -0
- package/dist/types/verify/isMap.d.ts +16 -0
- package/dist/types/verify/isMatch.d.ts +21 -0
- package/dist/types/verify/isMatchWith.d.ts +24 -0
- package/dist/types/verify/isNaN.d.ts +19 -0
- package/dist/types/verify/isNative.d.ts +19 -0
- package/dist/types/verify/isNil.d.ts +22 -0
- package/dist/types/verify/isNull.d.ts +16 -0
- package/dist/types/verify/isNumber.d.ts +19 -0
- package/dist/types/verify/isObject.d.ts +20 -0
- package/dist/types/verify/isObjectLike.d.ts +25 -0
- package/dist/types/verify/isPlainObject.d.ts +18 -0
- package/dist/types/verify/isRegExp.d.ts +16 -0
- package/dist/types/verify/isSafeInteger.d.ts +19 -0
- package/dist/types/verify/isSet.d.ts +16 -0
- package/dist/types/verify/isString.d.ts +16 -0
- package/dist/types/verify/isSymbol.d.ts +16 -0
- package/dist/types/verify/isTypedArray.d.ts +19 -0
- package/dist/types/verify/isUndefined.d.ts +16 -0
- package/dist/types/verify/isWeakMap.d.ts +16 -0
- package/dist/types/verify/isWeakSet.d.ts +16 -0
- package/dist/types/version.d.ts +13 -0
- package/dist/umd/zhiaiwan-utils.js +8178 -0
- package/dist/umd/zhiaiwan-utils.min.js +2 -0
- package/package.json +99 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 将 value 转为字符串;`null` / `undefined` 转为 `''`。
|
|
3
|
+
*
|
|
4
|
+
* @param value - 待转换的值
|
|
5
|
+
* @returns 字符串
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* toString(null);
|
|
10
|
+
* // => ''
|
|
11
|
+
*
|
|
12
|
+
* toString(-0);
|
|
13
|
+
* // => '-0'
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @since 1.0.0
|
|
17
|
+
* @category Convert
|
|
18
|
+
*/
|
|
19
|
+
export default function toString(value: unknown): string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 将 value 转为大写字符串。
|
|
3
|
+
*
|
|
4
|
+
* @param value - 待转换的值
|
|
5
|
+
* @returns 大写字符串
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* toUpper('--Foo-Bar--');
|
|
10
|
+
* // => '--FOO-BAR--'
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @since 1.0.0
|
|
14
|
+
* @category Convert
|
|
15
|
+
*/
|
|
16
|
+
export default function toUpper(value: unknown): string;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 创建一个跳过前 `n - 1` 次调用的函数;从第 n 次起执行 func。
|
|
3
|
+
*
|
|
4
|
+
* @param n - 开始执行的调用序号(从 1 起计)
|
|
5
|
+
* @param func - 要延迟执行的函数
|
|
6
|
+
* @returns 包装后的新函数
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* let count = 0;
|
|
11
|
+
* const delayed = after(3, () => ++count);
|
|
12
|
+
* delayed(); // => undefined
|
|
13
|
+
* delayed(); // => undefined
|
|
14
|
+
* delayed(); // => 1
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @since 1.0.0
|
|
18
|
+
* @category Function
|
|
19
|
+
*/
|
|
20
|
+
export default function after<A extends unknown[], R>(n: number, func: (...args: A) => R): (...args: A) => R | undefined;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 创建一个最多调用 func `n - 1` 次的函数;达到上限后返回最后一次调用结果。
|
|
3
|
+
*
|
|
4
|
+
* @param n - 调用次数上限(不含第 n 次实际执行)
|
|
5
|
+
* @param func - 要限制的函数
|
|
6
|
+
* @returns 限制后的新函数
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* let count = 0;
|
|
11
|
+
* const limited = before(3, () => ++count);
|
|
12
|
+
* limited(); // => 1
|
|
13
|
+
* limited(); // => 2
|
|
14
|
+
* limited(); // => 2
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @since 1.0.0
|
|
18
|
+
* @category Function
|
|
19
|
+
*/
|
|
20
|
+
export default function before<A extends unknown[], R>(n: number, func: (...args: A) => R): (...args: A) => R | undefined;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface CurriedFunction {
|
|
2
|
+
(...args: unknown[]): unknown;
|
|
3
|
+
placeholder: object;
|
|
4
|
+
}
|
|
5
|
+
export declare const curryPlaceholder: {};
|
|
6
|
+
/**
|
|
7
|
+
* 创建可柯里化的函数。
|
|
8
|
+
*
|
|
9
|
+
* @param func - 原函数
|
|
10
|
+
* @param arity - 参数个数,默认 func.length
|
|
11
|
+
* @returns 柯里化函数
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* const curried = zhiaiwanUtils.curry((a: number, b: number, c: number) => [a, b, c]);
|
|
16
|
+
* curried(1)(2)(3);
|
|
17
|
+
* // => [1, 2, 3]
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @since 1.0.0
|
|
21
|
+
* @category Function
|
|
22
|
+
*/
|
|
23
|
+
declare function curry(func: (...args: unknown[]) => unknown, arity?: number): CurriedFunction;
|
|
24
|
+
declare namespace curry {
|
|
25
|
+
var placeholder: {};
|
|
26
|
+
}
|
|
27
|
+
export default curry;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 创建一个防抖函数,在最后一次调用后等待 wait 毫秒才执行 func。
|
|
3
|
+
* 返回的函数带有 `cancel` 与 `flush` 方法;在 trailing 触发前重复调用会返回上次 func 的执行结果。
|
|
4
|
+
*
|
|
5
|
+
* @param func - 要防抖的函数
|
|
6
|
+
* @param wait - 延迟毫秒数,默认为 0
|
|
7
|
+
* @param options - 配置项:`leading` 是否在超时前沿触发;`trailing` 是否在超时后沿触发;`maxWait` 允许延迟的最长时间
|
|
8
|
+
* @returns 防抖后的新函数
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const save = debounce(() => persist(), 300);
|
|
13
|
+
* window.addEventListener('resize', save);
|
|
14
|
+
*
|
|
15
|
+
* const sendMail = debounce(send, 300, { leading: true, trailing: false });
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
* @category Function
|
|
20
|
+
*/
|
|
21
|
+
export interface DebounceOptions {
|
|
22
|
+
leading?: boolean;
|
|
23
|
+
maxWait?: number;
|
|
24
|
+
trailing?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface DebouncedFunction<A extends unknown[], R> {
|
|
27
|
+
(...args: A): R | undefined;
|
|
28
|
+
cancel(): void;
|
|
29
|
+
flush(): R | undefined;
|
|
30
|
+
}
|
|
31
|
+
export default function debounce<A extends unknown[], R>(func: (...args: A) => R, wait?: number, options?: DebounceOptions): DebouncedFunction<A, R>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
type FlowFunction = (...args: unknown[]) => unknown;
|
|
2
|
+
/**
|
|
3
|
+
* 创建一个按顺序组合多个函数的复合函数。
|
|
4
|
+
*
|
|
5
|
+
* @param funcs - 待组合的函数(可传数组)
|
|
6
|
+
* @returns 复合函数
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* zhiaiwanUtils.flow([(a: number) => a + 1, (a: number) => a * 2])(1);
|
|
11
|
+
* // => 4
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @since 1.0.0
|
|
15
|
+
* @category Function
|
|
16
|
+
*/
|
|
17
|
+
declare const _default: (...funcs: Array<FlowFunction | FlowFunction[]>) => (this: unknown, ...args: unknown[]) => unknown;
|
|
18
|
+
export default _default;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
type FlowFunction = (...args: unknown[]) => unknown;
|
|
2
|
+
/**
|
|
3
|
+
* 创建一个从右向左组合多个函数的复合函数。
|
|
4
|
+
*
|
|
5
|
+
* @param funcs - 待组合的函数(可传数组)
|
|
6
|
+
* @returns 复合函数
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* zhiaiwanUtils.flowRight([(a: number) => a + 1, (a: number) => a * 2])(1);
|
|
11
|
+
* // => 3
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @since 1.0.0
|
|
15
|
+
* @category Function
|
|
16
|
+
*/
|
|
17
|
+
export default function flowRight(...funcs: Array<FlowFunction | FlowFunction[]>): FlowFunction;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { default as once } from './once';
|
|
2
|
+
export { default as debounce, type DebounceOptions, type DebouncedFunction } from './debounce';
|
|
3
|
+
export { default as throttle, type ThrottleOptions, type ThrottledFunction } from './throttle';
|
|
4
|
+
export { default as before } from './before';
|
|
5
|
+
export { default as after } from './after';
|
|
6
|
+
export { default as memoize, type MemoizedFunction } from './memoize';
|
|
7
|
+
export { default as partial, partialPlaceholder } from './partial';
|
|
8
|
+
export { default as partialRight } from './partialRight';
|
|
9
|
+
export { default as flow } from './flow';
|
|
10
|
+
export { default as flowRight } from './flowRight';
|
|
11
|
+
export { default as curry, curryPlaceholder, type CurriedFunction } from './curry';
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 创建一个记忆化函数,缓存 func 的计算结果。默认以第一个参数作为缓存键,
|
|
3
|
+
* 可通过 resolver 自定义键生成逻辑。
|
|
4
|
+
*
|
|
5
|
+
* @param func - 要记忆化的函数
|
|
6
|
+
* @param resolver - 自定义缓存键生成函数
|
|
7
|
+
* @returns 带 cache 属性的记忆化函数
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* let count = 0;
|
|
12
|
+
* const sum = memoize((a: number, b: number) => {
|
|
13
|
+
* count += 1;
|
|
14
|
+
* return a + b;
|
|
15
|
+
* });
|
|
16
|
+
* sum(1, 2); // => 3, count === 1
|
|
17
|
+
* sum(1, 2); // => 3, count === 1
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @since 1.0.0
|
|
21
|
+
* @category Function
|
|
22
|
+
*/
|
|
23
|
+
export interface MemoizeCache<R> {
|
|
24
|
+
clear(): void;
|
|
25
|
+
delete(key: unknown): boolean;
|
|
26
|
+
get(key: unknown): R | undefined;
|
|
27
|
+
has(key: unknown): boolean;
|
|
28
|
+
set(key: unknown, value: R): MemoizeCache<R>;
|
|
29
|
+
}
|
|
30
|
+
export interface MemoizedFunction<A extends unknown[], R> {
|
|
31
|
+
(...args: A): R;
|
|
32
|
+
cache: MemoizeCache<R>;
|
|
33
|
+
}
|
|
34
|
+
export interface MemoizeCacheConstructor<R> {
|
|
35
|
+
new (): MemoizeCache<R>;
|
|
36
|
+
}
|
|
37
|
+
declare function memoize<A extends unknown[], R>(func: (...args: A) => R, resolver?: (...args: A) => unknown): MemoizedFunction<A, R>;
|
|
38
|
+
declare namespace memoize {
|
|
39
|
+
var Cache: MemoizeCacheConstructor<unknown>;
|
|
40
|
+
}
|
|
41
|
+
export default memoize;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 创建一个只能调用 func 一次的函数。重复调用返回首次调用的结果。
|
|
3
|
+
*
|
|
4
|
+
* @param func - 要限制的函数
|
|
5
|
+
* @returns 限制后的新函数
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* let count = 0;
|
|
10
|
+
* const init = once(() => ++count);
|
|
11
|
+
* init(); // => 1
|
|
12
|
+
* init(); // => 1
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* @since 1.0.0
|
|
16
|
+
* @category Function
|
|
17
|
+
*/
|
|
18
|
+
export default function once<A extends unknown[], R>(func: (...args: A) => R): (...args: A) => R;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { partialPlaceholder } from '../_internal/composePartials';
|
|
2
|
+
export { partialPlaceholder };
|
|
3
|
+
/**
|
|
4
|
+
* 创建一个偏函数,将 partials 参数预置到 func 参数列表前部。
|
|
5
|
+
* 可用 `partial.placeholder` 占位,调用时再填入实参。
|
|
6
|
+
*
|
|
7
|
+
* @param func - 原函数
|
|
8
|
+
* @param partials - 预置参数
|
|
9
|
+
* @returns 偏函数
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* const fn = (a: number, b: number, c: number) => [a, b, c];
|
|
14
|
+
* const preset = partial(fn, partial.placeholder, 2);
|
|
15
|
+
* preset(1, 3);
|
|
16
|
+
* // => [1, 2, 3]
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @since 1.0.0
|
|
20
|
+
* @category Function
|
|
21
|
+
*/
|
|
22
|
+
declare function partial<A extends unknown[], R>(func: (...args: A) => R, ...partials: unknown[]): (...args: unknown[]) => R;
|
|
23
|
+
declare namespace partial {
|
|
24
|
+
var placeholder: typeof partialPlaceholder;
|
|
25
|
+
}
|
|
26
|
+
export default partial;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { partialPlaceholder } from '../_internal/composePartials';
|
|
2
|
+
/**
|
|
3
|
+
* 创建一个偏函数,将 partials 参数预置到 func 参数列表尾部。
|
|
4
|
+
* 可用 `partialRight.placeholder` 占位,调用时再填入实参。
|
|
5
|
+
*
|
|
6
|
+
* @param func - 原函数
|
|
7
|
+
* @param partials - 预置参数
|
|
8
|
+
* @returns 偏函数
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const fn = (a: number, b: number, c: number) => [a, b, c];
|
|
13
|
+
* const preset = partialRight(fn, 2, partialRight.placeholder);
|
|
14
|
+
* preset(1, 3);
|
|
15
|
+
* // => [1, 2, 3]
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
* @category Function
|
|
20
|
+
*/
|
|
21
|
+
declare function partialRight<A extends unknown[], R>(func: (...args: A) => R, ...partials: unknown[]): (...args: unknown[]) => R;
|
|
22
|
+
declare namespace partialRight {
|
|
23
|
+
var placeholder: typeof partialPlaceholder;
|
|
24
|
+
}
|
|
25
|
+
export default partialRight;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type DebouncedFunction } from './debounce';
|
|
2
|
+
/**
|
|
3
|
+
* 创建一个节流函数,在 wait 毫秒内最多执行 func 一次。
|
|
4
|
+
* 基于 debounce 实现,默认 `leading` 与 `trailing` 均为 true。
|
|
5
|
+
* 返回的函数带有 `cancel` 与 `flush` 方法。
|
|
6
|
+
*
|
|
7
|
+
* @param func - 要节流的函数
|
|
8
|
+
* @param wait - 时间窗口毫秒数,默认为 0
|
|
9
|
+
* @param options - 配置项:`leading` 是否在窗口开始时触发;`trailing` 是否在窗口结束时触发
|
|
10
|
+
* @returns 节流后的新函数
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* const onScroll = throttle(() => update(), 200);
|
|
15
|
+
* window.addEventListener('scroll', onScroll);
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
* @category Function
|
|
20
|
+
*/
|
|
21
|
+
export interface ThrottleOptions {
|
|
22
|
+
leading?: boolean;
|
|
23
|
+
trailing?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export type ThrottledFunction<A extends unknown[], R> = DebouncedFunction<A, R>;
|
|
26
|
+
export default function throttle<A extends unknown[], R>(func: (...args: A) => R, wait?: number, options?: ThrottleOptions): ThrottledFunction<A, R>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { version } from './version';
|
|
2
|
+
export * from './array';
|
|
3
|
+
export * from './object';
|
|
4
|
+
export * from './string';
|
|
5
|
+
export * from './convert';
|
|
6
|
+
export * from './tree';
|
|
7
|
+
export * from './util';
|
|
8
|
+
export * from './verify';
|
|
9
|
+
export * from './function';
|
|
10
|
+
export * from './color';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 将 sources 的自有可枚举属性浅合并到 object,后续来源覆盖先前值。
|
|
3
|
+
*
|
|
4
|
+
* @param object - 目标对象
|
|
5
|
+
* @param sources - 一个或多个源对象
|
|
6
|
+
* @returns 合并后的 object
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const obj = { a: 1 };
|
|
11
|
+
* zhiaiwanUtils.assign(obj, { b: 2 }, { b: 3, c: 4 });
|
|
12
|
+
* // => { a: 1, b: 3, c: 4 }
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* @since 1.0.0
|
|
16
|
+
* @category Object
|
|
17
|
+
*/
|
|
18
|
+
export default function assign<T extends object>(object: T, ...sources: unknown[]): T;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 创建 `value` 的浅拷贝。数组、Map、Set 会复制一层容器;
|
|
3
|
+
* `ArrayBuffer` 会复制字节;`TypedArray` 共享底层 buffer;嵌套引用仍与源值共享。
|
|
4
|
+
*
|
|
5
|
+
* @param value - 要拷贝的值
|
|
6
|
+
* @returns 浅拷贝后的新值
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const obj = { a: { b: 1 } };
|
|
11
|
+
* const copy = zhiaiwanUtils.clone(obj);
|
|
12
|
+
* copy.a.b = 2;
|
|
13
|
+
* obj.a.b;
|
|
14
|
+
* // => 2
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @since 1.0.0
|
|
18
|
+
* @category Object
|
|
19
|
+
*/
|
|
20
|
+
export default function clone<T>(value: T): T;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 递归创建 `value` 的深拷贝。支持数组、普通对象、`Date`、`RegExp`、`Map`、`Set`、
|
|
3
|
+
* `ArrayBuffer`、`DataView`、`TypedArray`、`Error`、包装对象以及循环引用;
|
|
4
|
+
* `WeakMap`/`WeakSet` 与函数会原样返回。
|
|
5
|
+
*
|
|
6
|
+
* @param value - 要深拷贝的值
|
|
7
|
+
* @returns 深拷贝后的新值
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* const obj = { a: [{ b: 1 }] };
|
|
12
|
+
* const copy = zhiaiwanUtils.cloneDeep(obj);
|
|
13
|
+
* copy.a[0].b = 2;
|
|
14
|
+
* obj.a[0].b;
|
|
15
|
+
* // => 1
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
* @category Object
|
|
20
|
+
*/
|
|
21
|
+
export default function cloneDeep<T>(value: T): T;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type CloneCustomizer } from '../_internal/baseClone';
|
|
2
|
+
/**
|
|
3
|
+
* 递归创建 `value` 的深拷贝,并通过 `customizer` 自定义克隆结果。
|
|
4
|
+
* 当 `customizer` 返回 `undefined` 时,回退到默认深拷贝逻辑。
|
|
5
|
+
*
|
|
6
|
+
* @param value - 要深拷贝的值
|
|
7
|
+
* @param customizer - 自定义克隆函数,签名为 `(value, key?, object?, stack?)`
|
|
8
|
+
* @returns 深拷贝后的新值
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const copy = zhiaiwanUtils.cloneDeepWith({ a: { b: 1 } }, (val) => {
|
|
13
|
+
* if (typeof val === 'number') {
|
|
14
|
+
* return 0;
|
|
15
|
+
* }
|
|
16
|
+
* });
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @since 1.0.0
|
|
20
|
+
* @category Object
|
|
21
|
+
*/
|
|
22
|
+
export default function cloneDeepWith<T>(value: T, customizer?: CloneCustomizer): T;
|
|
23
|
+
export type { CloneCustomizer };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type CloneCustomizer } from '../_internal/baseClone';
|
|
2
|
+
/**
|
|
3
|
+
* 创建 `value` 的浅拷贝,并通过 `customizer` 自定义克隆结果。
|
|
4
|
+
* 当 `customizer` 返回 `undefined` 时,回退到默认克隆逻辑。
|
|
5
|
+
*
|
|
6
|
+
* @param value - 要拷贝的值
|
|
7
|
+
* @param customizer - 自定义克隆函数,签名为 `(value, key?, object?, stack?)`
|
|
8
|
+
* @returns 浅拷贝后的新值
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const copy = zhiaiwanUtils.cloneWith({ a: 1 }, (val) => {
|
|
13
|
+
* if (typeof val === 'number') {
|
|
14
|
+
* return val + 1;
|
|
15
|
+
* }
|
|
16
|
+
* });
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @since 1.0.0
|
|
20
|
+
* @category Object
|
|
21
|
+
*/
|
|
22
|
+
export default function cloneWith<T>(value: T, customizer?: CloneCustomizer): T;
|
|
23
|
+
export type { CloneCustomizer };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 将 sources 的自有可枚举属性浅合并到 object,仅当 object 上对应属性为 undefined 时才赋值。
|
|
3
|
+
*
|
|
4
|
+
* @param object - 目标对象
|
|
5
|
+
* @param sources - 一个或多个源对象
|
|
6
|
+
* @returns 合并后的 object
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* zhiaiwanUtils.defaults({ a: 1 }, { b: 2 }, { a: 3, b: 4 });
|
|
11
|
+
* // => { a: 1, b: 2 }
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @since 1.0.0
|
|
15
|
+
* @category Object
|
|
16
|
+
*/
|
|
17
|
+
export default function defaults<T extends object>(object: T, ...sources: unknown[]): T;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 将 sources 的自有可枚举属性深合并到 object,仅当 object 上对应属性为 undefined 时才赋值。
|
|
3
|
+
*
|
|
4
|
+
* @param object - 目标对象
|
|
5
|
+
* @param sources - 一个或多个源对象
|
|
6
|
+
* @returns 合并后的 object
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* zhiaiwanUtils.defaultsDeep({ a: { b: 2 } }, { a: { b: 3, c: 5 }, d: 4 });
|
|
11
|
+
* // => { a: { b: 2, c: 5 }, d: 4 }
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @since 1.0.0
|
|
15
|
+
* @category Object
|
|
16
|
+
*/
|
|
17
|
+
export default function defaultsDeep<T extends object>(object: T, ...sources: unknown[]): T;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 返回对象中第一个满足 `predicate` 的键名。
|
|
3
|
+
*
|
|
4
|
+
* @param object - 待查找的对象
|
|
5
|
+
* @param predicate - 匹配函数,接收 `(value, key, object)`,默认匹配真值
|
|
6
|
+
* @returns 匹配键名,未找到时返回 `undefined`
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* findKey({ a: 1, b: 2 }, (value) => value === 2);
|
|
11
|
+
* // => 'b'
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @since 1.0.0
|
|
15
|
+
* @category Object
|
|
16
|
+
*/
|
|
17
|
+
export default function findKey<T extends object>(object: T | null | undefined, predicate?: (value: unknown, key: string, object: T) => unknown): string | undefined;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 从右往左返回对象中最后一个满足 `predicate` 的键名。
|
|
3
|
+
*
|
|
4
|
+
* @param object - 待查找的对象
|
|
5
|
+
* @param predicate - 匹配函数,接收 `(value, key, object)`,默认匹配真值
|
|
6
|
+
* @returns 匹配键名,未找到时返回 `undefined`
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* findLastKey({ a: 1, b: 2, c: 3 }, (value) => value < 3);
|
|
11
|
+
* // => 'b'
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @since 1.0.0
|
|
15
|
+
* @category Object
|
|
16
|
+
*/
|
|
17
|
+
export default function findLastKey<T extends object>(object: T | null | undefined, predicate?: (value: unknown, key: string, object: T) => unknown): string | undefined;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 遍历 object 自有与继承的可枚举属性。
|
|
3
|
+
*
|
|
4
|
+
* @param object - 待遍历对象
|
|
5
|
+
* @param iteratee - 每次迭代调用的函数
|
|
6
|
+
* @returns 原 object
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* zhiaiwanUtils.forIn({ a: 1 }, (value, key) => console.log(key, value));
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @since 1.0.0
|
|
14
|
+
* @category Object
|
|
15
|
+
*/
|
|
16
|
+
export default function forIn<T extends object>(object: T | null | undefined, iteratee?: (value: unknown, key: string, object: T) => unknown): T | null | undefined;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 遍历 object 自有可枚举属性。
|
|
3
|
+
*
|
|
4
|
+
* @param object - 待遍历对象
|
|
5
|
+
* @param iteratee - 每次迭代调用的函数
|
|
6
|
+
* @returns 原 object
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* zhiaiwanUtils.forOwn({ a: 1, b: 2 }, (value, key) => console.log(key, value));
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @since 1.0.0
|
|
14
|
+
* @category Object
|
|
15
|
+
*/
|
|
16
|
+
export default function forOwn<T extends object>(object: T | null | undefined, iteratee?: (value: unknown, key: string, object: T) => unknown): T | null | undefined;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* toPairs 的逆运算,将键值对数组转为对象。
|
|
3
|
+
*
|
|
4
|
+
* @param pairs - 键值对数组
|
|
5
|
+
* @returns 新对象
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* zhiaiwanUtils.fromPairs([['a', 1], ['b', 2]]);
|
|
10
|
+
* // => { a: 1, b: 2 }
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @since 1.0.0
|
|
14
|
+
* @category Object
|
|
15
|
+
*/
|
|
16
|
+
export default function fromPairs(pairs: ReadonlyArray<readonly [PropertyKey, unknown]> | null | undefined): Record<string, unknown>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 根据路径 path 获取 object 上的值。若解析到的值为 undefined,则返回 defaultValue。
|
|
3
|
+
*
|
|
4
|
+
* @param object - 要检索的对象
|
|
5
|
+
* @param path - 属性路径,支持 `'a.b[0].c'` 字符串或键数组
|
|
6
|
+
* @param defaultValue - 解析值为 undefined 时返回的默认值
|
|
7
|
+
* @returns 解析得到的值
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* const obj = { a: [{ b: { c: 3 } }] };
|
|
12
|
+
* get(obj, 'a[0].b.c'); // => 3
|
|
13
|
+
* get(obj, ['a', '0', 'b', 'c']); // => 3
|
|
14
|
+
* get(obj, 'a.b.c', 'default'); // => 'default'
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @since 1.0.0
|
|
18
|
+
* @category Object
|
|
19
|
+
*/
|
|
20
|
+
export default function get<T = unknown>(object: unknown, path: string | ReadonlyArray<string | number>, defaultValue?: T): T | undefined;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 检查 path 是否是 object 的自有属性路径(路径上每一级均为自有属性,不含继承属性)。
|
|
3
|
+
*
|
|
4
|
+
* @param object - 要检索的对象
|
|
5
|
+
* @param path - 属性路径,支持 `'a.b[0].c'` 字符串或键数组
|
|
6
|
+
* @returns 如果路径存在,返回 true,否则返回 false
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const obj = { a: { b: 2 } };
|
|
11
|
+
* has(obj, 'a.b'); // => true
|
|
12
|
+
* has(obj, 'a.c'); // => false
|
|
13
|
+
* has(obj, ['a', 'b']); // => true
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @since 1.0.0
|
|
17
|
+
* @category Object
|
|
18
|
+
*/
|
|
19
|
+
export default function has(object: unknown, path: string | ReadonlyArray<string | number>): boolean;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export { default as clone } from './clone';
|
|
2
|
+
export { default as cloneDeep } from './cloneDeep';
|
|
3
|
+
export { default as cloneWith, type CloneCustomizer } from './cloneWith';
|
|
4
|
+
export { default as cloneDeepWith } from './cloneDeepWith';
|
|
5
|
+
export { default as get } from './get';
|
|
6
|
+
export { default as set } from './set';
|
|
7
|
+
export { default as has } from './has';
|
|
8
|
+
export { default as findKey } from './findKey';
|
|
9
|
+
export { default as findLastKey } from './findLastKey';
|
|
10
|
+
export { default as pick } from './pick';
|
|
11
|
+
export { default as omit } from './omit';
|
|
12
|
+
export { default as merge } from './merge';
|
|
13
|
+
export { default as mergeWith, type MergeCustomizer } from './mergeWith';
|
|
14
|
+
export { default as unset } from './unset';
|
|
15
|
+
export { default as defaults } from './defaults';
|
|
16
|
+
export { default as defaultsDeep } from './defaultsDeep';
|
|
17
|
+
export { default as assign } from './assign';
|
|
18
|
+
export { default as keys } from './keys';
|
|
19
|
+
export { default as values } from './values';
|
|
20
|
+
export { default as pickBy } from './pickBy';
|
|
21
|
+
export { default as omitBy } from './omitBy';
|
|
22
|
+
export { default as mapKeys } from './mapKeys';
|
|
23
|
+
export { default as mapValues } from './mapValues';
|
|
24
|
+
export { default as invert } from './invert';
|
|
25
|
+
export { default as fromPairs } from './fromPairs';
|
|
26
|
+
export { default as forOwn } from './forOwn';
|
|
27
|
+
export { default as forIn } from './forIn';
|
|
28
|
+
export { default as update } from './update';
|
|
29
|
+
export { default as updateWith, type UpdateCustomizer } from './updateWith';
|