es-toolkit 1.50.0 → 1.51.0-dev.2069
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/CHANGELOG.md +82 -0
- package/NOTICE +39 -0
- package/README.md +2 -2
- package/bigint.d.ts +1 -0
- package/bigint.js +1 -0
- package/dist/_internal/NonPlainObject.d.mts +8 -0
- package/dist/_internal/NonPlainObject.d.ts +8 -0
- package/dist/_internal/bigIntRangeLength.js +19 -0
- package/dist/_internal/bigIntRangeLength.mjs +19 -0
- package/dist/_internal/isMergeableValue.js +17 -0
- package/dist/_internal/isMergeableValue.mjs +17 -0
- package/dist/_internal/isUnsafeProperty.js +7 -4
- package/dist/_internal/isUnsafeProperty.mjs +7 -4
- package/dist/_internal/isUnsafeToWriteProperty.js +22 -0
- package/dist/_internal/isUnsafeToWriteProperty.mjs +22 -0
- package/dist/array/at.d.mts +1 -1
- package/dist/array/at.d.ts +1 -1
- package/dist/array/filterAsync.js +1 -1
- package/dist/array/filterAsync.mjs +1 -1
- package/dist/array/flatMapAsync.js +1 -1
- package/dist/array/flatMapAsync.mjs +1 -1
- package/dist/array/forEachAsync.js +1 -1
- package/dist/array/forEachAsync.mjs +1 -1
- package/dist/array/index.js +1 -1
- package/dist/array/index.mjs +1 -1
- package/dist/array/limitAsync.d.mts +4 -28
- package/dist/array/limitAsync.d.ts +4 -28
- package/dist/array/limitAsync.js +2 -39
- package/dist/array/limitAsync.mjs +3 -39
- package/dist/array/mapAsync.js +1 -1
- package/dist/array/mapAsync.mjs +1 -1
- package/dist/array/orderBy.d.mts +1 -1
- package/dist/array/orderBy.d.ts +1 -1
- package/dist/array/pullAt.d.mts +1 -1
- package/dist/array/pullAt.d.ts +1 -1
- package/dist/array/pullAt.js +1 -1
- package/dist/array/pullAt.mjs +1 -1
- package/dist/array/sortBy.d.mts +1 -1
- package/dist/array/sortBy.d.ts +1 -1
- package/dist/array/unzip.d.mts +3 -0
- package/dist/array/unzip.d.ts +3 -0
- package/dist/array/unzip.js +3 -0
- package/dist/array/unzip.mjs +3 -0
- package/dist/bigint/clamp.d.mts +37 -0
- package/dist/bigint/clamp.d.ts +37 -0
- package/dist/bigint/clamp.js +16 -0
- package/dist/bigint/clamp.mjs +16 -0
- package/dist/bigint/inRange.d.mts +37 -0
- package/dist/bigint/inRange.d.ts +37 -0
- package/dist/bigint/inRange.js +20 -0
- package/dist/bigint/inRange.mjs +20 -0
- package/dist/bigint/index.d.mts +14 -0
- package/dist/bigint/index.d.ts +14 -0
- package/dist/bigint/index.js +27 -0
- package/dist/bigint/index.mjs +14 -0
- package/dist/bigint/max.d.mts +21 -0
- package/dist/bigint/max.d.ts +21 -0
- package/dist/bigint/max.js +26 -0
- package/dist/bigint/max.mjs +26 -0
- package/dist/bigint/maxBy.d.mts +21 -0
- package/dist/bigint/maxBy.d.ts +21 -0
- package/dist/bigint/maxBy.js +34 -0
- package/dist/bigint/maxBy.mjs +34 -0
- package/dist/bigint/median.d.mts +22 -0
- package/dist/bigint/median.d.ts +22 -0
- package/dist/bigint/median.js +28 -0
- package/dist/bigint/median.mjs +28 -0
- package/dist/bigint/medianBy.d.mts +21 -0
- package/dist/bigint/medianBy.d.ts +21 -0
- package/dist/bigint/medianBy.js +24 -0
- package/dist/bigint/medianBy.mjs +24 -0
- package/dist/bigint/min.d.mts +18 -0
- package/dist/bigint/min.d.ts +18 -0
- package/dist/bigint/min.js +23 -0
- package/dist/bigint/min.mjs +23 -0
- package/dist/bigint/minBy.d.mts +21 -0
- package/dist/bigint/minBy.d.ts +21 -0
- package/dist/bigint/minBy.js +34 -0
- package/dist/bigint/minBy.mjs +34 -0
- package/dist/bigint/percentile.d.mts +23 -0
- package/dist/bigint/percentile.d.ts +23 -0
- package/dist/bigint/percentile.js +31 -0
- package/dist/bigint/percentile.mjs +31 -0
- package/dist/bigint/range.d.mts +45 -0
- package/dist/bigint/range.d.ts +45 -0
- package/dist/bigint/range.js +24 -0
- package/dist/bigint/range.mjs +24 -0
- package/dist/bigint/rangeRight.d.mts +43 -0
- package/dist/bigint/rangeRight.d.ts +43 -0
- package/dist/bigint/rangeRight.js +25 -0
- package/dist/bigint/rangeRight.mjs +25 -0
- package/dist/bigint/sum.d.mts +18 -0
- package/dist/bigint/sum.d.ts +18 -0
- package/dist/bigint/sum.js +22 -0
- package/dist/bigint/sum.mjs +22 -0
- package/dist/bigint/sumBy.d.mts +20 -0
- package/dist/bigint/sumBy.d.ts +20 -0
- package/dist/bigint/sumBy.js +24 -0
- package/dist/bigint/sumBy.mjs +24 -0
- package/dist/browser.global.js +6 -3
- package/dist/compat/_internal/normalizeZero.js +13 -0
- package/dist/compat/_internal/normalizeZero.mjs +13 -0
- package/dist/compat/_internal/toKey.js +1 -1
- package/dist/compat/_internal/toKey.mjs +1 -1
- package/dist/compat/_internal/unicodeSize.js +45 -0
- package/dist/compat/_internal/unicodeSize.mjs +45 -0
- package/dist/compat/array/chunk.js +1 -0
- package/dist/compat/array/chunk.mjs +1 -0
- package/dist/compat/array/difference.js +2 -1
- package/dist/compat/array/difference.mjs +2 -1
- package/dist/compat/array/differenceBy.js +3 -2
- package/dist/compat/array/differenceBy.mjs +3 -2
- package/dist/compat/array/drop.d.mts +1 -1
- package/dist/compat/array/drop.d.ts +1 -1
- package/dist/compat/array/dropRight.d.mts +2 -3
- package/dist/compat/array/dropRight.d.ts +2 -3
- package/dist/compat/array/dropRight.js +4 -4
- package/dist/compat/array/dropRight.mjs +4 -4
- package/dist/compat/array/every.js +9 -9
- package/dist/compat/array/every.mjs +9 -9
- package/dist/compat/array/fill.js +8 -2
- package/dist/compat/array/fill.mjs +8 -2
- package/dist/compat/array/find.js +14 -13
- package/dist/compat/array/find.mjs +14 -13
- package/dist/compat/array/findIndex.js +3 -19
- package/dist/compat/array/findIndex.mjs +3 -19
- package/dist/compat/array/findLast.js +3 -3
- package/dist/compat/array/findLast.mjs +3 -3
- package/dist/compat/array/flatMap.js +3 -8
- package/dist/compat/array/flatMap.mjs +3 -7
- package/dist/compat/array/flatMapDepth.js +1 -1
- package/dist/compat/array/flatMapDepth.mjs +1 -1
- package/dist/compat/array/forEach.js +1 -1
- package/dist/compat/array/forEach.mjs +1 -1
- package/dist/compat/array/includes.js +13 -13
- package/dist/compat/array/includes.mjs +13 -13
- package/dist/compat/array/indexOf.js +2 -1
- package/dist/compat/array/indexOf.mjs +2 -1
- package/dist/compat/array/intersection.js +3 -2
- package/dist/compat/array/intersection.mjs +3 -2
- package/dist/compat/array/intersectionBy.js +7 -11
- package/dist/compat/array/intersectionBy.mjs +7 -11
- package/dist/compat/array/intersectionWith.js +6 -18
- package/dist/compat/array/intersectionWith.mjs +6 -18
- package/dist/compat/array/last.js +1 -1
- package/dist/compat/array/last.mjs +1 -1
- package/dist/compat/array/lastIndexOf.js +3 -1
- package/dist/compat/array/lastIndexOf.mjs +3 -1
- package/dist/compat/array/map.js +3 -3
- package/dist/compat/array/map.mjs +3 -3
- package/dist/compat/array/orderBy.js +8 -6
- package/dist/compat/array/orderBy.mjs +8 -6
- package/dist/compat/array/partition.js +6 -6
- package/dist/compat/array/partition.mjs +6 -6
- package/dist/compat/array/pull.js +1 -1
- package/dist/compat/array/pull.mjs +1 -1
- package/dist/compat/array/pullAll.js +2 -0
- package/dist/compat/array/pullAll.mjs +2 -0
- package/dist/compat/array/remove.js +8 -4
- package/dist/compat/array/remove.mjs +8 -4
- package/dist/compat/array/reverse.js +1 -1
- package/dist/compat/array/reverse.mjs +1 -1
- package/dist/compat/array/sampleSize.js +2 -1
- package/dist/compat/array/sampleSize.mjs +2 -1
- package/dist/compat/array/size.js +2 -1
- package/dist/compat/array/size.mjs +2 -1
- package/dist/compat/array/some.js +2 -1
- package/dist/compat/array/some.mjs +2 -1
- package/dist/compat/array/takeRightWhile.js +2 -2
- package/dist/compat/array/takeRightWhile.mjs +2 -2
- package/dist/compat/array/takeWhile.js +2 -2
- package/dist/compat/array/takeWhile.mjs +2 -2
- package/dist/compat/array/unionBy.js +2 -1
- package/dist/compat/array/unionBy.mjs +2 -1
- package/dist/compat/array/uniqBy.js +4 -3
- package/dist/compat/array/uniqBy.mjs +4 -3
- package/dist/compat/array/unzip.d.mts +3 -0
- package/dist/compat/array/unzip.d.ts +3 -0
- package/dist/compat/array/unzip.js +3 -0
- package/dist/compat/array/unzip.mjs +3 -0
- package/dist/compat/array/unzipWith.js +1 -1
- package/dist/compat/array/unzipWith.mjs +1 -1
- package/dist/compat/array/zipObject.js +2 -0
- package/dist/compat/array/zipObject.mjs +2 -0
- package/dist/compat/compat.d.mts +3 -3
- package/dist/compat/compat.d.ts +3 -3
- package/dist/compat/compat.js +8 -4
- package/dist/compat/compat.mjs +8 -4
- package/dist/compat/function/curry.d.mts +1 -1
- package/dist/compat/function/curry.d.ts +1 -1
- package/dist/compat/function/debounce.js +1 -1
- package/dist/compat/function/debounce.mjs +1 -1
- package/dist/compat/function/flowRight.d.mts +1 -1
- package/dist/compat/function/flowRight.d.ts +1 -1
- package/dist/compat/function/partial.d.mts +1 -1
- package/dist/compat/function/partial.d.ts +1 -1
- package/dist/compat/function/rest.d.mts +1 -1
- package/dist/compat/function/rest.d.ts +1 -1
- package/dist/compat/function/rest.js +1 -1
- package/dist/compat/function/rest.mjs +1 -1
- package/dist/compat/index.d.mts +3 -3
- package/dist/compat/index.d.ts +3 -3
- package/dist/compat/index.js +6 -4
- package/dist/compat/index.mjs +5 -5
- package/dist/compat/math/maxBy.js +1 -1
- package/dist/compat/math/maxBy.mjs +1 -1
- package/dist/compat/math/meanBy.d.mts +4 -0
- package/dist/compat/math/meanBy.d.ts +4 -0
- package/dist/compat/math/meanBy.js +8 -3
- package/dist/compat/math/meanBy.mjs +8 -3
- package/dist/compat/math/minBy.js +1 -1
- package/dist/compat/math/minBy.mjs +1 -1
- package/dist/compat/object/cloneDeep.d.mts +5 -5
- package/dist/compat/object/cloneDeep.d.ts +5 -5
- package/dist/compat/object/cloneDeep.js +5 -5
- package/dist/compat/object/cloneDeep.mjs +5 -5
- package/dist/compat/object/cloneDeepWith.js +3 -1
- package/dist/compat/object/cloneDeepWith.mjs +3 -1
- package/dist/compat/object/cloneWith.d.mts +1 -1
- package/dist/compat/object/cloneWith.d.ts +1 -1
- package/dist/compat/object/cloneWith.js +1 -1
- package/dist/compat/object/cloneWith.mjs +1 -1
- package/dist/compat/object/entries.d.mts +1 -0
- package/dist/compat/object/entries.d.ts +1 -0
- package/dist/compat/object/entries.js +1 -0
- package/dist/compat/object/entries.mjs +1 -0
- package/dist/compat/object/entriesIn.d.mts +1 -0
- package/dist/compat/object/entriesIn.d.ts +1 -0
- package/dist/compat/object/entriesIn.js +1 -0
- package/dist/compat/object/entriesIn.mjs +1 -0
- package/dist/compat/object/omit.js +5 -5
- package/dist/compat/object/omit.mjs +5 -5
- package/dist/compat/object/transform.js +1 -1
- package/dist/compat/object/transform.mjs +1 -1
- package/dist/compat/object/updateWith.js +2 -2
- package/dist/compat/object/updateWith.mjs +2 -2
- package/dist/compat/predicate/isMatchWith.js +14 -5
- package/dist/compat/predicate/isMatchWith.mjs +14 -5
- package/dist/compat/string/template.js +2 -1
- package/dist/compat/string/template.mjs +2 -1
- package/dist/compat/string/words.js +17 -13
- package/dist/compat/string/words.mjs +17 -13
- package/dist/compat/util/iteratee.js +1 -3
- package/dist/compat/util/iteratee.mjs +1 -3
- package/dist/compat/util/toArray.d.mts +5 -5
- package/dist/compat/util/toArray.d.ts +5 -5
- package/dist/compat/util/toArray.js +9 -5
- package/dist/compat/util/toArray.mjs +9 -5
- package/dist/compat/util/toPath.js +11 -3
- package/dist/compat/util/toPath.mjs +11 -3
- package/dist/compat/util/toString.js +4 -1
- package/dist/compat/util/toString.mjs +4 -1
- package/dist/fp/array/at.d.mts +1 -1
- package/dist/fp/array/at.d.ts +1 -1
- package/dist/fp/array/orderBy.d.mts +1 -1
- package/dist/fp/array/orderBy.d.ts +1 -1
- package/dist/fp/array/sortBy.d.mts +1 -1
- package/dist/fp/array/sortBy.d.ts +1 -1
- package/dist/fp/array/unzip.d.mts +3 -0
- package/dist/fp/array/unzip.d.ts +3 -0
- package/dist/fp/array/unzip.js +3 -0
- package/dist/fp/array/unzip.mjs +3 -0
- package/dist/fp/iterator/chunk.d.mts +19 -0
- package/dist/fp/iterator/chunk.d.ts +19 -0
- package/dist/fp/iterator/chunk.js +24 -0
- package/dist/fp/iterator/chunk.mjs +24 -0
- package/dist/fp/iterator/count.d.mts +20 -0
- package/dist/fp/iterator/count.d.ts +20 -0
- package/dist/fp/iterator/count.js +25 -0
- package/dist/fp/iterator/count.mjs +25 -0
- package/dist/fp/iterator/drop.d.mts +20 -0
- package/dist/fp/iterator/drop.d.ts +20 -0
- package/dist/fp/iterator/drop.js +24 -0
- package/dist/fp/iterator/drop.mjs +24 -0
- package/dist/fp/iterator/dropWhile.d.mts +18 -0
- package/dist/fp/iterator/dropWhile.d.ts +18 -0
- package/dist/fp/iterator/dropWhile.js +23 -0
- package/dist/fp/iterator/dropWhile.mjs +23 -0
- package/dist/fp/iterator/every.d.mts +20 -0
- package/dist/fp/iterator/every.d.ts +20 -0
- package/dist/fp/iterator/every.js +24 -0
- package/dist/fp/iterator/every.mjs +24 -0
- package/dist/fp/iterator/filter.d.mts +37 -0
- package/dist/fp/iterator/filter.d.ts +37 -0
- package/dist/fp/iterator/filter.js +8 -0
- package/dist/fp/iterator/filter.mjs +8 -0
- package/dist/fp/iterator/find.d.mts +20 -0
- package/dist/fp/iterator/find.d.ts +20 -0
- package/dist/fp/iterator/find.js +24 -0
- package/dist/fp/iterator/find.mjs +24 -0
- package/dist/fp/iterator/flatMap.d.mts +20 -0
- package/dist/fp/iterator/flatMap.d.ts +20 -0
- package/dist/fp/iterator/flatMap.js +24 -0
- package/dist/fp/iterator/flatMap.mjs +24 -0
- package/dist/fp/iterator/forEach.d.mts +22 -0
- package/dist/fp/iterator/forEach.d.ts +22 -0
- package/dist/fp/iterator/forEach.js +26 -0
- package/dist/fp/iterator/forEach.mjs +26 -0
- package/dist/fp/iterator/head.d.mts +19 -0
- package/dist/fp/iterator/head.d.ts +19 -0
- package/dist/fp/iterator/head.js +24 -0
- package/dist/fp/iterator/head.mjs +24 -0
- package/dist/fp/iterator/index.d.mts +21 -0
- package/dist/fp/iterator/index.d.ts +21 -0
- package/dist/fp/iterator/index.js +41 -0
- package/dist/fp/iterator/index.mjs +21 -0
- package/dist/fp/iterator/map.d.mts +20 -0
- package/dist/fp/iterator/map.d.ts +20 -0
- package/dist/fp/iterator/map.js +24 -0
- package/dist/fp/iterator/map.mjs +24 -0
- package/dist/fp/iterator/partition.d.mts +22 -0
- package/dist/fp/iterator/partition.d.ts +22 -0
- package/dist/fp/iterator/partition.js +27 -0
- package/dist/fp/iterator/partition.mjs +27 -0
- package/dist/fp/iterator/reduce.d.mts +24 -0
- package/dist/fp/iterator/reduce.d.ts +24 -0
- package/dist/fp/iterator/reduce.js +28 -0
- package/dist/fp/iterator/reduce.mjs +28 -0
- package/dist/fp/iterator/scan.d.mts +21 -0
- package/dist/fp/iterator/scan.d.ts +21 -0
- package/dist/fp/iterator/scan.js +26 -0
- package/dist/fp/iterator/scan.mjs +26 -0
- package/dist/fp/iterator/some.d.mts +20 -0
- package/dist/fp/iterator/some.d.ts +20 -0
- package/dist/fp/iterator/some.js +24 -0
- package/dist/fp/iterator/some.mjs +24 -0
- package/dist/fp/iterator/take.d.mts +21 -0
- package/dist/fp/iterator/take.d.ts +21 -0
- package/dist/fp/iterator/take.js +25 -0
- package/dist/fp/iterator/take.mjs +25 -0
- package/dist/fp/iterator/takeWhile.d.mts +19 -0
- package/dist/fp/iterator/takeWhile.d.ts +19 -0
- package/dist/fp/iterator/takeWhile.js +24 -0
- package/dist/fp/iterator/takeWhile.mjs +24 -0
- package/dist/fp/iterator/toArray.d.mts +21 -0
- package/dist/fp/iterator/toArray.d.ts +21 -0
- package/dist/fp/iterator/toArray.js +25 -0
- package/dist/fp/iterator/toArray.mjs +25 -0
- package/dist/fp/iterator/uniqBy.d.mts +20 -0
- package/dist/fp/iterator/uniqBy.d.ts +20 -0
- package/dist/fp/iterator/uniqBy.js +25 -0
- package/dist/fp/iterator/uniqBy.mjs +25 -0
- package/dist/fp/iterator/zip.d.mts +20 -0
- package/dist/fp/iterator/zip.d.ts +20 -0
- package/dist/fp/iterator/zip.js +25 -0
- package/dist/fp/iterator/zip.mjs +25 -0
- package/dist/function/memoize.d.mts +3 -2
- package/dist/function/memoize.d.ts +3 -2
- package/dist/function/memoize.js +3 -2
- package/dist/function/memoize.mjs +3 -2
- package/dist/function/partial.d.mts +2 -2
- package/dist/function/partial.d.ts +2 -2
- package/dist/function/partialRight.d.mts +5 -5
- package/dist/function/partialRight.d.ts +5 -5
- package/dist/function/rest.d.mts +1 -1
- package/dist/function/rest.d.ts +1 -1
- package/dist/function/rest.js +1 -1
- package/dist/function/rest.mjs +1 -1
- package/dist/function/retry.d.mts +7 -4
- package/dist/function/retry.d.ts +7 -4
- package/dist/function/retry.js +4 -2
- package/dist/function/retry.mjs +1 -1
- package/dist/index.d.mts +9 -2
- package/dist/index.d.ts +9 -2
- package/dist/index.js +18 -4
- package/dist/index.mjs +12 -5
- package/dist/iterator/_internal/iterator.js +74 -0
- package/dist/iterator/_internal/iterator.mjs +74 -0
- package/dist/iterator/chunk.d.mts +21 -0
- package/dist/iterator/chunk.d.ts +21 -0
- package/dist/iterator/chunk.js +40 -0
- package/dist/iterator/chunk.mjs +40 -0
- package/dist/iterator/count.d.mts +18 -0
- package/dist/iterator/count.d.ts +18 -0
- package/dist/iterator/count.js +26 -0
- package/dist/iterator/count.mjs +26 -0
- package/dist/iterator/dropWhile.d.mts +20 -0
- package/dist/iterator/dropWhile.d.ts +20 -0
- package/dist/iterator/dropWhile.js +52 -0
- package/dist/iterator/dropWhile.mjs +52 -0
- package/dist/iterator/head.d.mts +21 -0
- package/dist/iterator/head.d.ts +21 -0
- package/dist/iterator/head.js +26 -0
- package/dist/iterator/head.mjs +26 -0
- package/dist/iterator/index.d.mts +12 -0
- package/dist/iterator/index.d.ts +12 -0
- package/dist/iterator/index.js +23 -0
- package/dist/iterator/index.mjs +12 -0
- package/dist/iterator/iterate.d.mts +20 -0
- package/dist/iterator/iterate.d.ts +20 -0
- package/dist/iterator/iterate.js +32 -0
- package/dist/iterator/iterate.mjs +32 -0
- package/dist/iterator/partition.d.mts +18 -0
- package/dist/iterator/partition.d.ts +18 -0
- package/dist/iterator/partition.js +36 -0
- package/dist/iterator/partition.mjs +36 -0
- package/dist/iterator/range.d.mts +42 -0
- package/dist/iterator/range.d.ts +42 -0
- package/dist/iterator/range.js +25 -0
- package/dist/iterator/range.mjs +25 -0
- package/dist/iterator/scan.d.mts +23 -0
- package/dist/iterator/scan.d.ts +23 -0
- package/dist/iterator/scan.js +47 -0
- package/dist/iterator/scan.mjs +47 -0
- package/dist/iterator/takeWhile.d.mts +20 -0
- package/dist/iterator/takeWhile.d.ts +20 -0
- package/dist/iterator/takeWhile.js +34 -0
- package/dist/iterator/takeWhile.mjs +34 -0
- package/dist/iterator/uniqBy.d.mts +22 -0
- package/dist/iterator/uniqBy.d.ts +22 -0
- package/dist/iterator/uniqBy.js +43 -0
- package/dist/iterator/uniqBy.mjs +43 -0
- package/dist/iterator/zip.d.mts +23 -0
- package/dist/iterator/zip.d.ts +23 -0
- package/dist/iterator/zip.js +45 -0
- package/dist/iterator/zip.mjs +45 -0
- package/dist/object/cloneDeepWith.d.mts +3 -1
- package/dist/object/cloneDeepWith.d.ts +3 -1
- package/dist/object/cloneDeepWith.js +3 -1
- package/dist/object/cloneDeepWith.mjs +3 -1
- package/dist/object/deepFreeze.d.mts +20 -0
- package/dist/object/deepFreeze.d.ts +20 -0
- package/dist/object/deepFreeze.js +29 -0
- package/dist/object/deepFreeze.mjs +29 -0
- package/dist/object/flattenObject.d.mts +16 -1
- package/dist/object/flattenObject.d.ts +16 -1
- package/dist/object/flattenObject.js +15 -6
- package/dist/object/flattenObject.mjs +15 -6
- package/dist/object/index.d.mts +7 -1
- package/dist/object/index.d.ts +7 -1
- package/dist/object/index.js +12 -0
- package/dist/object/index.mjs +7 -1
- package/dist/object/mapKeysAsync.d.mts +25 -0
- package/dist/object/mapKeysAsync.d.ts +25 -0
- package/dist/object/mapKeysAsync.js +32 -0
- package/dist/object/mapKeysAsync.mjs +32 -0
- package/dist/object/mapValuesAsync.d.mts +26 -0
- package/dist/object/mapValuesAsync.d.ts +26 -0
- package/dist/object/mapValuesAsync.js +32 -0
- package/dist/object/mapValuesAsync.mjs +32 -0
- package/dist/object/merge.js +2 -4
- package/dist/object/merge.mjs +1 -3
- package/dist/object/mergeWith.js +4 -4
- package/dist/object/mergeWith.mjs +4 -4
- package/dist/object/toCamelCaseKeys.d.mts +2 -6
- package/dist/object/toCamelCaseKeys.d.ts +2 -6
- package/dist/object/toConstantCaseKeys.d.mts +52 -0
- package/dist/object/toConstantCaseKeys.d.ts +52 -0
- package/dist/object/toConstantCaseKeys.js +66 -0
- package/dist/object/toConstantCaseKeys.mjs +66 -0
- package/dist/object/toKebabCaseKeys.d.mts +52 -0
- package/dist/object/toKebabCaseKeys.d.ts +52 -0
- package/dist/object/toKebabCaseKeys.js +66 -0
- package/dist/object/toKebabCaseKeys.mjs +66 -0
- package/dist/object/toMerged.js +4 -4
- package/dist/object/toMerged.mjs +4 -4
- package/dist/object/toPascalCaseKeys.d.mts +52 -0
- package/dist/object/toPascalCaseKeys.d.ts +52 -0
- package/dist/object/toPascalCaseKeys.js +66 -0
- package/dist/object/toPascalCaseKeys.mjs +66 -0
- package/dist/object/toSnakeCaseKeys.d.mts +2 -3
- package/dist/object/toSnakeCaseKeys.d.ts +2 -3
- package/dist/promise/index.d.mts +2 -1
- package/dist/promise/index.d.ts +2 -1
- package/dist/promise/index.js +2 -0
- package/dist/promise/index.mjs +2 -1
- package/dist/promise/limitAsync.d.mts +35 -0
- package/dist/promise/limitAsync.d.ts +35 -0
- package/dist/promise/limitAsync.js +46 -0
- package/dist/promise/limitAsync.mjs +46 -0
- package/dist/string/dedent.d.mts +37 -0
- package/dist/string/dedent.d.ts +37 -0
- package/dist/string/dedent.js +38 -0
- package/dist/string/dedent.mjs +38 -0
- package/dist/string/index.d.mts +2 -1
- package/dist/string/index.d.ts +2 -1
- package/dist/string/index.js +5 -3
- package/dist/string/index.mjs +5 -4
- package/dist/types/ToCamelCaseKeys.d.mts +24 -0
- package/dist/types/ToCamelCaseKeys.d.ts +24 -0
- package/dist/types/ToConstantCaseKeys.d.mts +21 -0
- package/dist/types/ToConstantCaseKeys.d.ts +21 -0
- package/dist/types/ToKebabCaseKeys.d.mts +23 -0
- package/dist/types/ToKebabCaseKeys.d.ts +23 -0
- package/dist/types/ToPascalCaseKeys.d.mts +24 -0
- package/dist/types/ToPascalCaseKeys.d.ts +24 -0
- package/dist/types/ToSnakeCaseKeys.d.mts +21 -0
- package/dist/types/ToSnakeCaseKeys.d.ts +21 -0
- package/dist/types/index.d.mts +6 -1
- package/dist/types/index.d.ts +6 -1
- package/fp/iterator.d.ts +1 -0
- package/fp/iterator.js +1 -0
- package/iterator.d.ts +1 -0
- package/iterator.js +1 -0
- package/package.json +70 -2
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { isArray } from "../compat/predicate/isArray.mjs";
|
|
2
|
+
import { isPlainObject } from "../compat/predicate/isPlainObject.mjs";
|
|
3
|
+
import { constantCase } from "../string/constantCase.mjs";
|
|
4
|
+
//#region src/object/toConstantCaseKeys.ts
|
|
5
|
+
/**
|
|
6
|
+
* Creates a new object composed of the properties with keys converted to CONSTANT_CASE.
|
|
7
|
+
*
|
|
8
|
+
* This function takes an object and returns a new object that includes the same properties,
|
|
9
|
+
* but with all keys converted to CONSTANT_CASE format.
|
|
10
|
+
*
|
|
11
|
+
* @template T - The type of object.
|
|
12
|
+
* @param obj - The object to convert keys from.
|
|
13
|
+
* @returns A new object with all keys converted to CONSTANT_CASE.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* // Example with objects
|
|
17
|
+
* const obj = { userId: 1, firstName: 'John' };
|
|
18
|
+
* const result = toConstantCaseKeys(obj);
|
|
19
|
+
* // result will be { USER_ID: 1, FIRST_NAME: 'John' }
|
|
20
|
+
*
|
|
21
|
+
* // Example with arrays of objects
|
|
22
|
+
* const arr = [
|
|
23
|
+
* { userId: 1, firstName: 'John' },
|
|
24
|
+
* { userId: 2, firstName: 'Jane' }
|
|
25
|
+
* ];
|
|
26
|
+
* const arrResult = toConstantCaseKeys(arr);
|
|
27
|
+
* // arrResult will be [{ USER_ID: 1, FIRST_NAME: 'John' }, { USER_ID: 2, FIRST_NAME: 'Jane' }]
|
|
28
|
+
*
|
|
29
|
+
* // Example with nested objects
|
|
30
|
+
* const nested = {
|
|
31
|
+
* userData: {
|
|
32
|
+
* userId: 1,
|
|
33
|
+
* userAddress: {
|
|
34
|
+
* streetName: 'Main St',
|
|
35
|
+
* zipCode: '12345'
|
|
36
|
+
* }
|
|
37
|
+
* }
|
|
38
|
+
* };
|
|
39
|
+
* const nestedResult = toConstantCaseKeys(nested);
|
|
40
|
+
* // nestedResult will be:
|
|
41
|
+
* // {
|
|
42
|
+
* // USER_DATA: {
|
|
43
|
+
* // USER_ID: 1,
|
|
44
|
+
* // USER_ADDRESS: {
|
|
45
|
+
* // STREET_NAME: 'Main St',
|
|
46
|
+
* // ZIP_CODE: '12345'
|
|
47
|
+
* // }
|
|
48
|
+
* // }
|
|
49
|
+
* // }
|
|
50
|
+
*/
|
|
51
|
+
function toConstantCaseKeys(obj) {
|
|
52
|
+
if (isArray(obj)) return obj.map((item) => toConstantCaseKeys(item));
|
|
53
|
+
if (isPlainObject(obj)) {
|
|
54
|
+
const result = {};
|
|
55
|
+
const keys = Object.keys(obj);
|
|
56
|
+
for (let i = 0; i < keys.length; i++) {
|
|
57
|
+
const key = keys[i];
|
|
58
|
+
const constantKey = constantCase(key);
|
|
59
|
+
result[constantKey] = toConstantCaseKeys(obj[key]);
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
return obj;
|
|
64
|
+
}
|
|
65
|
+
//#endregion
|
|
66
|
+
export { toConstantCaseKeys };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ToKebabCaseKeys } from "../types/ToKebabCaseKeys.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/object/toKebabCaseKeys.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a new object composed of the properties with keys converted to kebab-case.
|
|
6
|
+
*
|
|
7
|
+
* This function takes an object and returns a new object that includes the same properties,
|
|
8
|
+
* but with all keys converted to kebab-case format.
|
|
9
|
+
*
|
|
10
|
+
* @template T - The type of object.
|
|
11
|
+
* @param obj - The object to convert keys from.
|
|
12
|
+
* @returns A new object with all keys converted to kebab-case.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* // Example with objects
|
|
16
|
+
* const obj = { userId: 1, firstName: 'John' };
|
|
17
|
+
* const result = toKebabCaseKeys(obj);
|
|
18
|
+
* // result will be { 'user-id': 1, 'first-name': 'John' }
|
|
19
|
+
*
|
|
20
|
+
* // Example with arrays of objects
|
|
21
|
+
* const arr = [
|
|
22
|
+
* { userId: 1, firstName: 'John' },
|
|
23
|
+
* { userId: 2, firstName: 'Jane' }
|
|
24
|
+
* ];
|
|
25
|
+
* const arrResult = toKebabCaseKeys(arr);
|
|
26
|
+
* // arrResult will be [{ 'user-id': 1, 'first-name': 'John' }, { 'user-id': 2, 'first-name': 'Jane' }]
|
|
27
|
+
*
|
|
28
|
+
* // Example with nested objects
|
|
29
|
+
* const nested = {
|
|
30
|
+
* userData: {
|
|
31
|
+
* userId: 1,
|
|
32
|
+
* userAddress: {
|
|
33
|
+
* streetName: 'Main St',
|
|
34
|
+
* zipCode: '12345'
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
* };
|
|
38
|
+
* const nestedResult = toKebabCaseKeys(nested);
|
|
39
|
+
* // nestedResult will be:
|
|
40
|
+
* // {
|
|
41
|
+
* // 'user-data': {
|
|
42
|
+
* // 'user-id': 1,
|
|
43
|
+
* // 'user-address': {
|
|
44
|
+
* // 'street-name': 'Main St',
|
|
45
|
+
* // 'zip-code': '12345'
|
|
46
|
+
* // }
|
|
47
|
+
* // }
|
|
48
|
+
* // }
|
|
49
|
+
*/
|
|
50
|
+
declare function toKebabCaseKeys<T>(obj: T): ToKebabCaseKeys<T>;
|
|
51
|
+
//#endregion
|
|
52
|
+
export { toKebabCaseKeys };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ToKebabCaseKeys } from "../types/ToKebabCaseKeys.js";
|
|
2
|
+
|
|
3
|
+
//#region src/object/toKebabCaseKeys.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a new object composed of the properties with keys converted to kebab-case.
|
|
6
|
+
*
|
|
7
|
+
* This function takes an object and returns a new object that includes the same properties,
|
|
8
|
+
* but with all keys converted to kebab-case format.
|
|
9
|
+
*
|
|
10
|
+
* @template T - The type of object.
|
|
11
|
+
* @param obj - The object to convert keys from.
|
|
12
|
+
* @returns A new object with all keys converted to kebab-case.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* // Example with objects
|
|
16
|
+
* const obj = { userId: 1, firstName: 'John' };
|
|
17
|
+
* const result = toKebabCaseKeys(obj);
|
|
18
|
+
* // result will be { 'user-id': 1, 'first-name': 'John' }
|
|
19
|
+
*
|
|
20
|
+
* // Example with arrays of objects
|
|
21
|
+
* const arr = [
|
|
22
|
+
* { userId: 1, firstName: 'John' },
|
|
23
|
+
* { userId: 2, firstName: 'Jane' }
|
|
24
|
+
* ];
|
|
25
|
+
* const arrResult = toKebabCaseKeys(arr);
|
|
26
|
+
* // arrResult will be [{ 'user-id': 1, 'first-name': 'John' }, { 'user-id': 2, 'first-name': 'Jane' }]
|
|
27
|
+
*
|
|
28
|
+
* // Example with nested objects
|
|
29
|
+
* const nested = {
|
|
30
|
+
* userData: {
|
|
31
|
+
* userId: 1,
|
|
32
|
+
* userAddress: {
|
|
33
|
+
* streetName: 'Main St',
|
|
34
|
+
* zipCode: '12345'
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
* };
|
|
38
|
+
* const nestedResult = toKebabCaseKeys(nested);
|
|
39
|
+
* // nestedResult will be:
|
|
40
|
+
* // {
|
|
41
|
+
* // 'user-data': {
|
|
42
|
+
* // 'user-id': 1,
|
|
43
|
+
* // 'user-address': {
|
|
44
|
+
* // 'street-name': 'Main St',
|
|
45
|
+
* // 'zip-code': '12345'
|
|
46
|
+
* // }
|
|
47
|
+
* // }
|
|
48
|
+
* // }
|
|
49
|
+
*/
|
|
50
|
+
declare function toKebabCaseKeys<T>(obj: T): ToKebabCaseKeys<T>;
|
|
51
|
+
//#endregion
|
|
52
|
+
export { toKebabCaseKeys };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
const require_isArray = require("../compat/predicate/isArray.js");
|
|
2
|
+
const require_isPlainObject = require("../compat/predicate/isPlainObject.js");
|
|
3
|
+
const require_kebabCase = require("../string/kebabCase.js");
|
|
4
|
+
//#region src/object/toKebabCaseKeys.ts
|
|
5
|
+
/**
|
|
6
|
+
* Creates a new object composed of the properties with keys converted to kebab-case.
|
|
7
|
+
*
|
|
8
|
+
* This function takes an object and returns a new object that includes the same properties,
|
|
9
|
+
* but with all keys converted to kebab-case format.
|
|
10
|
+
*
|
|
11
|
+
* @template T - The type of object.
|
|
12
|
+
* @param obj - The object to convert keys from.
|
|
13
|
+
* @returns A new object with all keys converted to kebab-case.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* // Example with objects
|
|
17
|
+
* const obj = { userId: 1, firstName: 'John' };
|
|
18
|
+
* const result = toKebabCaseKeys(obj);
|
|
19
|
+
* // result will be { 'user-id': 1, 'first-name': 'John' }
|
|
20
|
+
*
|
|
21
|
+
* // Example with arrays of objects
|
|
22
|
+
* const arr = [
|
|
23
|
+
* { userId: 1, firstName: 'John' },
|
|
24
|
+
* { userId: 2, firstName: 'Jane' }
|
|
25
|
+
* ];
|
|
26
|
+
* const arrResult = toKebabCaseKeys(arr);
|
|
27
|
+
* // arrResult will be [{ 'user-id': 1, 'first-name': 'John' }, { 'user-id': 2, 'first-name': 'Jane' }]
|
|
28
|
+
*
|
|
29
|
+
* // Example with nested objects
|
|
30
|
+
* const nested = {
|
|
31
|
+
* userData: {
|
|
32
|
+
* userId: 1,
|
|
33
|
+
* userAddress: {
|
|
34
|
+
* streetName: 'Main St',
|
|
35
|
+
* zipCode: '12345'
|
|
36
|
+
* }
|
|
37
|
+
* }
|
|
38
|
+
* };
|
|
39
|
+
* const nestedResult = toKebabCaseKeys(nested);
|
|
40
|
+
* // nestedResult will be:
|
|
41
|
+
* // {
|
|
42
|
+
* // 'user-data': {
|
|
43
|
+
* // 'user-id': 1,
|
|
44
|
+
* // 'user-address': {
|
|
45
|
+
* // 'street-name': 'Main St',
|
|
46
|
+
* // 'zip-code': '12345'
|
|
47
|
+
* // }
|
|
48
|
+
* // }
|
|
49
|
+
* // }
|
|
50
|
+
*/
|
|
51
|
+
function toKebabCaseKeys(obj) {
|
|
52
|
+
if (require_isArray.isArray(obj)) return obj.map((item) => toKebabCaseKeys(item));
|
|
53
|
+
if (require_isPlainObject.isPlainObject(obj)) {
|
|
54
|
+
const result = {};
|
|
55
|
+
const keys = Object.keys(obj);
|
|
56
|
+
for (let i = 0; i < keys.length; i++) {
|
|
57
|
+
const key = keys[i];
|
|
58
|
+
const kebabKey = require_kebabCase.kebabCase(key);
|
|
59
|
+
result[kebabKey] = toKebabCaseKeys(obj[key]);
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
return obj;
|
|
64
|
+
}
|
|
65
|
+
//#endregion
|
|
66
|
+
exports.toKebabCaseKeys = toKebabCaseKeys;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { isArray } from "../compat/predicate/isArray.mjs";
|
|
2
|
+
import { isPlainObject } from "../compat/predicate/isPlainObject.mjs";
|
|
3
|
+
import { kebabCase } from "../string/kebabCase.mjs";
|
|
4
|
+
//#region src/object/toKebabCaseKeys.ts
|
|
5
|
+
/**
|
|
6
|
+
* Creates a new object composed of the properties with keys converted to kebab-case.
|
|
7
|
+
*
|
|
8
|
+
* This function takes an object and returns a new object that includes the same properties,
|
|
9
|
+
* but with all keys converted to kebab-case format.
|
|
10
|
+
*
|
|
11
|
+
* @template T - The type of object.
|
|
12
|
+
* @param obj - The object to convert keys from.
|
|
13
|
+
* @returns A new object with all keys converted to kebab-case.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* // Example with objects
|
|
17
|
+
* const obj = { userId: 1, firstName: 'John' };
|
|
18
|
+
* const result = toKebabCaseKeys(obj);
|
|
19
|
+
* // result will be { 'user-id': 1, 'first-name': 'John' }
|
|
20
|
+
*
|
|
21
|
+
* // Example with arrays of objects
|
|
22
|
+
* const arr = [
|
|
23
|
+
* { userId: 1, firstName: 'John' },
|
|
24
|
+
* { userId: 2, firstName: 'Jane' }
|
|
25
|
+
* ];
|
|
26
|
+
* const arrResult = toKebabCaseKeys(arr);
|
|
27
|
+
* // arrResult will be [{ 'user-id': 1, 'first-name': 'John' }, { 'user-id': 2, 'first-name': 'Jane' }]
|
|
28
|
+
*
|
|
29
|
+
* // Example with nested objects
|
|
30
|
+
* const nested = {
|
|
31
|
+
* userData: {
|
|
32
|
+
* userId: 1,
|
|
33
|
+
* userAddress: {
|
|
34
|
+
* streetName: 'Main St',
|
|
35
|
+
* zipCode: '12345'
|
|
36
|
+
* }
|
|
37
|
+
* }
|
|
38
|
+
* };
|
|
39
|
+
* const nestedResult = toKebabCaseKeys(nested);
|
|
40
|
+
* // nestedResult will be:
|
|
41
|
+
* // {
|
|
42
|
+
* // 'user-data': {
|
|
43
|
+
* // 'user-id': 1,
|
|
44
|
+
* // 'user-address': {
|
|
45
|
+
* // 'street-name': 'Main St',
|
|
46
|
+
* // 'zip-code': '12345'
|
|
47
|
+
* // }
|
|
48
|
+
* // }
|
|
49
|
+
* // }
|
|
50
|
+
*/
|
|
51
|
+
function toKebabCaseKeys(obj) {
|
|
52
|
+
if (isArray(obj)) return obj.map((item) => toKebabCaseKeys(item));
|
|
53
|
+
if (isPlainObject(obj)) {
|
|
54
|
+
const result = {};
|
|
55
|
+
const keys = Object.keys(obj);
|
|
56
|
+
for (let i = 0; i < keys.length; i++) {
|
|
57
|
+
const key = keys[i];
|
|
58
|
+
const kebabKey = kebabCase(key);
|
|
59
|
+
result[kebabKey] = toKebabCaseKeys(obj[key]);
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
return obj;
|
|
64
|
+
}
|
|
65
|
+
//#endregion
|
|
66
|
+
export { toKebabCaseKeys };
|
package/dist/object/toMerged.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const require_clone = require("./clone.js");
|
|
2
2
|
const require_cloneDeep = require("./cloneDeep.js");
|
|
3
3
|
const require_isPlainObject = require("../predicate/isPlainObject.js");
|
|
4
|
+
const require_isMergeableValue = require("../_internal/isMergeableValue.js");
|
|
4
5
|
const require_mergeWith = require("./mergeWith.js");
|
|
5
6
|
//#region src/object/toMerged.ts
|
|
6
7
|
/**
|
|
@@ -47,10 +48,9 @@ const require_mergeWith = require("./mergeWith.js");
|
|
|
47
48
|
*/
|
|
48
49
|
function toMerged(target, source) {
|
|
49
50
|
return require_mergeWith.mergeWith(require_cloneDeep.cloneDeep(target), source, function mergeRecursively(targetValue, sourceValue) {
|
|
50
|
-
if (
|
|
51
|
-
else return require_mergeWith.mergeWith([], sourceValue, mergeRecursively);
|
|
52
|
-
else if (require_isPlainObject.isPlainObject(sourceValue))
|
|
53
|
-
else return require_mergeWith.mergeWith({}, sourceValue, mergeRecursively);
|
|
51
|
+
if (require_isMergeableValue.isMergeableValue(sourceValue) && require_isMergeableValue.isMergeableValue(targetValue)) return require_mergeWith.mergeWith(require_clone.clone(targetValue), sourceValue, mergeRecursively);
|
|
52
|
+
else if (Array.isArray(sourceValue)) return require_mergeWith.mergeWith([], sourceValue, mergeRecursively);
|
|
53
|
+
else if (require_isPlainObject.isPlainObject(sourceValue)) return require_mergeWith.mergeWith({}, sourceValue, mergeRecursively);
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
//#endregion
|
package/dist/object/toMerged.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { clone } from "./clone.mjs";
|
|
2
2
|
import { cloneDeep } from "./cloneDeep.mjs";
|
|
3
3
|
import { isPlainObject } from "../predicate/isPlainObject.mjs";
|
|
4
|
+
import { isMergeableValue } from "../_internal/isMergeableValue.mjs";
|
|
4
5
|
import { mergeWith } from "./mergeWith.mjs";
|
|
5
6
|
//#region src/object/toMerged.ts
|
|
6
7
|
/**
|
|
@@ -47,10 +48,9 @@ import { mergeWith } from "./mergeWith.mjs";
|
|
|
47
48
|
*/
|
|
48
49
|
function toMerged(target, source) {
|
|
49
50
|
return mergeWith(cloneDeep(target), source, function mergeRecursively(targetValue, sourceValue) {
|
|
50
|
-
if (
|
|
51
|
-
else return mergeWith([], sourceValue, mergeRecursively);
|
|
52
|
-
else if (isPlainObject(sourceValue))
|
|
53
|
-
else return mergeWith({}, sourceValue, mergeRecursively);
|
|
51
|
+
if (isMergeableValue(sourceValue) && isMergeableValue(targetValue)) return mergeWith(clone(targetValue), sourceValue, mergeRecursively);
|
|
52
|
+
else if (Array.isArray(sourceValue)) return mergeWith([], sourceValue, mergeRecursively);
|
|
53
|
+
else if (isPlainObject(sourceValue)) return mergeWith({}, sourceValue, mergeRecursively);
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
//#endregion
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ToPascalCaseKeys } from "../types/ToPascalCaseKeys.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/object/toPascalCaseKeys.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a new object composed of the properties with keys converted to PascalCase.
|
|
6
|
+
*
|
|
7
|
+
* This function takes an object and returns a new object that includes the same properties,
|
|
8
|
+
* but with all keys converted to PascalCase format.
|
|
9
|
+
*
|
|
10
|
+
* @template T - The type of object.
|
|
11
|
+
* @param obj - The object to convert keys from.
|
|
12
|
+
* @returns A new object with all keys converted to PascalCase.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* // Example with objects
|
|
16
|
+
* const obj = { userId: 1, firstName: 'John' };
|
|
17
|
+
* const result = toPascalCaseKeys(obj);
|
|
18
|
+
* // result will be { UserId: 1, FirstName: 'John' }
|
|
19
|
+
*
|
|
20
|
+
* // Example with arrays of objects
|
|
21
|
+
* const arr = [
|
|
22
|
+
* { userId: 1, firstName: 'John' },
|
|
23
|
+
* { userId: 2, firstName: 'Jane' }
|
|
24
|
+
* ];
|
|
25
|
+
* const arrResult = toPascalCaseKeys(arr);
|
|
26
|
+
* // arrResult will be [{ UserId: 1, FirstName: 'John' }, { UserId: 2, FirstName: 'Jane' }]
|
|
27
|
+
*
|
|
28
|
+
* // Example with nested objects
|
|
29
|
+
* const nested = {
|
|
30
|
+
* userData: {
|
|
31
|
+
* userId: 1,
|
|
32
|
+
* userAddress: {
|
|
33
|
+
* streetName: 'Main St',
|
|
34
|
+
* zipCode: '12345'
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
* };
|
|
38
|
+
* const nestedResult = toPascalCaseKeys(nested);
|
|
39
|
+
* // nestedResult will be:
|
|
40
|
+
* // {
|
|
41
|
+
* // UserData: {
|
|
42
|
+
* // UserId: 1,
|
|
43
|
+
* // UserAddress: {
|
|
44
|
+
* // StreetName: 'Main St',
|
|
45
|
+
* // ZipCode: '12345'
|
|
46
|
+
* // }
|
|
47
|
+
* // }
|
|
48
|
+
* // }
|
|
49
|
+
*/
|
|
50
|
+
declare function toPascalCaseKeys<T>(obj: T): ToPascalCaseKeys<T>;
|
|
51
|
+
//#endregion
|
|
52
|
+
export { toPascalCaseKeys };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ToPascalCaseKeys } from "../types/ToPascalCaseKeys.js";
|
|
2
|
+
|
|
3
|
+
//#region src/object/toPascalCaseKeys.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a new object composed of the properties with keys converted to PascalCase.
|
|
6
|
+
*
|
|
7
|
+
* This function takes an object and returns a new object that includes the same properties,
|
|
8
|
+
* but with all keys converted to PascalCase format.
|
|
9
|
+
*
|
|
10
|
+
* @template T - The type of object.
|
|
11
|
+
* @param obj - The object to convert keys from.
|
|
12
|
+
* @returns A new object with all keys converted to PascalCase.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* // Example with objects
|
|
16
|
+
* const obj = { userId: 1, firstName: 'John' };
|
|
17
|
+
* const result = toPascalCaseKeys(obj);
|
|
18
|
+
* // result will be { UserId: 1, FirstName: 'John' }
|
|
19
|
+
*
|
|
20
|
+
* // Example with arrays of objects
|
|
21
|
+
* const arr = [
|
|
22
|
+
* { userId: 1, firstName: 'John' },
|
|
23
|
+
* { userId: 2, firstName: 'Jane' }
|
|
24
|
+
* ];
|
|
25
|
+
* const arrResult = toPascalCaseKeys(arr);
|
|
26
|
+
* // arrResult will be [{ UserId: 1, FirstName: 'John' }, { UserId: 2, FirstName: 'Jane' }]
|
|
27
|
+
*
|
|
28
|
+
* // Example with nested objects
|
|
29
|
+
* const nested = {
|
|
30
|
+
* userData: {
|
|
31
|
+
* userId: 1,
|
|
32
|
+
* userAddress: {
|
|
33
|
+
* streetName: 'Main St',
|
|
34
|
+
* zipCode: '12345'
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
* };
|
|
38
|
+
* const nestedResult = toPascalCaseKeys(nested);
|
|
39
|
+
* // nestedResult will be:
|
|
40
|
+
* // {
|
|
41
|
+
* // UserData: {
|
|
42
|
+
* // UserId: 1,
|
|
43
|
+
* // UserAddress: {
|
|
44
|
+
* // StreetName: 'Main St',
|
|
45
|
+
* // ZipCode: '12345'
|
|
46
|
+
* // }
|
|
47
|
+
* // }
|
|
48
|
+
* // }
|
|
49
|
+
*/
|
|
50
|
+
declare function toPascalCaseKeys<T>(obj: T): ToPascalCaseKeys<T>;
|
|
51
|
+
//#endregion
|
|
52
|
+
export { toPascalCaseKeys };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
const require_isArray = require("../compat/predicate/isArray.js");
|
|
2
|
+
const require_isPlainObject = require("../compat/predicate/isPlainObject.js");
|
|
3
|
+
const require_pascalCase = require("../string/pascalCase.js");
|
|
4
|
+
//#region src/object/toPascalCaseKeys.ts
|
|
5
|
+
/**
|
|
6
|
+
* Creates a new object composed of the properties with keys converted to PascalCase.
|
|
7
|
+
*
|
|
8
|
+
* This function takes an object and returns a new object that includes the same properties,
|
|
9
|
+
* but with all keys converted to PascalCase format.
|
|
10
|
+
*
|
|
11
|
+
* @template T - The type of object.
|
|
12
|
+
* @param obj - The object to convert keys from.
|
|
13
|
+
* @returns A new object with all keys converted to PascalCase.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* // Example with objects
|
|
17
|
+
* const obj = { userId: 1, firstName: 'John' };
|
|
18
|
+
* const result = toPascalCaseKeys(obj);
|
|
19
|
+
* // result will be { UserId: 1, FirstName: 'John' }
|
|
20
|
+
*
|
|
21
|
+
* // Example with arrays of objects
|
|
22
|
+
* const arr = [
|
|
23
|
+
* { userId: 1, firstName: 'John' },
|
|
24
|
+
* { userId: 2, firstName: 'Jane' }
|
|
25
|
+
* ];
|
|
26
|
+
* const arrResult = toPascalCaseKeys(arr);
|
|
27
|
+
* // arrResult will be [{ UserId: 1, FirstName: 'John' }, { UserId: 2, FirstName: 'Jane' }]
|
|
28
|
+
*
|
|
29
|
+
* // Example with nested objects
|
|
30
|
+
* const nested = {
|
|
31
|
+
* userData: {
|
|
32
|
+
* userId: 1,
|
|
33
|
+
* userAddress: {
|
|
34
|
+
* streetName: 'Main St',
|
|
35
|
+
* zipCode: '12345'
|
|
36
|
+
* }
|
|
37
|
+
* }
|
|
38
|
+
* };
|
|
39
|
+
* const nestedResult = toPascalCaseKeys(nested);
|
|
40
|
+
* // nestedResult will be:
|
|
41
|
+
* // {
|
|
42
|
+
* // UserData: {
|
|
43
|
+
* // UserId: 1,
|
|
44
|
+
* // UserAddress: {
|
|
45
|
+
* // StreetName: 'Main St',
|
|
46
|
+
* // ZipCode: '12345'
|
|
47
|
+
* // }
|
|
48
|
+
* // }
|
|
49
|
+
* // }
|
|
50
|
+
*/
|
|
51
|
+
function toPascalCaseKeys(obj) {
|
|
52
|
+
if (require_isArray.isArray(obj)) return obj.map((item) => toPascalCaseKeys(item));
|
|
53
|
+
if (require_isPlainObject.isPlainObject(obj)) {
|
|
54
|
+
const result = {};
|
|
55
|
+
const keys = Object.keys(obj);
|
|
56
|
+
for (let i = 0; i < keys.length; i++) {
|
|
57
|
+
const key = keys[i];
|
|
58
|
+
const pascalKey = require_pascalCase.pascalCase(key);
|
|
59
|
+
result[pascalKey] = toPascalCaseKeys(obj[key]);
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
return obj;
|
|
64
|
+
}
|
|
65
|
+
//#endregion
|
|
66
|
+
exports.toPascalCaseKeys = toPascalCaseKeys;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { isArray } from "../compat/predicate/isArray.mjs";
|
|
2
|
+
import { isPlainObject } from "../compat/predicate/isPlainObject.mjs";
|
|
3
|
+
import { pascalCase } from "../string/pascalCase.mjs";
|
|
4
|
+
//#region src/object/toPascalCaseKeys.ts
|
|
5
|
+
/**
|
|
6
|
+
* Creates a new object composed of the properties with keys converted to PascalCase.
|
|
7
|
+
*
|
|
8
|
+
* This function takes an object and returns a new object that includes the same properties,
|
|
9
|
+
* but with all keys converted to PascalCase format.
|
|
10
|
+
*
|
|
11
|
+
* @template T - The type of object.
|
|
12
|
+
* @param obj - The object to convert keys from.
|
|
13
|
+
* @returns A new object with all keys converted to PascalCase.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* // Example with objects
|
|
17
|
+
* const obj = { userId: 1, firstName: 'John' };
|
|
18
|
+
* const result = toPascalCaseKeys(obj);
|
|
19
|
+
* // result will be { UserId: 1, FirstName: 'John' }
|
|
20
|
+
*
|
|
21
|
+
* // Example with arrays of objects
|
|
22
|
+
* const arr = [
|
|
23
|
+
* { userId: 1, firstName: 'John' },
|
|
24
|
+
* { userId: 2, firstName: 'Jane' }
|
|
25
|
+
* ];
|
|
26
|
+
* const arrResult = toPascalCaseKeys(arr);
|
|
27
|
+
* // arrResult will be [{ UserId: 1, FirstName: 'John' }, { UserId: 2, FirstName: 'Jane' }]
|
|
28
|
+
*
|
|
29
|
+
* // Example with nested objects
|
|
30
|
+
* const nested = {
|
|
31
|
+
* userData: {
|
|
32
|
+
* userId: 1,
|
|
33
|
+
* userAddress: {
|
|
34
|
+
* streetName: 'Main St',
|
|
35
|
+
* zipCode: '12345'
|
|
36
|
+
* }
|
|
37
|
+
* }
|
|
38
|
+
* };
|
|
39
|
+
* const nestedResult = toPascalCaseKeys(nested);
|
|
40
|
+
* // nestedResult will be:
|
|
41
|
+
* // {
|
|
42
|
+
* // UserData: {
|
|
43
|
+
* // UserId: 1,
|
|
44
|
+
* // UserAddress: {
|
|
45
|
+
* // StreetName: 'Main St',
|
|
46
|
+
* // ZipCode: '12345'
|
|
47
|
+
* // }
|
|
48
|
+
* // }
|
|
49
|
+
* // }
|
|
50
|
+
*/
|
|
51
|
+
function toPascalCaseKeys(obj) {
|
|
52
|
+
if (isArray(obj)) return obj.map((item) => toPascalCaseKeys(item));
|
|
53
|
+
if (isPlainObject(obj)) {
|
|
54
|
+
const result = {};
|
|
55
|
+
const keys = Object.keys(obj);
|
|
56
|
+
for (let i = 0; i < keys.length; i++) {
|
|
57
|
+
const key = keys[i];
|
|
58
|
+
const pascalKey = pascalCase(key);
|
|
59
|
+
result[pascalKey] = toPascalCaseKeys(obj[key]);
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
return obj;
|
|
64
|
+
}
|
|
65
|
+
//#endregion
|
|
66
|
+
export { toPascalCaseKeys };
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
+
import { ToSnakeCaseKeys } from "../types/ToSnakeCaseKeys.mjs";
|
|
2
|
+
|
|
1
3
|
//#region src/object/toSnakeCaseKeys.d.ts
|
|
2
|
-
type SnakeCase<S extends string> = S extends Uppercase<S> ? Lowercase<S> : S extends `${infer P1}${infer P2}` ? P2 extends Uncapitalize<P2> ? `${Lowercase<P1>}${SnakeCase<P2>}` : `${Lowercase<P1>}_${SnakeCase<Uncapitalize<P2>>}` : Lowercase<S>;
|
|
3
|
-
type NonPlainObject = Date | RegExp | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | Promise<any> | Error | ArrayBuffer | DataView | Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array | ((...args: any[]) => any) | typeof globalThis;
|
|
4
|
-
type ToSnakeCaseKeys<T> = T extends NonPlainObject ? T : T extends any[] ? Array<ToSnakeCaseKeys<T[number]>> : T extends Record<string, any> ? { [K in keyof T as SnakeCase<string & K>]: ToSnakeCaseKeys<T[K]> } : T;
|
|
5
4
|
/**
|
|
6
5
|
* Creates a new object composed of the properties with keys converted to snake_case.
|
|
7
6
|
*
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
+
import { ToSnakeCaseKeys } from "../types/ToSnakeCaseKeys.js";
|
|
2
|
+
|
|
1
3
|
//#region src/object/toSnakeCaseKeys.d.ts
|
|
2
|
-
type SnakeCase<S extends string> = S extends Uppercase<S> ? Lowercase<S> : S extends `${infer P1}${infer P2}` ? P2 extends Uncapitalize<P2> ? `${Lowercase<P1>}${SnakeCase<P2>}` : `${Lowercase<P1>}_${SnakeCase<Uncapitalize<P2>>}` : Lowercase<S>;
|
|
3
|
-
type NonPlainObject = Date | RegExp | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any> | Promise<any> | Error | ArrayBuffer | DataView | Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array | ((...args: any[]) => any) | typeof globalThis;
|
|
4
|
-
type ToSnakeCaseKeys<T> = T extends NonPlainObject ? T : T extends any[] ? Array<ToSnakeCaseKeys<T[number]>> : T extends Record<string, any> ? { [K in keyof T as SnakeCase<string & K>]: ToSnakeCaseKeys<T[K]> } : T;
|
|
5
4
|
/**
|
|
6
5
|
* Creates a new object composed of the properties with keys converted to snake_case.
|
|
7
6
|
*
|
package/dist/promise/index.d.mts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { limitAsync } from "./limitAsync.mjs";
|
|
1
2
|
import { allKeyed } from "./allKeyed.mjs";
|
|
2
3
|
import { delay } from "./delay.mjs";
|
|
3
4
|
import { Mutex } from "./mutex.mjs";
|
|
4
5
|
import { Semaphore } from "./semaphore.mjs";
|
|
5
6
|
import { timeout } from "./timeout.mjs";
|
|
6
7
|
import { withTimeout } from "./withTimeout.mjs";
|
|
7
|
-
export { Mutex, Semaphore, allKeyed, delay, timeout, withTimeout };
|
|
8
|
+
export { Mutex, Semaphore, allKeyed, delay, limitAsync, timeout, withTimeout };
|
package/dist/promise/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { limitAsync } from "./limitAsync.js";
|
|
1
2
|
import { allKeyed } from "./allKeyed.js";
|
|
2
3
|
import { delay } from "./delay.js";
|
|
3
4
|
import { Mutex } from "./mutex.js";
|
|
4
5
|
import { Semaphore } from "./semaphore.js";
|
|
5
6
|
import { timeout } from "./timeout.js";
|
|
6
7
|
import { withTimeout } from "./withTimeout.js";
|
|
7
|
-
export { Mutex, Semaphore, allKeyed, delay, timeout, withTimeout };
|
|
8
|
+
export { Mutex, Semaphore, allKeyed, delay, limitAsync, timeout, withTimeout };
|
package/dist/promise/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_semaphore = require("./semaphore.js");
|
|
3
|
+
const require_limitAsync = require("./limitAsync.js");
|
|
3
4
|
const require_delay = require("./delay.js");
|
|
4
5
|
const require_allKeyed = require("./allKeyed.js");
|
|
5
6
|
const require_mutex = require("./mutex.js");
|
|
@@ -9,5 +10,6 @@ exports.Mutex = require_mutex.Mutex;
|
|
|
9
10
|
exports.Semaphore = require_semaphore.Semaphore;
|
|
10
11
|
exports.allKeyed = require_allKeyed.allKeyed;
|
|
11
12
|
exports.delay = require_delay.delay;
|
|
13
|
+
exports.limitAsync = require_limitAsync.limitAsync;
|
|
12
14
|
exports.timeout = require_timeout.timeout;
|
|
13
15
|
exports.withTimeout = require_withTimeout.withTimeout;
|
package/dist/promise/index.mjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Semaphore } from "./semaphore.mjs";
|
|
2
|
+
import { limitAsync } from "./limitAsync.mjs";
|
|
2
3
|
import { delay } from "./delay.mjs";
|
|
3
4
|
import { allKeyed } from "./allKeyed.mjs";
|
|
4
5
|
import { Mutex } from "./mutex.mjs";
|
|
5
6
|
import { timeout } from "./timeout.mjs";
|
|
6
7
|
import { withTimeout } from "./withTimeout.mjs";
|
|
7
|
-
export { Mutex, Semaphore, allKeyed, delay, timeout, withTimeout };
|
|
8
|
+
export { Mutex, Semaphore, allKeyed, delay, limitAsync, timeout, withTimeout };
|