@thi.ng/transducers 7.9.2 → 8.0.4
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 +354 -420
- package/README.md +242 -219
- package/{rfn/add.d.ts → add.d.ts} +1 -1
- package/{rfn/add.js → add.js} +1 -1
- package/api.d.ts +1 -1
- package/{iter/as-iterable.d.ts → as-iterable.d.ts} +0 -0
- package/{iter/as-iterable.js → as-iterable.js} +0 -0
- package/{rfn/assoc-map.d.ts → assoc-map.d.ts} +1 -1
- package/{rfn/assoc-map.js → assoc-map.js} +1 -1
- package/{rfn/assoc-obj.d.ts → assoc-obj.d.ts} +1 -1
- package/{rfn/assoc-obj.js → assoc-obj.js} +1 -1
- package/{rfn/auto-obj.d.ts → auto-obj.d.ts} +1 -1
- package/{rfn/auto-obj.js → auto-obj.js} +1 -1
- package/{xform/benchmark.d.ts → benchmark.d.ts} +1 -1
- package/{xform/benchmark.js → benchmark.js} +3 -3
- package/{xform/cat.d.ts → cat.d.ts} +1 -1
- package/{xform/cat.js → cat.js} +2 -2
- package/{iter/choices.d.ts → choices.d.ts} +1 -1
- package/{iter/choices.js → choices.js} +4 -3
- package/{func/comp.d.ts → comp.d.ts} +1 -1
- package/{func/comp.js → comp.js} +2 -2
- package/{func/compr.d.ts → compr.d.ts} +1 -1
- package/{func/compr.js → compr.js} +0 -0
- package/{iter/concat.d.ts → concat.d.ts} +0 -0
- package/{iter/concat.js → concat.js} +1 -1
- package/{rfn/conj.d.ts → conj.d.ts} +1 -1
- package/{rfn/conj.js → conj.js} +1 -1
- package/{xform/converge.d.ts → converge.d.ts} +2 -2
- package/{xform/converge.js → converge.js} +5 -5
- package/{xform/convolve.d.ts → convolve.d.ts} +1 -1
- package/{xform/convolve.js → convolve.js} +8 -8
- package/{rfn/count.d.ts → count.d.ts} +1 -1
- package/{rfn/count.js → count.js} +1 -1
- package/{iter/curve.d.ts → curve.d.ts} +0 -0
- package/{iter/curve.js → curve.js} +0 -0
- package/{iter/cycle.d.ts → cycle.d.ts} +0 -0
- package/{iter/cycle.js → cycle.js} +0 -0
- package/{xform/dedupe.d.ts → dedupe.d.ts} +2 -2
- package/{xform/dedupe.js → dedupe.js} +4 -4
- package/{func/deep-transform.d.ts → deep-transform.d.ts} +2 -2
- package/{func/deep-transform.js → deep-transform.js} +3 -3
- package/{xform/delayed.d.ts → delayed.d.ts} +1 -1
- package/{xform/delayed.js → delayed.js} +2 -2
- package/{xform/distinct.d.ts → distinct.d.ts} +1 -1
- package/{xform/distinct.js → distinct.js} +3 -3
- package/{rfn/div.d.ts → div.d.ts} +1 -1
- package/{rfn/div.js → div.js} +1 -1
- package/{xform/drop-nth.d.ts → drop-nth.d.ts} +1 -1
- package/{xform/drop-nth.js → drop-nth.js} +4 -4
- package/{xform/drop-while.d.ts → drop-while.d.ts} +1 -1
- package/{xform/drop-while.js → drop-while.js} +3 -3
- package/{xform/drop.d.ts → drop.d.ts} +1 -1
- package/{xform/drop.js → drop.js} +3 -3
- package/{iter/dup.d.ts → dup.d.ts} +0 -0
- package/dup.js +11 -0
- package/{xform/duplicate.d.ts → duplicate.d.ts} +1 -1
- package/{xform/duplicate.js → duplicate.js} +4 -4
- package/ensure.d.ts +3 -0
- package/{internal/ensure.js → ensure.js} +1 -1
- package/{rfn/every.d.ts → every.d.ts} +1 -1
- package/{rfn/every.js → every.js} +2 -2
- package/{iter/extend-sides.d.ts → extend-sides.d.ts} +0 -0
- package/{iter/extend-sides.js → extend-sides.js} +2 -2
- package/{rfn/fill.d.ts → fill.d.ts} +1 -1
- package/{rfn/fill.js → fill.js} +1 -1
- package/{xform/filter-fuzzy.d.ts → filter-fuzzy.d.ts} +1 -1
- package/{xform/filter-fuzzy.js → filter-fuzzy.js} +4 -4
- package/{xform/filter.d.ts → filter.d.ts} +1 -1
- package/{xform/filter.js → filter.js} +3 -3
- package/{xform/flatten-with.d.ts → flatten-with.d.ts} +1 -1
- package/{xform/flatten-with.js → flatten-with.js} +5 -4
- package/{xform/flatten.d.ts → flatten.d.ts} +1 -1
- package/flatten.js +5 -0
- package/{rfn/frequencies.d.ts → frequencies.d.ts} +1 -1
- package/frequencies.js +8 -0
- package/{rfn/group-binary.d.ts → group-binary.d.ts} +1 -1
- package/{rfn/group-binary.js → group-binary.js} +3 -3
- package/{rfn/group-by-map.d.ts → group-by-map.d.ts} +1 -1
- package/{rfn/group-by-map.js → group-by-map.js} +2 -2
- package/{rfn/group-by-obj.d.ts → group-by-obj.d.ts} +1 -1
- package/{rfn/group-by-obj.js → group-by-obj.js} +2 -2
- package/index.d.ts +145 -144
- package/index.js +149 -144
- package/{xform/indexed.d.ts → indexed.d.ts} +1 -1
- package/{xform/indexed.js → indexed.js} +3 -3
- package/{xform/interleave.d.ts → interleave.d.ts} +1 -1
- package/{xform/interleave.js → interleave.js} +4 -4
- package/internal/drain.d.ts +1 -1
- package/internal/drain.js +1 -1
- package/internal/group-opts.d.ts +1 -1
- package/internal/group-opts.js +6 -3
- package/internal/mathop.d.ts +1 -1
- package/internal/mathop.js +1 -1
- package/internal/sort-opts.d.ts +1 -1
- package/internal/sort-opts.js +6 -3
- package/{xform/interpolate-hermite.d.ts → interpolate-hermite.d.ts} +1 -1
- package/{xform/interpolate-hermite.js → interpolate-hermite.js} +2 -2
- package/{xform/interpolate-linear.d.ts → interpolate-linear.d.ts} +1 -1
- package/{xform/interpolate-linear.js → interpolate-linear.js} +2 -2
- package/{xform/interpolate.d.ts → interpolate.d.ts} +1 -1
- package/interpolate.js +12 -0
- package/{xform/interpose.d.ts → interpose.d.ts} +1 -1
- package/{xform/interpose.js → interpose.js} +4 -4
- package/{iter/iterate.d.ts → iterate.d.ts} +0 -0
- package/{iter/iterate.js → iterate.js} +0 -0
- package/iterator.d.ts +3 -3
- package/iterator.js +6 -6
- package/{func/juxtr.d.ts → juxtr.d.ts} +1 -1
- package/{func/juxtr.js → juxtr.js} +1 -1
- package/{xform/keep.d.ts → keep.d.ts} +7 -1
- package/{xform/keep.js → keep.js} +4 -4
- package/{iter/key-permutations.d.ts → key-permutations.d.ts} +0 -0
- package/{iter/key-permutations.js → key-permutations.js} +6 -6
- package/{func/key-selector.d.ts → key-selector.d.ts} +0 -0
- package/{func/key-selector.js → key-selector.js} +1 -1
- package/{iter/keys.d.ts → keys.d.ts} +0 -0
- package/{iter/keys.js → keys.js} +0 -0
- package/{xform/labeled.d.ts → labeled.d.ts} +1 -1
- package/labeled.js +9 -0
- package/{rfn/last.d.ts → last.d.ts} +1 -1
- package/{rfn/last.js → last.js} +2 -2
- package/{iter/line.d.ts → line.d.ts} +0 -0
- package/{iter/line.js → line.js} +2 -2
- package/{func/lookup.d.ts → lookup.d.ts} +0 -0
- package/{func/lookup.js → lookup.js} +0 -0
- package/{xform/map-deep.d.ts → map-deep.d.ts} +1 -1
- package/map-deep.js +9 -0
- package/{xform/map-indexed.d.ts → map-indexed.d.ts} +1 -1
- package/{xform/map-indexed.js → map-indexed.js} +3 -3
- package/{xform/map-keys.d.ts → map-keys.d.ts} +1 -1
- package/{xform/map-keys.js → map-keys.js} +3 -3
- package/{xform/map-nth.d.ts → map-nth.d.ts} +1 -1
- package/{xform/map-nth.js → map-nth.js} +3 -3
- package/{xform/map-vals.d.ts → map-vals.d.ts} +1 -1
- package/{xform/map-vals.js → map-vals.js} +3 -3
- package/{xform/map.d.ts → map.d.ts} +1 -1
- package/{xform/map.js → map.js} +3 -3
- package/{xform/mapcat-indexed.d.ts → mapcat-indexed.d.ts} +1 -1
- package/mapcat-indexed.js +8 -0
- package/{xform/mapcat.d.ts → mapcat.d.ts} +1 -1
- package/mapcat.js +8 -0
- package/{xform/match-first.d.ts → match-first.d.ts} +1 -1
- package/match-first.js +10 -0
- package/{xform/match-last.d.ts → match-last.d.ts} +1 -1
- package/match-last.js +10 -0
- package/{rfn/max-compare.d.ts → max-compare.d.ts} +1 -1
- package/{rfn/max-compare.js → max-compare.js} +2 -2
- package/{rfn/max-mag.d.ts → max-mag.d.ts} +1 -1
- package/{rfn/max-mag.js → max-mag.js} +1 -1
- package/{rfn/max.d.ts → max.d.ts} +1 -1
- package/{rfn/max.js → max.js} +1 -1
- package/{rfn/mean.d.ts → mean.d.ts} +1 -1
- package/{rfn/mean.js → mean.js} +1 -1
- package/{rfn/min-compare.d.ts → min-compare.d.ts} +1 -1
- package/{rfn/min-compare.js → min-compare.js} +2 -2
- package/{rfn/min-mag.d.ts → min-mag.d.ts} +1 -1
- package/{rfn/min-mag.js → min-mag.js} +1 -1
- package/{rfn/min-max.d.ts → min-max.d.ts} +1 -1
- package/{rfn/min-max.js → min-max.js} +3 -3
- package/{rfn/min.d.ts → min.d.ts} +1 -1
- package/{rfn/min.js → min.js} +1 -1
- package/{xform/moving-average.d.ts → moving-average.d.ts} +1 -1
- package/{xform/moving-average.js → moving-average.js} +4 -4
- package/{xform/moving-median.d.ts → moving-median.d.ts} +1 -1
- package/{xform/moving-median.js → moving-median.js} +6 -6
- package/{rfn/mul.d.ts → mul.d.ts} +1 -1
- package/{rfn/mul.js → mul.js} +1 -1
- package/{xform/multiplex-obj.d.ts → multiplex-obj.d.ts} +1 -1
- package/{xform/multiplex-obj.js → multiplex-obj.js} +5 -5
- package/{xform/multiplex.d.ts → multiplex.d.ts} +1 -1
- package/multiplex.js +6 -0
- package/{xform/noop.d.ts → noop.d.ts} +1 -1
- package/{xform/noop.js → noop.js} +0 -0
- package/{rfn/norm-count.d.ts → norm-count.d.ts} +1 -1
- package/{rfn/norm-count.js → norm-count.js} +1 -1
- package/{rfn/norm-frequencies-auto.d.ts → norm-frequencies-auto.d.ts} +1 -1
- package/{rfn/norm-frequencies-auto.js → norm-frequencies-auto.js} +2 -2
- package/{rfn/norm-frequencies.d.ts → norm-frequencies.d.ts} +1 -1
- package/{rfn/norm-frequencies.js → norm-frequencies.js} +4 -4
- package/{iter/norm-range.d.ts → norm-range.d.ts} +0 -0
- package/{iter/norm-range.js → norm-range.js} +1 -1
- package/package.json +470 -34
- package/{xform/pad-last.d.ts → pad-last.d.ts} +1 -1
- package/{xform/pad-last.js → pad-last.js} +3 -3
- package/{iter/pad-sides.d.ts → pad-sides.d.ts} +0 -0
- package/{iter/pad-sides.js → pad-sides.js} +2 -2
- package/{xform/page.d.ts → page.d.ts} +1 -1
- package/page.js +8 -0
- package/{iter/pairs.d.ts → pairs.d.ts} +0 -0
- package/{iter/pairs.js → pairs.js} +0 -0
- package/{iter/palindrome.d.ts → palindrome.d.ts} +0 -0
- package/palindrome.js +13 -0
- package/{xform/partition-by.d.ts → partition-by.d.ts} +2 -2
- package/{xform/partition-by.js → partition-by.js} +4 -4
- package/{xform/partition-of.d.ts → partition-of.d.ts} +1 -1
- package/{xform/partition-of.js → partition-of.js} +3 -3
- package/{xform/partition-sort.d.ts → partition-sort.d.ts} +1 -1
- package/partition-sort.js +13 -0
- package/{xform/partition-sync.d.ts → partition-sync.d.ts} +1 -1
- package/{xform/partition-sync.js → partition-sync.js} +15 -8
- package/{xform/partition-time.d.ts → partition-time.d.ts} +1 -1
- package/{xform/partition-time.js → partition-time.js} +3 -3
- package/{xform/partition-when.d.ts → partition-when.d.ts} +1 -1
- package/{xform/partition-when.js → partition-when.js} +3 -3
- package/{xform/partition.d.ts → partition.d.ts} +1 -1
- package/{xform/partition.js → partition.js} +2 -2
- package/{xform/peek.d.ts → peek.d.ts} +1 -1
- package/peek.js +5 -0
- package/{iter/permutations.d.ts → permutations.d.ts} +0 -0
- package/{iter/permutations.js → permutations.js} +3 -3
- package/{xform/pluck.d.ts → pluck.d.ts} +1 -1
- package/pluck.js +8 -0
- package/push-copy.d.ts +3 -0
- package/{rfn/push-copy.js → push-copy.js} +1 -1
- package/{rfn/push-sort.d.ts → push-sort.d.ts} +1 -1
- package/{rfn/push-sort.js → push-sort.js} +1 -1
- package/{rfn/push.d.ts → push.d.ts} +1 -1
- package/{rfn/push.js → push.js} +1 -1
- package/{iter/range-nd.d.ts → range-nd.d.ts} +0 -0
- package/{iter/range-nd.js → range-nd.js} +4 -4
- package/{iter/range.d.ts → range.d.ts} +2 -2
- package/{iter/range.js → range.js} +1 -1
- package/{iter/range2d.d.ts → range2d.d.ts} +0 -0
- package/{iter/range2d.js → range2d.js} +2 -2
- package/{iter/range3d.d.ts → range3d.d.ts} +0 -0
- package/{iter/range3d.js → range3d.js} +2 -2
- package/reduce.d.ts +1 -1
- package/reduce.js +5 -3
- package/{rfn/reductions.d.ts → reductions.d.ts} +1 -1
- package/{rfn/reductions.js → reductions.js} +2 -2
- package/{xform/rename.d.ts → rename.d.ts} +1 -1
- package/{xform/rename.js → rename.js} +8 -8
- package/renamer.d.ts +9 -0
- package/{func/renamer.js → renamer.js} +6 -0
- package/{iter/repeat.d.ts → repeat.d.ts} +0 -0
- package/{iter/repeat.js → repeat.js} +0 -0
- package/{iter/repeatedly.d.ts → repeatedly.d.ts} +0 -0
- package/{iter/repeatedly.js → repeatedly.js} +0 -0
- package/{iter/reverse.d.ts → reverse.d.ts} +0 -0
- package/{iter/reverse.js → reverse.js} +1 -1
- package/run.d.ts +2 -2
- package/run.js +2 -2
- package/{xform/sample.d.ts → sample.d.ts} +2 -2
- package/{xform/sample.js → sample.js} +4 -4
- package/{xform/scan.d.ts → scan.d.ts} +1 -1
- package/{xform/scan.js → scan.js} +3 -3
- package/{xform/select-keys.d.ts → select-keys.d.ts} +1 -1
- package/select-keys.js +9 -0
- package/{xform/side-effect.d.ts → side-effect.d.ts} +1 -1
- package/{xform/side-effect.js → side-effect.js} +1 -1
- package/{xform/sliding-window.d.ts → sliding-window.d.ts} +2 -2
- package/{xform/sliding-window.js → sliding-window.js} +4 -4
- package/{rfn/some.d.ts → some.d.ts} +1 -1
- package/{rfn/some.js → some.js} +2 -2
- package/{iter/sorted-keys.d.ts → sorted-keys.d.ts} +0 -0
- package/{iter/sorted-keys.js → sorted-keys.js} +1 -1
- package/step.d.ts +1 -1
- package/step.js +3 -3
- package/{rfn/str.d.ts → str.d.ts} +1 -1
- package/{rfn/str.js → str.js} +1 -1
- package/{xform/stream-shuffle.d.ts → stream-shuffle.d.ts} +1 -1
- package/{xform/stream-shuffle.js → stream-shuffle.js} +4 -4
- package/{xform/stream-sort.d.ts → stream-sort.d.ts} +1 -1
- package/{xform/stream-sort.js → stream-sort.js} +5 -5
- package/{xform/struct.d.ts → struct.d.ts} +1 -1
- package/{xform/struct.js → struct.js} +7 -7
- package/{rfn/sub.d.ts → sub.d.ts} +1 -1
- package/{rfn/sub.js → sub.js} +1 -1
- package/{xform/swizzle.d.ts → swizzle.d.ts} +1 -1
- package/swizzle.js +9 -0
- package/{iter/symmetric.d.ts → symmetric.d.ts} +0 -0
- package/{iter/symmetric.js → symmetric.js} +0 -0
- package/{xform/take-last.d.ts → take-last.d.ts} +1 -1
- package/{xform/take-last.js → take-last.js} +3 -3
- package/{xform/take-nth.d.ts → take-nth.d.ts} +1 -1
- package/{xform/take-nth.js → take-nth.js} +4 -4
- package/{xform/take-while.d.ts → take-while.d.ts} +1 -1
- package/{xform/take-while.js → take-while.js} +4 -4
- package/{xform/take.d.ts → take.d.ts} +1 -1
- package/{xform/take.js → take.js} +4 -4
- package/{xform/throttle-time.d.ts → throttle-time.d.ts} +1 -1
- package/{xform/throttle-time.js → throttle-time.js} +3 -3
- package/{xform/throttle.d.ts → throttle.d.ts} +1 -1
- package/{xform/throttle.js → throttle.js} +3 -3
- package/{xform/toggle.d.ts → toggle.d.ts} +1 -1
- package/{xform/toggle.js → toggle.js} +2 -2
- package/trace.d.ts +3 -0
- package/{xform/trace.js → trace.js} +1 -1
- package/transduce.d.ts +1 -1
- package/transduce.js +4 -4
- package/{iter/tween.d.ts → tween.d.ts} +0 -0
- package/{iter/tween.js → tween.js} +2 -2
- package/{iter/vals.d.ts → vals.d.ts} +0 -0
- package/{iter/vals.js → vals.js} +0 -0
- package/{xform/word-wrap.d.ts → word-wrap.d.ts} +1 -1
- package/{xform/word-wrap.js → word-wrap.js} +8 -4
- package/{iter/wrap-sides.d.ts → wrap-sides.d.ts} +0 -0
- package/{iter/wrap-sides.js → wrap-sides.js} +3 -3
- package/{iter/zip.d.ts → zip.d.ts} +0 -0
- package/{iter/zip.js → zip.js} +0 -0
- package/func/renamer.d.ts +0 -3
- package/internal/ensure.d.ts +0 -3
- package/iter/dup.js +0 -10
- package/iter/palindrome.js +0 -12
- package/lib/index.js +0 -2228
- package/lib/index.js.map +0 -1
- package/lib/index.umd.js +0 -1
- package/lib/index.umd.js.map +0 -1
- package/rfn/frequencies.js +0 -8
- package/rfn/push-copy.d.ts +0 -3
- package/xform/flatten.js +0 -5
- package/xform/interpolate.js +0 -13
- package/xform/labeled.js +0 -8
- package/xform/map-deep.js +0 -9
- package/xform/mapcat-indexed.js +0 -8
- package/xform/mapcat.js +0 -8
- package/xform/match-first.js +0 -10
- package/xform/match-last.js +0 -10
- package/xform/multiplex.js +0 -6
- package/xform/page.js +0 -8
- package/xform/partition-sort.js +0 -13
- package/xform/peek.js +0 -5
- package/xform/pluck.js +0 -8
- package/xform/select-keys.js +0 -9
- package/xform/swizzle.js +0 -9
- package/xform/trace.d.ts +0 -3
package/{rfn/add.js → add.js}
RENAMED
package/api.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Comparator, Fn, IObjectOf } from "@thi.ng/api";
|
|
2
|
-
import type { Reduced } from "./reduced";
|
|
2
|
+
import type { Reduced } from "./reduced.js";
|
|
3
3
|
export declare type Transducer<A, B> = (rfn: Reducer<any, B>) => Reducer<any, A>;
|
|
4
4
|
export declare type TxLike<A, B> = Transducer<A, B> | IXform<A, B>;
|
|
5
5
|
export declare type ReductionFn<A, B> = (acc: A, x: B) => A | Reduced<A>;
|
|
File without changes
|
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IObjectOf } from "@thi.ng/api";
|
|
2
|
-
import type { Reducer } from "
|
|
2
|
+
import type { Reducer } from "./api.js";
|
|
3
3
|
/**
|
|
4
4
|
* Reducer accepting values of any type and assigning them to auto-labeled keys
|
|
5
5
|
* in an object. Keys consist of given `prefix` and monotonically increasing ID.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { isIterable } from "@thi.ng/checks";
|
|
2
|
-
import { compR } from "
|
|
3
|
-
import { iterator1 } from "
|
|
1
|
+
import { isIterable } from "@thi.ng/checks/is-iterable";
|
|
2
|
+
import { compR } from "./compr.js";
|
|
3
|
+
import { iterator1 } from "./iterator.js";
|
|
4
4
|
export function benchmark(src) {
|
|
5
5
|
return isIterable(src)
|
|
6
6
|
? iterator1(benchmark(), src)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Nullable } from "@thi.ng/api";
|
|
2
|
-
import type { Transducer } from "
|
|
2
|
+
import type { Transducer } from "./api.js";
|
|
3
3
|
/**
|
|
4
4
|
* Transducer to concatenate iterable values. Iterates over each input
|
|
5
5
|
* and emits individual values down stream, therefore removing one level
|
package/{xform/cat.js → cat.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { compR } from "
|
|
2
|
-
import { ensureReduced, isReduced, unreduced } from "
|
|
1
|
+
import { compR } from "./compr.js";
|
|
2
|
+
import { ensureReduced, isReduced, unreduced } from "./reduced.js";
|
|
3
3
|
/**
|
|
4
4
|
* Transducer to concatenate iterable values. Iterates over each input
|
|
5
5
|
* and emits individual values down stream, therefore removing one level
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ensureArray } from "@thi.ng/arrays";
|
|
2
|
-
import { SYSTEM
|
|
3
|
-
import {
|
|
1
|
+
import { ensureArray } from "@thi.ng/arrays/ensure-array";
|
|
2
|
+
import { SYSTEM } from "@thi.ng/random/system";
|
|
3
|
+
import { weightedRandom } from "@thi.ng/random/weighted-random";
|
|
4
|
+
import { repeatedly } from "./repeatedly.js";
|
|
4
5
|
/**
|
|
5
6
|
* Returns an infinite iterator of random choices and their (optional)
|
|
6
7
|
* weights. If `weights` is given, it must have at least the same size
|
package/{func/comp.js → comp.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { comp as _comp } from "@thi.ng/compose";
|
|
2
|
-
import { ensureTransducer } from "
|
|
1
|
+
import { comp as _comp } from "@thi.ng/compose/comp";
|
|
2
|
+
import { ensureTransducer } from "./ensure.js";
|
|
3
3
|
export function comp(...fns) {
|
|
4
4
|
fns = fns.map(ensureTransducer);
|
|
5
5
|
return _comp.apply(null, fns);
|
|
File without changes
|
|
File without changes
|
package/{rfn/conj.js → conj.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Predicate2 } from "@thi.ng/api";
|
|
2
|
-
import type { Transducer } from "
|
|
1
|
+
import type { Predicate2 } from "@thi.ng/api";
|
|
2
|
+
import type { Transducer } from "./api.js";
|
|
3
3
|
/**
|
|
4
4
|
* Transducer which for each input `x` (apart from the very first one)
|
|
5
5
|
* applies given predicate `pred` to previous input and `x`. Only passes
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { SEMAPHORE } from "@thi.ng/api";
|
|
2
|
-
import { compR } from "
|
|
3
|
-
import {
|
|
4
|
-
import { ensureReduced } from "
|
|
1
|
+
import { SEMAPHORE } from "@thi.ng/api/api";
|
|
2
|
+
import { compR } from "./compr.js";
|
|
3
|
+
import { __iter } from "./iterator.js";
|
|
4
|
+
import { ensureReduced } from "./reduced.js";
|
|
5
5
|
export function converge(...args) {
|
|
6
|
-
return (
|
|
6
|
+
return (__iter(converge, args) ||
|
|
7
7
|
((rfn) => {
|
|
8
8
|
const r = rfn[2];
|
|
9
9
|
const pred = args[0];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Fn0 } from "@thi.ng/api";
|
|
2
|
-
import type { Reducer, Transducer } from "
|
|
2
|
+
import type { Reducer, Transducer } from "./api.js";
|
|
3
3
|
export declare type ConvolutionKernel1D = [number, number][];
|
|
4
4
|
export declare type ConvolutionKernel2D = [number, [number, number]][];
|
|
5
5
|
export declare type ConvolutionKernel3D = [number, [number, number, number]][];
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { illegalArgs } from "@thi.ng/errors";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { transduce } from "
|
|
8
|
-
import {
|
|
1
|
+
import { illegalArgs } from "@thi.ng/errors/illegal-arguments";
|
|
2
|
+
import { add } from "./add.js";
|
|
3
|
+
import { iterator1 } from "./iterator.js";
|
|
4
|
+
import { map } from "./map.js";
|
|
5
|
+
import { range } from "./range.js";
|
|
6
|
+
import { range2d } from "./range2d.js";
|
|
7
|
+
import { transduce } from "./transduce.js";
|
|
8
|
+
import { zip } from "./zip.js";
|
|
9
9
|
export const buildKernel1d = (weights, w) => {
|
|
10
10
|
const w2 = w >> 1;
|
|
11
11
|
return [...zip(weights, range(-w2, w2 + 1))];
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Predicate2 } from "@thi.ng/api";
|
|
2
|
-
import type { Transducer } from "
|
|
1
|
+
import type { Predicate2 } from "@thi.ng/api";
|
|
2
|
+
import type { Transducer } from "./api.js";
|
|
3
3
|
export declare function dedupe<T>(equiv?: Predicate2<T>): Transducer<T, T>;
|
|
4
4
|
export declare function dedupe<T>(src: Iterable<T>): IterableIterator<T>;
|
|
5
5
|
export declare function dedupe<T>(equiv: Predicate2<T>, src: Iterable<T>): IterableIterator<T>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { SEMAPHORE } from "@thi.ng/api";
|
|
2
|
-
import { compR } from "
|
|
3
|
-
import {
|
|
1
|
+
import { SEMAPHORE } from "@thi.ng/api/api";
|
|
2
|
+
import { compR } from "./compr.js";
|
|
3
|
+
import { __iter } from "./iterator.js";
|
|
4
4
|
export function dedupe(...args) {
|
|
5
|
-
return (
|
|
5
|
+
return (__iter(dedupe, args) ||
|
|
6
6
|
((rfn) => {
|
|
7
7
|
const r = rfn[2];
|
|
8
8
|
const equiv = args[0];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TransformSpec } from "
|
|
1
|
+
import type { TransformSpec } from "./api.js";
|
|
2
2
|
/**
|
|
3
3
|
* Higher-order deep object transformer used by {@link (mapDeep:1)}.
|
|
4
4
|
* Accepts a nested `spec` array reflecting same key structure as the
|
|
@@ -56,7 +56,7 @@ import type { TransformSpec } from "../api";
|
|
|
56
56
|
* // [ "h1", "Hello world" ],
|
|
57
57
|
* // [ "div.meta",
|
|
58
58
|
* // [ "a", { href: "mailto:a@.b.com" }, "Alice" ],
|
|
59
|
-
* // "
|
|
59
|
+
* // "./2/2003, 12:34:56 PM)" ],
|
|
60
60
|
* // "Ratione necessitatibus doloremque itaque." ]
|
|
61
61
|
* ```
|
|
62
62
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isFunction } from "@thi.ng/checks";
|
|
1
|
+
import { isFunction } from "@thi.ng/checks/is-function";
|
|
2
2
|
/**
|
|
3
3
|
* Higher-order deep object transformer used by {@link (mapDeep:1)}.
|
|
4
4
|
* Accepts a nested `spec` array reflecting same key structure as the
|
|
@@ -56,7 +56,7 @@ import { isFunction } from "@thi.ng/checks";
|
|
|
56
56
|
* // [ "h1", "Hello world" ],
|
|
57
57
|
* // [ "div.meta",
|
|
58
58
|
* // [ "a", { href: "mailto:a@.b.com" }, "Alice" ],
|
|
59
|
-
* // "
|
|
59
|
+
* // "./2/2003, 12:34:56 PM)" ],
|
|
60
60
|
* // "Ratione necessitatibus doloremque itaque." ]
|
|
61
61
|
* ```
|
|
62
62
|
*
|
|
@@ -68,7 +68,7 @@ export const deepTransform = (spec) => {
|
|
|
68
68
|
}
|
|
69
69
|
const mapfns = Object.keys(spec[1] || {}).reduce((acc, k) => ((acc[k] = deepTransform(spec[1][k])), acc), {});
|
|
70
70
|
return (x) => {
|
|
71
|
-
const res =
|
|
71
|
+
const res = { ...x };
|
|
72
72
|
for (let k in mapfns) {
|
|
73
73
|
res[k] = mapfns[k](res[k]);
|
|
74
74
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { delayed as _delayed } from "@thi.ng/compose";
|
|
2
|
-
import { map } from "./map";
|
|
1
|
+
import { delayed as _delayed } from "@thi.ng/compose/delayed";
|
|
2
|
+
import { map } from "./map.js";
|
|
3
3
|
/**
|
|
4
4
|
* Yields transducer which wraps incoming values in promises, which each
|
|
5
5
|
* resolve after specified delay time (in ms).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { compR } from "
|
|
2
|
-
import {
|
|
1
|
+
import { compR } from "./compr.js";
|
|
2
|
+
import { __iter } from "./iterator.js";
|
|
3
3
|
export function distinct(...args) {
|
|
4
|
-
return (
|
|
4
|
+
return (__iter(distinct, args) ||
|
|
5
5
|
((rfn) => {
|
|
6
6
|
const r = rfn[2];
|
|
7
7
|
const opts = (args[0] || {});
|
package/{rfn/div.js → div.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Transducer } from "
|
|
1
|
+
import type { Transducer } from "./api.js";
|
|
2
2
|
export declare function dropNth<T>(n: number): Transducer<T, T>;
|
|
3
3
|
export declare function dropNth<T>(n: number, src: Iterable<T>): IterableIterator<T>;
|
|
4
4
|
//# sourceMappingURL=drop-nth.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { isIterable } from "@thi.ng/checks";
|
|
2
|
-
import { clamp0 } from "@thi.ng/math";
|
|
3
|
-
import { iterator1 } from "
|
|
4
|
-
import { throttle } from "./throttle";
|
|
1
|
+
import { isIterable } from "@thi.ng/checks/is-iterable";
|
|
2
|
+
import { clamp0 } from "@thi.ng/math/interval";
|
|
3
|
+
import { iterator1 } from "./iterator.js";
|
|
4
|
+
import { throttle } from "./throttle.js";
|
|
5
5
|
export function dropNth(n, src) {
|
|
6
6
|
if (isIterable(src)) {
|
|
7
7
|
return iterator1(dropNth(n), src);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Predicate } from "@thi.ng/api";
|
|
2
|
-
import type { Transducer } from "
|
|
2
|
+
import type { Transducer } from "./api.js";
|
|
3
3
|
export declare function dropWhile<T>(pred?: Predicate<T>): Transducer<T, T>;
|
|
4
4
|
export declare function dropWhile<T>(src: Iterable<T>): IterableIterator<T>;
|
|
5
5
|
export declare function dropWhile<T>(pred: Predicate<T>, src: Iterable<T>): IterableIterator<T>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { compR } from "
|
|
2
|
-
import {
|
|
1
|
+
import { compR } from "./compr.js";
|
|
2
|
+
import { __iter } from "./iterator.js";
|
|
3
3
|
export function dropWhile(...args) {
|
|
4
|
-
return (
|
|
4
|
+
return (__iter(dropWhile, args) ||
|
|
5
5
|
((rfn) => {
|
|
6
6
|
const r = rfn[2];
|
|
7
7
|
const pred = args[0];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Transducer } from "
|
|
1
|
+
import type { Transducer } from "./api.js";
|
|
2
2
|
export declare function drop<T>(n: number): Transducer<T, T>;
|
|
3
3
|
export declare function drop<T>(n: number, src: Iterable<T>): IterableIterator<T>;
|
|
4
4
|
//# sourceMappingURL=drop.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { isIterable } from "@thi.ng/checks";
|
|
2
|
-
import { compR } from "
|
|
3
|
-
import { iterator1 } from "
|
|
1
|
+
import { isIterable } from "@thi.ng/checks/is-iterable";
|
|
2
|
+
import { compR } from "./compr.js";
|
|
3
|
+
import { iterator1 } from "./iterator.js";
|
|
4
4
|
export function drop(n, src) {
|
|
5
5
|
return isIterable(src)
|
|
6
6
|
? iterator1(drop(n), src)
|
|
File without changes
|
package/dup.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ensureArray } from "@thi.ng/arrays/ensure-array";
|
|
2
|
+
import { isArray } from "@thi.ng/checks/is-array";
|
|
3
|
+
import { isString } from "@thi.ng/checks/is-string";
|
|
4
|
+
import { concat } from "./concat.js";
|
|
5
|
+
export function dup(x) {
|
|
6
|
+
return isString(x)
|
|
7
|
+
? x + x
|
|
8
|
+
: isArray(x)
|
|
9
|
+
? x.concat(x)
|
|
10
|
+
: ((x = ensureArray(x)), concat(x, x));
|
|
11
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Transducer } from "
|
|
1
|
+
import type { Transducer } from "./api.js";
|
|
2
2
|
export declare function duplicate<T>(n?: number): Transducer<T, T>;
|
|
3
3
|
export declare function duplicate<T>(n: number, src: Iterable<T>): IterableIterator<T>;
|
|
4
4
|
//# sourceMappingURL=duplicate.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { isIterable } from "@thi.ng/checks";
|
|
2
|
-
import { compR } from "
|
|
3
|
-
import { iterator } from "
|
|
4
|
-
import { isReduced } from "
|
|
1
|
+
import { isIterable } from "@thi.ng/checks/is-iterable";
|
|
2
|
+
import { compR } from "./compr.js";
|
|
3
|
+
import { iterator } from "./iterator.js";
|
|
4
|
+
import { isReduced } from "./reduced.js";
|
|
5
5
|
export function duplicate(n = 1, src) {
|
|
6
6
|
return isIterable(src)
|
|
7
7
|
? iterator(duplicate(n), src)
|
package/ensure.d.ts
ADDED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { implementsFunction } from "@thi.ng/checks";
|
|
1
|
+
import { implementsFunction } from "@thi.ng/checks/implements-function";
|
|
2
2
|
export const ensureTransducer = (x) => implementsFunction(x, "xform") ? x.xform() : x;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Predicate } from "@thi.ng/api";
|
|
2
|
-
import type { Reducer } from "
|
|
2
|
+
import type { Reducer } from "./api.js";
|
|
3
3
|
/**
|
|
4
4
|
* Reducer which applies optional `pred` function to each value and
|
|
5
5
|
* terminates early if the predicate returned a falsy result. If no
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $$reduce, reducer } from "
|
|
2
|
-
import { reduced } from "
|
|
1
|
+
import { $$reduce, reducer } from "./reduce.js";
|
|
2
|
+
import { reduced } from "./reduced.js";
|
|
3
3
|
export function every(...args) {
|
|
4
4
|
const res = $$reduce(every, args);
|
|
5
5
|
if (res !== undefined) {
|
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SEMAPHORE } from "@thi.ng/api";
|
|
2
|
-
import { repeat } from "./repeat";
|
|
1
|
+
import { SEMAPHORE } from "@thi.ng/api/api";
|
|
2
|
+
import { repeat } from "./repeat.js";
|
|
3
3
|
/**
|
|
4
4
|
* Yields iterator of given iterable which repeats the first and/or last
|
|
5
5
|
* value(s) `numLeft`/`numRight` times (default: 1).
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { NumericArray } from "@thi.ng/api";
|
|
2
|
-
import type { Reducer } from "
|
|
2
|
+
import type { Reducer } from "./api.js";
|
|
3
3
|
/**
|
|
4
4
|
* Reducer which starts filling array with results from given `start`
|
|
5
5
|
* index (default: 0). Use {@link (fillN:1)} for typed array targets
|
package/{rfn/fill.js → fill.js}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { fuzzyMatch } from "@thi.ng/arrays";
|
|
2
|
-
import {
|
|
3
|
-
import { filter } from "./filter";
|
|
1
|
+
import { fuzzyMatch } from "@thi.ng/arrays/fuzzy-match";
|
|
2
|
+
import { __iter } from "./iterator.js";
|
|
3
|
+
import { filter } from "./filter.js";
|
|
4
4
|
export function filterFuzzy(...args) {
|
|
5
|
-
const iter = args.length > 1 &&
|
|
5
|
+
const iter = args.length > 1 && __iter(filterFuzzy, args);
|
|
6
6
|
if (iter) {
|
|
7
7
|
return iter;
|
|
8
8
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Predicate } from "@thi.ng/api";
|
|
2
|
-
import type { Transducer } from "
|
|
2
|
+
import type { Transducer } from "./api.js";
|
|
3
3
|
export declare function filter<T>(pred: Predicate<T>): Transducer<T, T>;
|
|
4
4
|
export declare function filter<T>(pred: Predicate<T>, src: Iterable<T>): IterableIterator<T>;
|
|
5
5
|
//# sourceMappingURL=filter.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { isIterable } from "@thi.ng/checks";
|
|
2
|
-
import { compR } from "
|
|
3
|
-
import { iterator1 } from "
|
|
1
|
+
import { isIterable } from "@thi.ng/checks/is-iterable";
|
|
2
|
+
import { compR } from "./compr.js";
|
|
3
|
+
import { iterator1 } from "./iterator.js";
|
|
4
4
|
export function filter(pred, src) {
|
|
5
5
|
return isIterable(src)
|
|
6
6
|
? iterator1(filter(pred), src)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DeepArrayValue, Fn, Nullable } from "@thi.ng/api";
|
|
2
|
-
import type { Transducer } from "
|
|
2
|
+
import type { Transducer } from "./api.js";
|
|
3
3
|
declare type MaybeIterable<T> = Nullable<Iterable<T>>;
|
|
4
4
|
/**
|
|
5
5
|
* Transducer. Takes a function `fn` which will be applied to each input
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { isIterable
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { isIterable } from "@thi.ng/checks/is-iterable";
|
|
2
|
+
import { isString } from "@thi.ng/checks/is-string";
|
|
3
|
+
import { compR } from "./compr.js";
|
|
4
|
+
import { iterator } from "./iterator.js";
|
|
5
|
+
import { isReduced } from "./reduced.js";
|
|
5
6
|
export function flattenWith(fn, src) {
|
|
6
7
|
return isIterable(src)
|
|
7
8
|
? iterator(flattenWith(fn), isString(src) ? [src] : src)
|