@vinicunca/perkakas 0.3.1 → 0.3.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/dist/commonjs/array/all-pass.js +2 -2
- package/dist/commonjs/array/any-pass.js +2 -2
- package/dist/commonjs/array/chunk.js +3 -3
- package/dist/commonjs/array/concat.js +2 -2
- package/dist/commonjs/array/count-by.js +8 -6
- package/dist/commonjs/array/difference-with.js +5 -15
- package/dist/commonjs/array/difference.js +5 -15
- package/dist/commonjs/array/drop-first-by.js +1 -1
- package/dist/commonjs/array/drop-last-while.js +2 -2
- package/dist/commonjs/array/drop-last.js +3 -3
- package/dist/commonjs/array/drop-while.js +2 -2
- package/dist/commonjs/array/drop.js +5 -12
- package/dist/commonjs/array/filter.js +3 -16
- package/dist/commonjs/array/find-index.js +12 -25
- package/dist/commonjs/array/find-last-index.js +3 -3
- package/dist/commonjs/array/find-last.js +3 -3
- package/dist/commonjs/array/find.js +10 -22
- package/dist/commonjs/array/first.js +4 -10
- package/dist/commonjs/array/flat-map-to-obj.js +10 -9
- package/dist/commonjs/array/flat-map.js +5 -15
- package/dist/commonjs/array/flatten-deep.js +9 -19
- package/dist/commonjs/array/flatten.js +5 -17
- package/dist/commonjs/array/for-each.js +18 -22
- package/dist/commonjs/array/group-by.js +5 -5
- package/dist/commonjs/array/index-by.js +20 -7
- package/dist/commonjs/array/index.js +4 -0
- package/dist/commonjs/array/intersection-with.js +5 -15
- package/dist/commonjs/array/intersection.js +6 -16
- package/dist/commonjs/array/last.js +2 -2
- package/dist/commonjs/array/length.js +2 -2
- package/dist/commonjs/array/map-to-obj.js +8 -7
- package/dist/commonjs/array/map.js +11 -15
- package/dist/commonjs/array/max-by.js +6 -6
- package/dist/commonjs/array/mean-by.js +6 -6
- package/dist/commonjs/array/merge-all.js +5 -1
- package/dist/commonjs/array/min-by.js +6 -6
- package/dist/commonjs/array/only.js +3 -6
- package/dist/commonjs/array/partition.js +5 -5
- package/dist/commonjs/array/range.js +2 -2
- package/dist/commonjs/array/rank-by.js +1 -1
- package/dist/commonjs/array/reduce.js +3 -3
- package/dist/commonjs/array/reject.js +9 -22
- package/dist/commonjs/array/reverse.js +2 -2
- package/dist/commonjs/array/sample.js +1 -1
- package/dist/commonjs/array/shuffle.js +3 -3
- package/dist/commonjs/array/sort-by.js +5 -43
- package/dist/commonjs/array/sort.js +3 -3
- package/dist/commonjs/array/sorted-index-by.js +19 -0
- package/dist/commonjs/array/sorted-index-with.js +15 -0
- package/dist/commonjs/array/sorted-index.js +12 -0
- package/dist/commonjs/array/sorted-last-index-by.js +19 -0
- package/dist/commonjs/array/sorted-last-index.js +12 -0
- package/dist/commonjs/array/splice.js +3 -3
- package/dist/commonjs/array/split-at.js +3 -3
- package/dist/commonjs/array/split-when.js +6 -6
- package/dist/commonjs/array/sum-by.js +6 -6
- package/dist/commonjs/array/swap-indices.js +7 -7
- package/dist/commonjs/array/take-first-by.js +1 -1
- package/dist/commonjs/array/take-while.js +2 -2
- package/dist/commonjs/array/take.js +8 -21
- package/dist/commonjs/array/uniq-by.js +4 -11
- package/dist/commonjs/array/uniq-with.js +8 -18
- package/dist/commonjs/array/uniq.js +4 -11
- package/dist/commonjs/array/zip-obj.js +2 -2
- package/dist/commonjs/array/zip-with.js +4 -4
- package/dist/commonjs/array/zip.js +2 -2
- package/dist/commonjs/function/create-pipe.js +1 -1
- package/dist/commonjs/function/index.js +1 -0
- package/dist/commonjs/function/pipe.js +18 -24
- package/dist/commonjs/function/purry.js +8 -9
- package/dist/commonjs/function/times.js +18 -0
- package/dist/commonjs/guard/is-defined.js +1 -1
- package/dist/commonjs/guard/is-empty.js +4 -4
- package/dist/commonjs/guard/is-nil.js +1 -1
- package/dist/commonjs/guard/is-not.js +1 -3
- package/dist/commonjs/number/add.js +2 -2
- package/dist/commonjs/number/clamp.js +6 -6
- package/dist/commonjs/number/divide.js +2 -2
- package/dist/commonjs/number/multiply.js +2 -2
- package/dist/commonjs/number/subtract.js +2 -2
- package/dist/commonjs/object/add-prop.js +2 -2
- package/dist/commonjs/object/clone.js +5 -5
- package/dist/commonjs/object/equals.js +48 -52
- package/dist/commonjs/object/for-each-obj.js +9 -9
- package/dist/commonjs/object/from-pairs.js +6 -2
- package/dist/commonjs/object/invert.js +5 -3
- package/dist/commonjs/object/keys.js +3 -2
- package/dist/commonjs/object/map-keys.js +2 -2
- package/dist/commonjs/object/map-values.js +2 -2
- package/dist/commonjs/object/merge-deep.js +2 -2
- package/dist/commonjs/object/merge.js +2 -2
- package/dist/commonjs/object/omit-by.js +7 -6
- package/dist/commonjs/object/omit.js +2 -2
- package/dist/commonjs/object/path-or.js +6 -6
- package/dist/commonjs/object/pick-by.js +9 -8
- package/dist/commonjs/object/pick.js +7 -9
- package/dist/commonjs/object/set-path.js +14 -15
- package/dist/commonjs/object/set.js +2 -2
- package/dist/commonjs/object/swap-props.js +2 -2
- package/dist/commonjs/string/random-string.js +11 -5
- package/dist/commonjs/string/string-to-path.js +5 -5
- package/dist/commonjs/utils/binary-search-cutoff-index.js +19 -0
- package/dist/commonjs/utils/heap.js +1 -1
- package/dist/commonjs/utils/purry-order-rules.js +1 -1
- package/dist/commonjs/utils/quick-select.js +2 -2
- package/dist/commonjs/utils/reduce-lazy.js +9 -6
- package/dist/commonjs/utils/to-single.js +1 -2
- package/dist/es/array/all-pass.js +2 -2
- package/dist/es/array/any-pass.js +2 -2
- package/dist/es/array/chunk.js +3 -3
- package/dist/es/array/concat.js +2 -2
- package/dist/es/array/count-by.js +8 -6
- package/dist/es/array/difference-with.js +5 -15
- package/dist/es/array/difference.js +5 -15
- package/dist/es/array/drop-first-by.js +1 -1
- package/dist/es/array/drop-last-while.js +2 -2
- package/dist/es/array/drop-last.js +3 -3
- package/dist/es/array/drop-while.js +2 -2
- package/dist/es/array/drop.js +5 -12
- package/dist/es/array/filter.js +3 -16
- package/dist/es/array/find-index.js +12 -25
- package/dist/es/array/find-last-index.js +3 -3
- package/dist/es/array/find-last.js +3 -3
- package/dist/es/array/find.js +10 -22
- package/dist/es/array/first.js +4 -10
- package/dist/es/array/flat-map-to-obj.js +10 -9
- package/dist/es/array/flat-map.js +5 -15
- package/dist/es/array/flatten-deep.js +9 -19
- package/dist/es/array/flatten.js +5 -17
- package/dist/es/array/for-each.js +18 -22
- package/dist/es/array/group-by.js +5 -5
- package/dist/es/array/index-by.js +20 -7
- package/dist/es/array/index.js +4 -0
- package/dist/es/array/intersection-with.js +5 -15
- package/dist/es/array/intersection.js +6 -16
- package/dist/es/array/last.js +2 -2
- package/dist/es/array/length.js +2 -2
- package/dist/es/array/map-to-obj.js +8 -7
- package/dist/es/array/map.js +11 -15
- package/dist/es/array/max-by.js +6 -6
- package/dist/es/array/mean-by.js +6 -6
- package/dist/es/array/merge-all.js +5 -1
- package/dist/es/array/min-by.js +6 -6
- package/dist/es/array/only.js +3 -6
- package/dist/es/array/partition.js +5 -5
- package/dist/es/array/range.js +2 -2
- package/dist/es/array/rank-by.js +1 -1
- package/dist/es/array/reduce.js +3 -3
- package/dist/es/array/reject.js +9 -22
- package/dist/es/array/reverse.js +2 -2
- package/dist/es/array/sample.js +1 -1
- package/dist/es/array/shuffle.js +3 -3
- package/dist/es/array/sort-by.js +5 -43
- package/dist/es/array/sort.js +3 -3
- package/dist/es/array/sorted-index-by.js +15 -0
- package/dist/es/array/sorted-index-with.js +11 -0
- package/dist/es/array/sorted-index.js +8 -0
- package/dist/es/array/sorted-last-index-by.js +15 -0
- package/dist/es/array/sorted-last-index.js +8 -0
- package/dist/es/array/splice.js +3 -3
- package/dist/es/array/split-at.js +3 -3
- package/dist/es/array/split-when.js +6 -6
- package/dist/es/array/sum-by.js +6 -6
- package/dist/es/array/swap-indices.js +7 -7
- package/dist/es/array/take-first-by.js +1 -1
- package/dist/es/array/take-while.js +2 -2
- package/dist/es/array/take.js +8 -21
- package/dist/es/array/uniq-by.js +4 -11
- package/dist/es/array/uniq-with.js +8 -18
- package/dist/es/array/uniq.js +4 -11
- package/dist/es/array/zip-obj.js +2 -2
- package/dist/es/array/zip-with.js +4 -4
- package/dist/es/array/zip.js +2 -2
- package/dist/es/function/index.js +1 -0
- package/dist/es/function/pipe.js +18 -24
- package/dist/es/function/purry.js +8 -9
- package/dist/es/function/times.js +14 -0
- package/dist/es/guard/is-defined.js +1 -1
- package/dist/es/guard/is-empty.js +4 -4
- package/dist/es/guard/is-nil.js +1 -1
- package/dist/es/guard/is-not.js +1 -3
- package/dist/es/number/add.js +2 -2
- package/dist/es/number/clamp.js +6 -6
- package/dist/es/number/divide.js +2 -2
- package/dist/es/number/multiply.js +2 -2
- package/dist/es/number/subtract.js +2 -2
- package/dist/es/object/add-prop.js +2 -2
- package/dist/es/object/clone.js +5 -5
- package/dist/es/object/equals.js +48 -52
- package/dist/es/object/for-each-obj.js +9 -9
- package/dist/es/object/from-pairs.js +5 -1
- package/dist/es/object/invert.js +5 -3
- package/dist/es/object/keys.js +3 -2
- package/dist/es/object/map-keys.js +2 -2
- package/dist/es/object/map-values.js +2 -2
- package/dist/es/object/merge-deep.js +2 -2
- package/dist/es/object/merge.js +2 -2
- package/dist/es/object/omit-by.js +7 -6
- package/dist/es/object/omit.js +2 -2
- package/dist/es/object/path-or.js +6 -6
- package/dist/es/object/pick-by.js +9 -8
- package/dist/es/object/pick.js +7 -9
- package/dist/es/object/set-path.js +12 -13
- package/dist/es/object/set.js +2 -2
- package/dist/es/object/swap-props.js +2 -2
- package/dist/es/string/random-string.js +11 -5
- package/dist/es/string/string-to-path.js +5 -5
- package/dist/es/utils/binary-search-cutoff-index.js +15 -0
- package/dist/es/utils/heap.js +1 -1
- package/dist/es/utils/purry-order-rules.js +1 -1
- package/dist/es/utils/quick-select.js +2 -2
- package/dist/es/utils/reduce-lazy.js +9 -6
- package/dist/es/utils/to-single.js +1 -2
- package/dist/metadata.json +7915 -4373
- package/dist/types/array/count-by.d.ts.map +1 -1
- package/dist/types/array/difference-with.d.ts +2 -2
- package/dist/types/array/difference-with.d.ts.map +1 -1
- package/dist/types/array/difference.d.ts +2 -2
- package/dist/types/array/difference.d.ts.map +1 -1
- package/dist/types/array/drop.d.ts +2 -2
- package/dist/types/array/drop.d.ts.map +1 -1
- package/dist/types/array/filter.d.ts +5 -5
- package/dist/types/array/filter.d.ts.map +1 -1
- package/dist/types/array/find-index.d.ts +5 -20
- package/dist/types/array/find-index.d.ts.map +1 -1
- package/dist/types/array/find.d.ts +5 -12
- package/dist/types/array/find.d.ts.map +1 -1
- package/dist/types/array/first.d.ts +2 -5
- package/dist/types/array/first.d.ts.map +1 -1
- package/dist/types/array/flat-map-to-obj.d.ts +4 -4
- package/dist/types/array/flat-map-to-obj.d.ts.map +1 -1
- package/dist/types/array/flat-map.d.ts +2 -11
- package/dist/types/array/flat-map.d.ts.map +1 -1
- package/dist/types/array/flatten-deep.d.ts +15 -5
- package/dist/types/array/flatten-deep.d.ts.map +1 -1
- package/dist/types/array/flatten.d.ts +17 -2
- package/dist/types/array/flatten.d.ts.map +1 -1
- package/dist/types/array/for-each.d.ts +3 -3
- package/dist/types/array/for-each.d.ts.map +1 -1
- package/dist/types/array/group-by.d.ts.map +1 -1
- package/dist/types/array/index-by.d.ts +25 -6
- package/dist/types/array/index-by.d.ts.map +1 -1
- package/dist/types/array/index.d.ts +4 -0
- package/dist/types/array/index.d.ts.map +1 -1
- package/dist/types/array/intersection-with.d.ts +2 -2
- package/dist/types/array/intersection-with.d.ts.map +1 -1
- package/dist/types/array/intersection.d.ts +2 -2
- package/dist/types/array/intersection.d.ts.map +1 -1
- package/dist/types/array/last.d.ts +13 -4
- package/dist/types/array/last.d.ts.map +1 -1
- package/dist/types/array/map.d.ts +3 -3
- package/dist/types/array/map.d.ts.map +1 -1
- package/dist/types/array/max-by.d.ts.map +1 -1
- package/dist/types/array/mean-by.d.ts.map +1 -1
- package/dist/types/array/merge-all.d.ts +1 -1
- package/dist/types/array/merge-all.d.ts.map +1 -1
- package/dist/types/array/min-by.d.ts.map +1 -1
- package/dist/types/array/reduce.d.ts +2 -2
- package/dist/types/array/reduce.d.ts.map +1 -1
- package/dist/types/array/reject.d.ts +3 -3
- package/dist/types/array/reject.d.ts.map +1 -1
- package/dist/types/array/sort-by.d.ts +33 -33
- package/dist/types/array/sort-by.d.ts.map +1 -1
- package/dist/types/array/sort.d.ts.map +1 -1
- package/dist/types/array/sorted-index-by.d.ts +63 -0
- package/dist/types/array/sorted-index-by.d.ts.map +1 -0
- package/dist/types/array/sorted-index-with.d.ts +65 -0
- package/dist/types/array/sorted-index-with.d.ts.map +1 -0
- package/dist/types/array/sorted-index.d.ts +47 -0
- package/dist/types/array/sorted-index.d.ts.map +1 -0
- package/dist/types/array/sorted-last-index-by.d.ts +63 -0
- package/dist/types/array/sorted-last-index-by.d.ts.map +1 -0
- package/dist/types/array/sorted-last-index.d.ts +47 -0
- package/dist/types/array/sorted-last-index.d.ts.map +1 -0
- package/dist/types/array/sum-by.d.ts.map +1 -1
- package/dist/types/array/take.d.ts +2 -2
- package/dist/types/array/take.d.ts.map +1 -1
- package/dist/types/array/uniq-with.d.ts +3 -3
- package/dist/types/array/uniq-with.d.ts.map +1 -1
- package/dist/types/array/uniq.d.ts +15 -4
- package/dist/types/array/uniq.d.ts.map +1 -1
- package/dist/types/array/zip-obj.d.ts +2 -2
- package/dist/types/array/zip-obj.d.ts.map +1 -1
- package/dist/types/array/zip.d.ts.map +1 -1
- package/dist/types/function/conditional.d.ts.map +1 -1
- package/dist/types/function/index.d.ts +1 -0
- package/dist/types/function/index.d.ts.map +1 -1
- package/dist/types/function/noop.d.ts.map +1 -1
- package/dist/types/function/pipe.d.ts +21 -0
- package/dist/types/function/pipe.d.ts.map +1 -1
- package/dist/types/function/purry.d.ts +21 -6
- package/dist/types/function/purry.d.ts.map +1 -1
- package/dist/types/function/times.d.ts +29 -0
- package/dist/types/function/times.d.ts.map +1 -0
- package/dist/types/guard/is-empty.d.ts +15 -4
- package/dist/types/guard/is-empty.d.ts.map +1 -1
- package/dist/types/guard/is-not.d.ts +1 -1
- package/dist/types/guard/is-not.d.ts.map +1 -1
- package/dist/types/guard/is-object.d.ts +1 -1
- package/dist/types/guard/is-object.d.ts.map +1 -1
- package/dist/types/number/clamp.d.ts +7 -8
- package/dist/types/number/clamp.d.ts.map +1 -1
- package/dist/types/object/add-prop.d.ts +2 -2
- package/dist/types/object/add-prop.d.ts.map +1 -1
- package/dist/types/object/equals.d.ts +2 -2
- package/dist/types/object/equals.d.ts.map +1 -1
- package/dist/types/object/for-each-obj.d.ts +6 -6
- package/dist/types/object/for-each-obj.d.ts.map +1 -1
- package/dist/types/object/from-pairs.d.ts +9 -0
- package/dist/types/object/from-pairs.d.ts.map +1 -1
- package/dist/types/object/keys.d.ts +8 -4
- package/dist/types/object/keys.d.ts.map +1 -1
- package/dist/types/object/pick.d.ts +9 -9
- package/dist/types/object/pick.d.ts.map +1 -1
- package/dist/types/object/prop.d.ts.map +1 -1
- package/dist/types/object/set-path.d.ts +1 -1
- package/dist/types/object/set-path.d.ts.map +1 -1
- package/dist/types/object/to-pairs.d.ts +1 -1
- package/dist/types/object/to-pairs.d.ts.map +1 -1
- package/dist/types/string/random-string.d.ts +6 -2
- package/dist/types/string/random-string.d.ts.map +1 -1
- package/dist/types/string/string-to-path.d.ts.map +1 -1
- package/dist/types/type/type.d.ts.map +1 -1
- package/dist/types/utils/binary-search-cutoff-index.d.ts +2 -0
- package/dist/types/utils/binary-search-cutoff-index.d.ts.map +1 -0
- package/dist/types/utils/narrow.d.ts +1 -1
- package/dist/types/utils/narrow.d.ts.map +1 -1
- package/dist/types/utils/purry-on.d.ts +1 -1
- package/dist/types/utils/purry-on.d.ts.map +1 -1
- package/dist/types/utils/reduce-lazy.d.ts +2 -21
- package/dist/types/utils/reduce-lazy.d.ts.map +1 -1
- package/dist/types/utils/swap-in-place.d.ts.map +1 -1
- package/dist/types/utils/to-single.d.ts +4 -2
- package/dist/types/utils/to-single.d.ts.map +1 -1
- package/dist/types/utils/types.d.ts +2 -2
- package/dist/types/utils/types.d.ts.map +1 -1
- package/dist/types/utils/with-precision.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.randomString = void 0;
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
return (0,
|
|
4
|
+
const purry_1 = require("../function/purry");
|
|
5
|
+
const times_1 = require("../function/times");
|
|
6
|
+
const ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
7
|
+
function randomString(...args) {
|
|
8
|
+
return (0, purry_1.purry)(randomStringImplementation, args);
|
|
9
9
|
}
|
|
10
10
|
exports.randomString = randomString;
|
|
11
|
+
function randomStringImplementation(length) {
|
|
12
|
+
return (0, times_1.times)(length, randomChar).join('');
|
|
13
|
+
}
|
|
14
|
+
function randomChar() {
|
|
15
|
+
return ALPHABET[Math.floor(Math.random() * ALPHABET.length)];
|
|
16
|
+
}
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.stringToPath = void 0;
|
|
4
4
|
function stringToPath(path) {
|
|
5
|
-
return
|
|
5
|
+
return stringToPath_(path);
|
|
6
6
|
}
|
|
7
7
|
exports.stringToPath = stringToPath;
|
|
8
|
-
function
|
|
8
|
+
function stringToPath_(path) {
|
|
9
9
|
if (path.length === 0) {
|
|
10
10
|
return [];
|
|
11
11
|
}
|
|
12
|
-
const match =
|
|
13
|
-
if (match) {
|
|
12
|
+
const match = /^\[(.+?)\](.*)$/u.exec(path) ?? /^\.?([^.[\]]+)(.*)$/u.exec(path);
|
|
13
|
+
if (match !== null) {
|
|
14
14
|
const [, key, rest] = match;
|
|
15
|
-
return [key, ...
|
|
15
|
+
return [key, ...stringToPath_(rest)];
|
|
16
16
|
}
|
|
17
17
|
return [path];
|
|
18
18
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.binarySearchCutoffIndex = void 0;
|
|
4
|
+
function binarySearchCutoffIndex(array, predicate) {
|
|
5
|
+
let lowIndex = 0;
|
|
6
|
+
let highIndex = array.length;
|
|
7
|
+
while (lowIndex < highIndex) {
|
|
8
|
+
const pivotIndex = (lowIndex + highIndex) >>> 1;
|
|
9
|
+
const pivot = array[pivotIndex];
|
|
10
|
+
if (predicate(pivot, pivotIndex)) {
|
|
11
|
+
lowIndex = pivotIndex + 1;
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
highIndex = pivotIndex;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return highIndex;
|
|
18
|
+
}
|
|
19
|
+
exports.binarySearchCutoffIndex = binarySearchCutoffIndex;
|
|
@@ -33,7 +33,7 @@ exports.purryOrderRulesWithArgument = purryOrderRulesWithArgument;
|
|
|
33
33
|
function orderRuleComparer(primaryRule, secondaryRule, ...otherRules) {
|
|
34
34
|
const projector = typeof primaryRule === 'function' ? primaryRule : primaryRule[0];
|
|
35
35
|
const direction = typeof primaryRule === 'function' ? 'asc' : primaryRule[1];
|
|
36
|
-
const comparator = COMPARATORS
|
|
36
|
+
const { [direction]: comparator } = COMPARATORS;
|
|
37
37
|
const nextComparer = secondaryRule === undefined
|
|
38
38
|
? undefined
|
|
39
39
|
: orderRuleComparer(secondaryRule, ...otherRules);
|
|
@@ -5,7 +5,7 @@ const swap_in_place_1 = require("./swap-in-place");
|
|
|
5
5
|
function quickSelect(data, index, compareFn) {
|
|
6
6
|
return index < 0 || index >= data.length
|
|
7
7
|
? undefined
|
|
8
|
-
: quickSelectImplementation(
|
|
8
|
+
: quickSelectImplementation(data.slice(), 0, data.length - 1, index, compareFn);
|
|
9
9
|
}
|
|
10
10
|
exports.quickSelect = quickSelect;
|
|
11
11
|
function quickSelectImplementation(data, left, right, index, compareFn) {
|
|
@@ -23,7 +23,7 @@ function partition(data, left, right, compareFn) {
|
|
|
23
23
|
for (let j = left; j < right; j++) {
|
|
24
24
|
if (compareFn(data[j], pivot) < 0) {
|
|
25
25
|
(0, swap_in_place_1.swapInPlace)(data, i, j);
|
|
26
|
-
i
|
|
26
|
+
i += 1;
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
(0, swap_in_place_1.swapInPlace)(data, i, right);
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.reduceLazy = void 0;
|
|
4
|
-
function reduceLazy(array, lazy,
|
|
5
|
-
const
|
|
4
|
+
function reduceLazy(array, lazy, isIndexed = false) {
|
|
5
|
+
const out = [];
|
|
6
6
|
for (let index = 0; index < array.length; index++) {
|
|
7
7
|
const item = array[index];
|
|
8
|
-
const result =
|
|
8
|
+
const result = isIndexed ? lazy(item, index, array) : lazy(item);
|
|
9
9
|
if (result.hasMany === true) {
|
|
10
|
-
|
|
10
|
+
out.push(...result.next);
|
|
11
11
|
}
|
|
12
12
|
else if (result.hasNext) {
|
|
13
|
-
|
|
13
|
+
out.push(result.next);
|
|
14
|
+
}
|
|
15
|
+
if (result.done) {
|
|
16
|
+
break;
|
|
14
17
|
}
|
|
15
18
|
}
|
|
16
|
-
return
|
|
19
|
+
return out;
|
|
17
20
|
}
|
|
18
21
|
exports.reduceLazy = reduceLazy;
|
package/dist/es/array/chunk.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { purry } from '../function/purry';
|
|
2
2
|
export function chunk(...args) {
|
|
3
|
-
return purry(
|
|
3
|
+
return purry(chunk_, args);
|
|
4
4
|
}
|
|
5
|
-
function
|
|
5
|
+
function chunk_(array, size) {
|
|
6
6
|
const ret = Array.from({
|
|
7
7
|
length: Math.ceil(array.length / size),
|
|
8
8
|
});
|
|
9
|
-
for (let index = 0; index < ret.length; index
|
|
9
|
+
for (let index = 0; index < ret.length; index++) {
|
|
10
10
|
ret[index] = array.slice(index * size, (index + 1) * size);
|
|
11
11
|
}
|
|
12
12
|
return ret;
|
package/dist/es/array/concat.js
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { purry } from '../function/purry';
|
|
2
|
-
function
|
|
2
|
+
function countBy_(indexed) {
|
|
3
3
|
return (array, fn) => {
|
|
4
|
-
|
|
4
|
+
let out = 0;
|
|
5
|
+
for (const [index, item] of array.entries()) {
|
|
5
6
|
const value = indexed ? fn(item, index, array) : fn(item);
|
|
6
|
-
|
|
7
|
-
}
|
|
7
|
+
out += value ? 1 : 0;
|
|
8
|
+
}
|
|
9
|
+
return out;
|
|
8
10
|
};
|
|
9
11
|
}
|
|
10
12
|
export function countBy(...args) {
|
|
11
|
-
return purry(
|
|
13
|
+
return purry(countBy_(false), args);
|
|
12
14
|
}
|
|
13
15
|
(function (countBy) {
|
|
14
16
|
function indexed(...args) {
|
|
15
|
-
return purry(
|
|
17
|
+
return purry(countBy_(true), args);
|
|
16
18
|
}
|
|
17
19
|
countBy.indexed = indexed;
|
|
18
20
|
})(countBy || (countBy = {}));
|
|
@@ -1,27 +1,17 @@
|
|
|
1
1
|
import { purry } from '../function/purry';
|
|
2
2
|
import { reduceLazy } from '../utils/reduce-lazy';
|
|
3
3
|
export function differenceWith(...args) {
|
|
4
|
-
return purry(
|
|
4
|
+
return purry(differenceWith_, args, differenceWith.lazy);
|
|
5
5
|
}
|
|
6
|
-
function
|
|
6
|
+
function differenceWith_(array, other, isEquals) {
|
|
7
7
|
const lazy = differenceWith.lazy(other, isEquals);
|
|
8
8
|
return reduceLazy(array, lazy);
|
|
9
9
|
}
|
|
10
10
|
(function (differenceWith) {
|
|
11
11
|
function lazy(other, isEquals) {
|
|
12
|
-
return (value) =>
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
done: false,
|
|
16
|
-
hasNext: true,
|
|
17
|
-
next: value,
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
return {
|
|
21
|
-
done: false,
|
|
22
|
-
hasNext: false,
|
|
23
|
-
};
|
|
24
|
-
};
|
|
12
|
+
return (value) => other.every((otherValue) => !isEquals(value, otherValue))
|
|
13
|
+
? { done: false, hasNext: true, next: value }
|
|
14
|
+
: { done: false, hasNext: false };
|
|
25
15
|
}
|
|
26
16
|
differenceWith.lazy = lazy;
|
|
27
17
|
})(differenceWith || (differenceWith = {}));
|
|
@@ -1,28 +1,18 @@
|
|
|
1
1
|
import { purry } from '../function/purry';
|
|
2
2
|
import { reduceLazy } from '../utils/reduce-lazy';
|
|
3
3
|
export function difference(...args) {
|
|
4
|
-
return purry(
|
|
4
|
+
return purry(difference_, args, difference.lazy);
|
|
5
5
|
}
|
|
6
|
-
function
|
|
6
|
+
function difference_(array, other) {
|
|
7
7
|
const lazy = difference.lazy(other);
|
|
8
8
|
return reduceLazy(array, lazy);
|
|
9
9
|
}
|
|
10
10
|
(function (difference) {
|
|
11
11
|
function lazy(other) {
|
|
12
12
|
const set = new Set(other);
|
|
13
|
-
return (value) =>
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
done: false,
|
|
17
|
-
hasNext: true,
|
|
18
|
-
next: value,
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
return {
|
|
22
|
-
done: false,
|
|
23
|
-
hasNext: false,
|
|
24
|
-
};
|
|
25
|
-
};
|
|
13
|
+
return (value) => set.has(value)
|
|
14
|
+
? { done: false, hasNext: false }
|
|
15
|
+
: { done: false, hasNext: true, next: value };
|
|
26
16
|
}
|
|
27
17
|
difference.lazy = lazy;
|
|
28
18
|
})(difference || (difference = {}));
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { purry } from '../function/purry';
|
|
2
2
|
export function dropLastWhile(...args) {
|
|
3
|
-
return purry(
|
|
3
|
+
return purry(dropLastWhile_, args);
|
|
4
4
|
}
|
|
5
|
-
function
|
|
5
|
+
function dropLastWhile_(data, predicate) {
|
|
6
6
|
for (let i = data.length - 1; i >= 0; i--) {
|
|
7
7
|
if (!predicate(data[i])) {
|
|
8
8
|
return data.slice(0, i + 1);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { purry } from '../function/purry';
|
|
2
2
|
export function dropLast(...args) {
|
|
3
|
-
return purry(
|
|
3
|
+
return purry(dropLast_, args);
|
|
4
4
|
}
|
|
5
|
-
function
|
|
6
|
-
const copy =
|
|
5
|
+
function dropLast_(array, n) {
|
|
6
|
+
const copy = array.slice();
|
|
7
7
|
if (n > 0) {
|
|
8
8
|
copy.splice(-n);
|
|
9
9
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { purry } from '../function/purry';
|
|
2
2
|
export function dropWhile(...args) {
|
|
3
|
-
return purry(
|
|
3
|
+
return purry(dropWhile_, args);
|
|
4
4
|
}
|
|
5
|
-
function
|
|
5
|
+
function dropWhile_(data, predicate) {
|
|
6
6
|
for (let i = 0; i < data.length; i++) {
|
|
7
7
|
if (!predicate(data[i])) {
|
|
8
8
|
return data.slice(i);
|
package/dist/es/array/drop.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { purry } from '../function/purry';
|
|
2
2
|
import { reduceLazy } from '../utils/reduce-lazy';
|
|
3
3
|
export function drop(...args) {
|
|
4
|
-
return purry(
|
|
4
|
+
return purry(drop_, args, drop.lazy);
|
|
5
5
|
}
|
|
6
|
-
function
|
|
6
|
+
function drop_(array, n) {
|
|
7
7
|
return reduceLazy(array, drop.lazy(n));
|
|
8
8
|
}
|
|
9
9
|
(function (drop) {
|
|
@@ -11,17 +11,10 @@ function _drop(array, n) {
|
|
|
11
11
|
let left = n;
|
|
12
12
|
return (value) => {
|
|
13
13
|
if (left > 0) {
|
|
14
|
-
left
|
|
15
|
-
return {
|
|
16
|
-
done: false,
|
|
17
|
-
hasNext: false,
|
|
18
|
-
};
|
|
14
|
+
left -= 1;
|
|
15
|
+
return { done: false, hasNext: false };
|
|
19
16
|
}
|
|
20
|
-
return {
|
|
21
|
-
done: false,
|
|
22
|
-
hasNext: true,
|
|
23
|
-
next: value,
|
|
24
|
-
};
|
|
17
|
+
return { done: false, hasNext: true, next: value };
|
|
25
18
|
};
|
|
26
19
|
}
|
|
27
20
|
drop.lazy = lazy;
|
package/dist/es/array/filter.js
CHANGED
|
@@ -10,22 +10,9 @@ function filter_(indexed) {
|
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
function lazy_(indexed) {
|
|
13
|
-
return (fn) =>
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (valid) {
|
|
17
|
-
return {
|
|
18
|
-
done: false,
|
|
19
|
-
hasNext: true,
|
|
20
|
-
next: value,
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
return {
|
|
24
|
-
done: false,
|
|
25
|
-
hasNext: false,
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
};
|
|
13
|
+
return (fn) => (value, index, array) => (indexed ? fn(value, index, array) : fn(value))
|
|
14
|
+
? { done: false, hasNext: true, next: value }
|
|
15
|
+
: { done: false, hasNext: false };
|
|
29
16
|
}
|
|
30
17
|
(function (filter) {
|
|
31
18
|
function indexed(...args) {
|
|
@@ -2,41 +2,28 @@ import { purry } from '../function/purry';
|
|
|
2
2
|
import { toLazyIndexed } from '../utils/to-lazy-indexed';
|
|
3
3
|
import { toSingle } from '../utils/to-single';
|
|
4
4
|
export function findIndex(...args) {
|
|
5
|
-
return purry(
|
|
5
|
+
return purry(findIndex_(false), args, findIndex.lazy);
|
|
6
6
|
}
|
|
7
|
-
function
|
|
8
|
-
return (array, fn) =>
|
|
9
|
-
if (indexed) {
|
|
10
|
-
return array.findIndex(fn);
|
|
11
|
-
}
|
|
12
|
-
return array.findIndex((x) => fn(x));
|
|
13
|
-
};
|
|
7
|
+
function findIndex_(indexed) {
|
|
8
|
+
return (array, fn) => array.findIndex((item, index, input) => indexed ? fn(item, index, input) : fn(item));
|
|
14
9
|
}
|
|
15
|
-
function
|
|
10
|
+
function lazy_(indexed) {
|
|
16
11
|
return (fn) => {
|
|
17
|
-
let
|
|
12
|
+
let actualIndex = 0;
|
|
18
13
|
return (value, index, array) => {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return {
|
|
22
|
-
done: true,
|
|
23
|
-
hasNext: true,
|
|
24
|
-
next: i,
|
|
25
|
-
};
|
|
14
|
+
if (indexed ? fn(value, index, array) : fn(value)) {
|
|
15
|
+
return { done: true, hasNext: true, next: actualIndex };
|
|
26
16
|
}
|
|
27
|
-
|
|
28
|
-
return {
|
|
29
|
-
done: false,
|
|
30
|
-
hasNext: false,
|
|
31
|
-
};
|
|
17
|
+
actualIndex += 1;
|
|
18
|
+
return { done: false, hasNext: false };
|
|
32
19
|
};
|
|
33
20
|
};
|
|
34
21
|
}
|
|
35
22
|
(function (findIndex) {
|
|
36
23
|
function indexed(...args) {
|
|
37
|
-
return purry(
|
|
24
|
+
return purry(findIndex_(true), args, findIndex.lazyIndexed);
|
|
38
25
|
}
|
|
39
26
|
findIndex.indexed = indexed;
|
|
40
|
-
findIndex.lazy = toSingle(
|
|
41
|
-
findIndex.lazyIndexed = toSingle(toLazyIndexed(
|
|
27
|
+
findIndex.lazy = toSingle(lazy_(false));
|
|
28
|
+
findIndex.lazyIndexed = toSingle(toLazyIndexed(lazy_(true)));
|
|
42
29
|
})(findIndex || (findIndex = {}));
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { purry } from '../function/purry';
|
|
2
2
|
export function findLastIndex(...args) {
|
|
3
|
-
return purry(
|
|
3
|
+
return purry(findLastIndex_(false), args);
|
|
4
4
|
}
|
|
5
|
-
function
|
|
5
|
+
function findLastIndex_(indexed) {
|
|
6
6
|
return (array, fn) => {
|
|
7
7
|
for (let i = array.length - 1; i >= 0; i--) {
|
|
8
8
|
if (indexed ? fn(array[i], i, array) : fn(array[i])) {
|
|
@@ -14,7 +14,7 @@ function _findLastIndex(indexed) {
|
|
|
14
14
|
}
|
|
15
15
|
(function (findLastIndex) {
|
|
16
16
|
function indexed(...args) {
|
|
17
|
-
return purry(
|
|
17
|
+
return purry(findLastIndex_(true), args);
|
|
18
18
|
}
|
|
19
19
|
findLastIndex.indexed = indexed;
|
|
20
20
|
})(findLastIndex || (findLastIndex = {}));
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { purry } from '../function/purry';
|
|
2
2
|
export function findLast(...args) {
|
|
3
|
-
return purry(
|
|
3
|
+
return purry(findLast_(false), args);
|
|
4
4
|
}
|
|
5
|
-
function
|
|
5
|
+
function findLast_(indexed) {
|
|
6
6
|
return (array, fn) => {
|
|
7
7
|
for (let i = array.length - 1; i >= 0; i--) {
|
|
8
8
|
if (indexed ? fn(array[i], i, array) : fn(array[i])) {
|
|
@@ -14,7 +14,7 @@ function _findLast(indexed) {
|
|
|
14
14
|
}
|
|
15
15
|
(function (findLast) {
|
|
16
16
|
function indexed(...args) {
|
|
17
|
-
return purry(
|
|
17
|
+
return purry(findLast_(true), args);
|
|
18
18
|
}
|
|
19
19
|
findLast.indexed = indexed;
|
|
20
20
|
})(findLast || (findLast = {}));
|
package/dist/es/array/find.js
CHANGED
|
@@ -2,33 +2,21 @@ import { purry } from '../function/purry';
|
|
|
2
2
|
import { toLazyIndexed } from '../utils/to-lazy-indexed';
|
|
3
3
|
import { toSingle } from '../utils/to-single';
|
|
4
4
|
export function find(...args) {
|
|
5
|
-
return purry(
|
|
5
|
+
return purry(find_(false), args, find.lazy);
|
|
6
6
|
}
|
|
7
|
-
function
|
|
8
|
-
return (array, fn) =>
|
|
9
|
-
if (indexed) {
|
|
10
|
-
return array.find(fn);
|
|
11
|
-
}
|
|
12
|
-
return array.find((x) => fn(x));
|
|
13
|
-
};
|
|
7
|
+
function find_(indexed) {
|
|
8
|
+
return (array, fn) => array.find((item, index, input) => indexed ? fn(item, index, input) : fn(item));
|
|
14
9
|
}
|
|
15
|
-
function
|
|
16
|
-
return (fn) =>
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
return {
|
|
20
|
-
done: valid,
|
|
21
|
-
hasNext: valid,
|
|
22
|
-
next: value,
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
};
|
|
10
|
+
function lazy_(indexed) {
|
|
11
|
+
return (fn) => (value, index, array) => (indexed ? fn(value, index, array) : fn(value))
|
|
12
|
+
? { done: true, hasNext: true, next: value }
|
|
13
|
+
: { done: false, hasNext: false };
|
|
26
14
|
}
|
|
27
15
|
(function (find) {
|
|
28
16
|
function indexed(...args) {
|
|
29
|
-
return purry(
|
|
17
|
+
return purry(find_(true), args, find.lazyIndexed);
|
|
30
18
|
}
|
|
31
19
|
find.indexed = indexed;
|
|
32
|
-
find.lazy = toSingle(
|
|
33
|
-
find.lazyIndexed = toSingle(toLazyIndexed(
|
|
20
|
+
find.lazy = toSingle(lazy_(false));
|
|
21
|
+
find.lazyIndexed = toSingle(toLazyIndexed(lazy_(true)));
|
|
34
22
|
})(find || (find = {}));
|
package/dist/es/array/first.js
CHANGED
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
import { purry } from '../function/purry';
|
|
2
2
|
export function first(...args) {
|
|
3
|
-
return purry(
|
|
3
|
+
return purry(first_, args, first.lazy);
|
|
4
4
|
}
|
|
5
|
-
function
|
|
6
|
-
return
|
|
5
|
+
function first_([item]) {
|
|
6
|
+
return item;
|
|
7
7
|
}
|
|
8
8
|
(function (first) {
|
|
9
9
|
function lazy() {
|
|
10
|
-
return (value) => {
|
|
11
|
-
return {
|
|
12
|
-
done: true,
|
|
13
|
-
hasNext: true,
|
|
14
|
-
next: value,
|
|
15
|
-
};
|
|
16
|
-
};
|
|
10
|
+
return (value) => ({ done: true, hasNext: true, next: value });
|
|
17
11
|
}
|
|
18
12
|
first.lazy = lazy;
|
|
19
13
|
(function (lazy) {
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { purry } from '../function/purry';
|
|
2
2
|
export function flatMapToObj(...args) {
|
|
3
|
-
return purry(
|
|
3
|
+
return purry(flatMapToObj_(false), args);
|
|
4
4
|
}
|
|
5
|
-
function
|
|
5
|
+
function flatMapToObj_(indexed) {
|
|
6
6
|
return (array, fn) => {
|
|
7
|
-
|
|
7
|
+
const out = {};
|
|
8
|
+
for (const [index, element] of array.entries()) {
|
|
8
9
|
const items = indexed ? fn(element, index, array) : fn(element);
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
for (const [key, value] of items) {
|
|
11
|
+
out[key] = value;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return out;
|
|
14
15
|
};
|
|
15
16
|
}
|
|
16
17
|
(function (flatMapToObj) {
|
|
17
18
|
function indexed(...args) {
|
|
18
|
-
return purry(
|
|
19
|
+
return purry(flatMapToObj_(true), args);
|
|
19
20
|
}
|
|
20
21
|
flatMapToObj.indexed = indexed;
|
|
21
22
|
})(flatMapToObj || (flatMapToObj = {}));
|
|
@@ -1,28 +1,18 @@
|
|
|
1
1
|
import { purry } from '../function/purry';
|
|
2
2
|
import { flatten } from './flatten';
|
|
3
3
|
export function flatMap(...args) {
|
|
4
|
-
return purry(
|
|
4
|
+
return purry(flatMap_, args, flatMap.lazy);
|
|
5
5
|
}
|
|
6
|
-
function
|
|
6
|
+
function flatMap_(array, fn) {
|
|
7
7
|
return flatten(array.map((item) => fn(item)));
|
|
8
8
|
}
|
|
9
9
|
(function (flatMap) {
|
|
10
10
|
function lazy(fn) {
|
|
11
11
|
return (value) => {
|
|
12
12
|
const next = fn(value);
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
hasMany: true,
|
|
17
|
-
hasNext: true,
|
|
18
|
-
next,
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
return {
|
|
22
|
-
done: false,
|
|
23
|
-
hasNext: true,
|
|
24
|
-
next,
|
|
25
|
-
};
|
|
13
|
+
return Array.isArray(next)
|
|
14
|
+
? { done: false, hasMany: true, hasNext: true, next }
|
|
15
|
+
: { done: false, hasNext: true, next };
|
|
26
16
|
};
|
|
27
17
|
}
|
|
28
18
|
flatMap.lazy = lazy;
|