aeon-core 0.1.0
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/README.md +87 -0
- package/dist/adapter.d.ts +17 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/asyncIterator.d.ts +23 -0
- package/dist/asyncIterator.d.ts.map +1 -0
- package/dist/behavior.d.ts +140 -0
- package/dist/behavior.d.ts.map +1 -0
- package/dist/combinators/aggregate.d.ts +27 -0
- package/dist/combinators/aggregate.d.ts.map +1 -0
- package/dist/combinators/attach.d.ts +21 -0
- package/dist/combinators/attach.d.ts.map +1 -0
- package/dist/combinators/chain.d.ts +17 -0
- package/dist/combinators/chain.d.ts.map +1 -0
- package/dist/combinators/combine.d.ts +24 -0
- package/dist/combinators/combine.d.ts.map +1 -0
- package/dist/combinators/cons.d.ts +14 -0
- package/dist/combinators/cons.d.ts.map +1 -0
- package/dist/combinators/constant.d.ts +13 -0
- package/dist/combinators/constant.d.ts.map +1 -0
- package/dist/combinators/dedupe.d.ts +16 -0
- package/dist/combinators/dedupe.d.ts.map +1 -0
- package/dist/combinators/ensure.d.ts +13 -0
- package/dist/combinators/ensure.d.ts.map +1 -0
- package/dist/combinators/error.d.ts +29 -0
- package/dist/combinators/error.d.ts.map +1 -0
- package/dist/combinators/exhaustMap.d.ts +17 -0
- package/dist/combinators/exhaustMap.d.ts.map +1 -0
- package/dist/combinators/filter.d.ts +16 -0
- package/dist/combinators/filter.d.ts.map +1 -0
- package/dist/combinators/firstLast.d.ts +23 -0
- package/dist/combinators/firstLast.d.ts.map +1 -0
- package/dist/combinators/forkJoin.d.ts +14 -0
- package/dist/combinators/forkJoin.d.ts.map +1 -0
- package/dist/combinators/fromPromise.d.ts +17 -0
- package/dist/combinators/fromPromise.d.ts.map +1 -0
- package/dist/combinators/index.d.ts +31 -0
- package/dist/combinators/index.d.ts.map +1 -0
- package/dist/combinators/map.d.ts +16 -0
- package/dist/combinators/map.d.ts.map +1 -0
- package/dist/combinators/merge.d.ts +17 -0
- package/dist/combinators/merge.d.ts.map +1 -0
- package/dist/combinators/mergeMap.d.ts +18 -0
- package/dist/combinators/mergeMap.d.ts.map +1 -0
- package/dist/combinators/orElse.d.ts +14 -0
- package/dist/combinators/orElse.d.ts.map +1 -0
- package/dist/combinators/pairwise.d.ts +14 -0
- package/dist/combinators/pairwise.d.ts.map +1 -0
- package/dist/combinators/race.d.ts +13 -0
- package/dist/combinators/race.d.ts.map +1 -0
- package/dist/combinators/retry.d.ts +18 -0
- package/dist/combinators/retry.d.ts.map +1 -0
- package/dist/combinators/scan.d.ts +15 -0
- package/dist/combinators/scan.d.ts.map +1 -0
- package/dist/combinators/share.d.ts +22 -0
- package/dist/combinators/share.d.ts.map +1 -0
- package/dist/combinators/slice.d.ts +38 -0
- package/dist/combinators/slice.d.ts.map +1 -0
- package/dist/combinators/switch.d.ts +17 -0
- package/dist/combinators/switch.d.ts.map +1 -0
- package/dist/combinators/tap.d.ts +12 -0
- package/dist/combinators/tap.d.ts.map +1 -0
- package/dist/combinators/terminal.d.ts +32 -0
- package/dist/combinators/terminal.d.ts.map +1 -0
- package/dist/combinators/time.d.ts +40 -0
- package/dist/combinators/time.d.ts.map +1 -0
- package/dist/combinators/timeout.d.ts +20 -0
- package/dist/combinators/timeout.d.ts.map +1 -0
- package/dist/combinators/traverse.d.ts +21 -0
- package/dist/combinators/traverse.d.ts.map +1 -0
- package/dist/constructors.d.ts +72 -0
- package/dist/constructors.d.ts.map +1 -0
- package/dist/fluent.d.ts +83 -0
- package/dist/fluent.d.ts.map +1 -0
- package/dist/index.cjs +3648 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +11 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3564 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/Pipe.d.ts +15 -0
- package/dist/internal/Pipe.d.ts.map +1 -0
- package/dist/internal/behavior.d.ts +62 -0
- package/dist/internal/behavior.d.ts.map +1 -0
- package/dist/internal/dispose.d.ts +16 -0
- package/dist/internal/dispose.d.ts.map +1 -0
- package/dist/internal/event.d.ts +25 -0
- package/dist/internal/event.d.ts.map +1 -0
- package/dist/internal/fusion.d.ts +32 -0
- package/dist/internal/fusion.d.ts.map +1 -0
- package/dist/internal/testScheduler.d.ts +22 -0
- package/dist/internal/testScheduler.d.ts.map +1 -0
- package/dist/multicast.d.ts +18 -0
- package/dist/multicast.d.ts.map +1 -0
- package/dist/pipe.d.ts +20 -0
- package/dist/pipe.d.ts.map +1 -0
- package/dist/pipeable.d.ts +55 -0
- package/dist/pipeable.d.ts.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export { map } from "./map.js";
|
|
2
|
+
export { filter } from "./filter.js";
|
|
3
|
+
export { tap } from "./tap.js";
|
|
4
|
+
export { constant } from "./constant.js";
|
|
5
|
+
export { scan } from "./scan.js";
|
|
6
|
+
export { reduce, observe, drain } from "./terminal.js";
|
|
7
|
+
export { take, drop, takeWhile, dropWhile, slice, until, since } from "./slice.js";
|
|
8
|
+
export { merge } from "./merge.js";
|
|
9
|
+
export { combine, zip } from "./combine.js";
|
|
10
|
+
export { switchLatest } from "./switch.js";
|
|
11
|
+
export { mergeMap } from "./mergeMap.js";
|
|
12
|
+
export { catchError, mapError, throwError } from "./error.js";
|
|
13
|
+
export { chain } from "./chain.js";
|
|
14
|
+
export { debounce, throttle, delay, bufferCount, bufferTime } from "./time.js";
|
|
15
|
+
export { traverse } from "./traverse.js";
|
|
16
|
+
export { fromPromise } from "./fromPromise.js";
|
|
17
|
+
export { retry } from "./retry.js";
|
|
18
|
+
export { share } from "./share.js";
|
|
19
|
+
export { attach } from "./attach.js";
|
|
20
|
+
export { dedupe } from "./dedupe.js";
|
|
21
|
+
export { cons } from "./cons.js";
|
|
22
|
+
export { first, last } from "./firstLast.js";
|
|
23
|
+
export { pairwise } from "./pairwise.js";
|
|
24
|
+
export { timeout, TimeoutError } from "./timeout.js";
|
|
25
|
+
export { exhaustMap } from "./exhaustMap.js";
|
|
26
|
+
export { forkJoin } from "./forkJoin.js";
|
|
27
|
+
export { orElse } from "./orElse.js";
|
|
28
|
+
export { ensure } from "./ensure.js";
|
|
29
|
+
export { race } from "./race.js";
|
|
30
|
+
export { count, all, elementAt } from "./aggregate.js";
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/combinators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* map combinator.
|
|
3
|
+
*
|
|
4
|
+
* Denotation: `map(f, e) = [(t, f(v)) | (t, v) ∈ e]`
|
|
5
|
+
*
|
|
6
|
+
* Uses pipeline fusion: map∘map is collapsed into a single map with
|
|
7
|
+
* a composed function. map∘filter becomes a filterMap node.
|
|
8
|
+
*/
|
|
9
|
+
import type { Event } from "aeon-types";
|
|
10
|
+
/**
|
|
11
|
+
* Transform each value in an Event stream.
|
|
12
|
+
*
|
|
13
|
+
* Denotation: `map(f, e) = [(t, f(v)) | (t, v) ∈ e]`
|
|
14
|
+
*/
|
|
15
|
+
export declare const map: <A, B, E>(f: (a: A) => B, event: Event<A, E>) => Event<B, E>;
|
|
16
|
+
//# sourceMappingURL=map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/combinators/map.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC;;;;GAIG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAuB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* merge combinator.
|
|
3
|
+
*
|
|
4
|
+
* Denotation: `merge(e1, e2, ...) = sort by time (e1 ++ e2 ++ ...)`
|
|
5
|
+
* Ends when ALL sources have ended.
|
|
6
|
+
*
|
|
7
|
+
* Uses monomorphic Sink/Source classes for V8 hidden class stability.
|
|
8
|
+
*/
|
|
9
|
+
import type { Event } from "aeon-types";
|
|
10
|
+
/**
|
|
11
|
+
* Merge multiple Event streams into one, interleaving values by time.
|
|
12
|
+
* Ends when all input streams have ended.
|
|
13
|
+
*
|
|
14
|
+
* Flattens nested merges: merge(a, merge(b, c)) → merge(a, b, c)
|
|
15
|
+
*/
|
|
16
|
+
export declare const merge: <A, E>(...events: Event<A, E>[]) => Event<A, E>;
|
|
17
|
+
//# sourceMappingURL=merge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/combinators/merge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAc,KAAK,EAAiC,MAAM,YAAY,CAAC;AAqFnF;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CA0BhE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mergeMap combinator.
|
|
3
|
+
*
|
|
4
|
+
* Maps each value to an inner Event and merges the results, with
|
|
5
|
+
* bounded concurrency.
|
|
6
|
+
*
|
|
7
|
+
* Uses monomorphic Sink/Source classes for V8 hidden class stability.
|
|
8
|
+
*/
|
|
9
|
+
import type { Event } from "aeon-types";
|
|
10
|
+
/**
|
|
11
|
+
* Map each value to an Event and merge the results with bounded concurrency.
|
|
12
|
+
*
|
|
13
|
+
* Denotation: `mergeMap(f, c, e) = merge(map(f, e))` with
|
|
14
|
+
* at most `c` inner streams active at any time. Values from finished
|
|
15
|
+
* inner streams are replaced by newly spawned ones from the buffer.
|
|
16
|
+
*/
|
|
17
|
+
export declare const mergeMap: <A, B, E>(f: (a: A) => Event<B, E>, concurrency: number, event: Event<A, E>) => Event<B, E>;
|
|
18
|
+
//# sourceMappingURL=mergeMap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergeMap.d.ts","sourceRoot":"","sources":["../../src/combinators/mergeMap.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAc,KAAK,EAAiC,MAAM,YAAY,CAAC;AA2HnF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAC9B,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EACxB,aAAa,MAAM,EACnB,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KACjB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAwE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* orElse combinator.
|
|
3
|
+
*
|
|
4
|
+
* Denotation: if the stream completes without emitting any values,
|
|
5
|
+
* emit a default value before ending.
|
|
6
|
+
*/
|
|
7
|
+
import type { Event } from "aeon-types";
|
|
8
|
+
/**
|
|
9
|
+
* Emit a default value if the stream completes without producing any values.
|
|
10
|
+
*
|
|
11
|
+
* Denotation: `orElse(d, e) = isEmpty(e) ? [(t_end, d)] : e`
|
|
12
|
+
*/
|
|
13
|
+
export declare const orElse: <A, E>(defaultValue: A, event: Event<A, E>) => Event<A, E>;
|
|
14
|
+
//# sourceMappingURL=orElse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orElse.d.ts","sourceRoot":"","sources":["../../src/combinators/orElse.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAc,KAAK,EAAiC,MAAM,YAAY,CAAC;AAyCnF;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CACZ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pairwise combinator.
|
|
3
|
+
*
|
|
4
|
+
* Denotation: `pairwise(e) = [(t₂, [v₁, v₂]), (t₃, [v₂, v₃]), ...]`
|
|
5
|
+
* Emits [previous, current] tuples, starting from the second event.
|
|
6
|
+
*/
|
|
7
|
+
import type { Event } from "aeon-types";
|
|
8
|
+
/**
|
|
9
|
+
* Emit [previous, current] pairs, starting from the second event.
|
|
10
|
+
*
|
|
11
|
+
* Denotation: `pairwise(e) = [(tₙ, [vₙ₋₁, vₙ]) | n >= 2]`
|
|
12
|
+
*/
|
|
13
|
+
export declare const pairwise: <A, E>(event: Event<A, E>) => Event<[A, A], E>;
|
|
14
|
+
//# sourceMappingURL=pairwise.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pairwise.d.ts","sourceRoot":"","sources":["../../src/combinators/pairwise.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAc,KAAK,EAAiC,MAAM,YAAY,CAAC;AA0CnF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CACd,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* race combinator.
|
|
3
|
+
*
|
|
4
|
+
* Denotation: the first stream to emit wins. All others are disposed.
|
|
5
|
+
* If any stream errors before the first event, the error propagates.
|
|
6
|
+
*/
|
|
7
|
+
import type { Event } from "aeon-types";
|
|
8
|
+
/**
|
|
9
|
+
* Race multiple streams: the first to emit wins, others are disposed.
|
|
10
|
+
* Subsequent events come only from the winner.
|
|
11
|
+
*/
|
|
12
|
+
export declare const race: <A, E>(...events: Event<A, E>[]) => Event<A, E>;
|
|
13
|
+
//# sourceMappingURL=race.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"race.d.ts","sourceRoot":"","sources":["../../src/combinators/race.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAc,KAAK,EAAiC,MAAM,YAAY,CAAC;AA0FnF;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CACV,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* retry combinator.
|
|
3
|
+
*
|
|
4
|
+
* Denotation: on error, re-subscribe to the source up to `maxRetries` times.
|
|
5
|
+
* Optionally delays each retry.
|
|
6
|
+
*
|
|
7
|
+
* Uses monomorphic Sink/Source classes for V8 hidden class stability.
|
|
8
|
+
*/
|
|
9
|
+
import type { Duration, Event } from "aeon-types";
|
|
10
|
+
/**
|
|
11
|
+
* Retry a failing event stream up to `maxRetries` times.
|
|
12
|
+
*
|
|
13
|
+
* On error, re-subscribes to the source. If `delay` is provided,
|
|
14
|
+
* waits that duration before each retry. If all retries are exhausted,
|
|
15
|
+
* the error propagates downstream.
|
|
16
|
+
*/
|
|
17
|
+
export declare const retry: <A, E>(maxRetries: number, event: Event<A, E>, delay?: Duration) => Event<A, E>;
|
|
18
|
+
//# sourceMappingURL=retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/combinators/retry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAc,QAAQ,EAAE,KAAK,EAAiC,MAAM,YAAY,CAAC;AAyF7F;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EACxB,YAAY,MAAM,EAClB,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAClB,QAAQ,QAAQ,KACf,KAAK,CAAC,CAAC,EAAE,CAAC,CAAwE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* scan combinator.
|
|
3
|
+
*
|
|
4
|
+
* Denotation: `scan(f, seed, e) = [(t, foldl f seed (values up to t)) | (t, _) ∈ e]`
|
|
5
|
+
*
|
|
6
|
+
* Includes fusion: scan(f, seed, map(g, s)) → scanMap with composed function.
|
|
7
|
+
*/
|
|
8
|
+
import type { Event } from "aeon-types";
|
|
9
|
+
/**
|
|
10
|
+
* Incrementally accumulate values, emitting each intermediate result.
|
|
11
|
+
*
|
|
12
|
+
* Denotation: produces a running fold of the event sequence.
|
|
13
|
+
*/
|
|
14
|
+
export declare const scan: <A, B, E>(f: (acc: B, a: A) => B, seed: B, event: Event<A, E>) => Event<B, E>;
|
|
15
|
+
//# sourceMappingURL=scan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/combinators/scan.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAc,KAAK,EAAiC,MAAM,YAAY,CAAC;AAmDnF;;;;GAIG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAsB7F,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* share — replay multicast.
|
|
3
|
+
*
|
|
4
|
+
* Like multicast, but buffers the last N values and replays them
|
|
5
|
+
* to late subscribers. Useful for hot streams where late subscribers
|
|
6
|
+
* need the most recent state.
|
|
7
|
+
*
|
|
8
|
+
* Uses monomorphic classes for V8 hidden class stability.
|
|
9
|
+
*/
|
|
10
|
+
import type { Event } from "aeon-types";
|
|
11
|
+
/**
|
|
12
|
+
* Share a single subscription with replay for late subscribers.
|
|
13
|
+
*
|
|
14
|
+
* Buffers the last `bufferSize` values and replays them to new subscribers.
|
|
15
|
+
* Like `multicast`, the source is subscribed lazily and disposed when
|
|
16
|
+
* the last subscriber leaves.
|
|
17
|
+
*
|
|
18
|
+
* - `share(1, event)` — replay latest value (like RxJS `shareReplay(1)`)
|
|
19
|
+
* - `share(0, event)` — equivalent to `multicast` (no replay)
|
|
20
|
+
*/
|
|
21
|
+
export declare const share: <A, E>(bufferSize: number, event: Event<A, E>) => Event<A, E>;
|
|
22
|
+
//# sourceMappingURL=share.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../../src/combinators/share.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAc,KAAK,EAAiC,MAAM,YAAY,CAAC;AAmHnF;;;;;;;;;GASG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EAAE,YAAY,MAAM,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CACjB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slicing combinators: take, drop, takeWhile, dropWhile, slice.
|
|
3
|
+
*
|
|
4
|
+
* Includes algebraic simplifications:
|
|
5
|
+
* - take(n, take(m, s)) → take(min(n, m), s)
|
|
6
|
+
* - drop(n, drop(m, s)) → drop(n + m, s)
|
|
7
|
+
* - take/drop on empty → empty
|
|
8
|
+
*/
|
|
9
|
+
import type { Event } from "aeon-types";
|
|
10
|
+
/** Take the first n values from the stream, then end. */
|
|
11
|
+
export declare const take: <A, E>(n: number, event: Event<A, E>) => Event<A, E>;
|
|
12
|
+
/** Drop the first n values, then pass through the rest. */
|
|
13
|
+
export declare const drop: <A, E>(n: number, event: Event<A, E>) => Event<A, E>;
|
|
14
|
+
/** Take values while the predicate holds, then end. */
|
|
15
|
+
export declare const takeWhile: <A, E>(predicate: (a: A) => boolean, event: Event<A, E>) => Event<A, E>;
|
|
16
|
+
/** Drop values while the predicate holds, then pass through the rest. */
|
|
17
|
+
export declare const dropWhile: <A, E>(predicate: (a: A) => boolean, event: Event<A, E>) => Event<A, E>;
|
|
18
|
+
/**
|
|
19
|
+
* Take a contiguous slice: drop `start` values, then take `end - start`.
|
|
20
|
+
*
|
|
21
|
+
* Denotation: `slice(s, e, stream) = take(e - s, drop(s, stream))`
|
|
22
|
+
*/
|
|
23
|
+
export declare const slice: <A, E>(start: number, end: number, event: Event<A, E>) => Event<A, E>;
|
|
24
|
+
/**
|
|
25
|
+
* Take values from the event until the signal fires, then end.
|
|
26
|
+
*
|
|
27
|
+
* Denotation: `until(signal, e) = [(t, v) | (t, v) ∈ e, t < t_signal]`
|
|
28
|
+
* where `t_signal` is the time of the first occurrence in `signal`.
|
|
29
|
+
*/
|
|
30
|
+
export declare const until: <A, E>(signal: Event<unknown, E>, event: Event<A, E>) => Event<A, E>;
|
|
31
|
+
/**
|
|
32
|
+
* Drop values from the event until the signal fires, then pass through the rest.
|
|
33
|
+
*
|
|
34
|
+
* Denotation: `since(signal, e) = [(t, v) | (t, v) ∈ e, t >= t_signal]`
|
|
35
|
+
* where `t_signal` is the time of the first occurrence in `signal`.
|
|
36
|
+
*/
|
|
37
|
+
export declare const since: <A, E>(signal: Event<unknown, E>, event: Event<A, E>) => Event<A, E>;
|
|
38
|
+
//# sourceMappingURL=slice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../src/combinators/slice.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAc,KAAK,EAAiC,MAAM,YAAY,CAAC;AAyEnF,yDAAyD;AACzD,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAiBpE,CAAC;AAgDF,2DAA2D;AAC3D,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAepE,CAAC;AA6CF,uDAAuD;AACvD,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAC5B,CAAC;AAsClE,yEAAyE;AACzE,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAC5B,CAAC;AAIlE;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EAAE,OAAO,MAAM,EAAE,KAAK,MAAM,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAChD,CAAC;AAqExC;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAChB,CAAC;AA2DvE;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAChB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* switchLatest combinator.
|
|
3
|
+
*
|
|
4
|
+
* Denotation: given an Event of Events, always listens to the most
|
|
5
|
+
* recently emitted inner Event, disposing previous subscriptions.
|
|
6
|
+
*
|
|
7
|
+
* Uses monomorphic Sink/Source classes for V8 hidden class stability.
|
|
8
|
+
*/
|
|
9
|
+
import type { Event } from "aeon-types";
|
|
10
|
+
/**
|
|
11
|
+
* Switch to the latest inner Event, disposing the previous.
|
|
12
|
+
*
|
|
13
|
+
* Denotation: flatten an Event<Event<A, E>, E> by always following
|
|
14
|
+
* the most recently emitted inner event.
|
|
15
|
+
*/
|
|
16
|
+
export declare const switchLatest: <A, E>(event: Event<Event<A, E>, E>) => Event<A, E>;
|
|
17
|
+
//# sourceMappingURL=switch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../src/combinators/switch.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAc,KAAK,EAAiC,MAAM,YAAY,CAAC;AAuFnF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CACzB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tap combinator.
|
|
3
|
+
*
|
|
4
|
+
* Runs a side effect for each value without altering the stream.
|
|
5
|
+
* Denotation: identity on the event sequence (side effects are invisible to the denotation).
|
|
6
|
+
*/
|
|
7
|
+
import type { Event } from "aeon-types";
|
|
8
|
+
/**
|
|
9
|
+
* Run a side-effect for each event value, passing values through unchanged.
|
|
10
|
+
*/
|
|
11
|
+
export declare const tap: <A, E>(f: (a: A) => void, event: Event<A, E>) => Event<A, E>;
|
|
12
|
+
//# sourceMappingURL=tap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tap.d.ts","sourceRoot":"","sources":["../../src/combinators/tap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAc,KAAK,EAAiC,MAAM,YAAY,CAAC;AAiCnF;;GAEG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CACzB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal combinators: reduce, observe, drain.
|
|
3
|
+
*
|
|
4
|
+
* These activate (subscribe to) the stream and return a Promise
|
|
5
|
+
* that resolves when the stream ends.
|
|
6
|
+
*
|
|
7
|
+
* Uses monomorphic Sink classes for V8 hidden class stability.
|
|
8
|
+
* Hot paths use local variable hoisting for function properties.
|
|
9
|
+
*/
|
|
10
|
+
import { type Event, type Scheduler } from "aeon-types";
|
|
11
|
+
/**
|
|
12
|
+
* Fold all values into a single result. Activates the stream.
|
|
13
|
+
*
|
|
14
|
+
* Denotation: `reduce(f, seed, e) = foldl f seed (map snd e)`
|
|
15
|
+
*
|
|
16
|
+
* Uses sync loop compilation when the source chain is fully synchronous,
|
|
17
|
+
* bypassing the Sink protocol for a tight for-loop.
|
|
18
|
+
*/
|
|
19
|
+
export declare const reduce: <A, B, E>(f: (acc: B, a: A) => B, seed: B, event: Event<A, E>, scheduler: Scheduler) => Promise<B>;
|
|
20
|
+
/**
|
|
21
|
+
* Run a side-effect for each value. Activates the stream.
|
|
22
|
+
*
|
|
23
|
+
* Denotation: executes the effect for each `(t, v)` in the event sequence.
|
|
24
|
+
*/
|
|
25
|
+
export declare const observe: <A, E>(f: (a: A) => void, event: Event<A, E>, scheduler: Scheduler) => Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Activate the stream, discarding all values. Returns when the stream ends.
|
|
28
|
+
*
|
|
29
|
+
* Denotation: activates the event sequence purely for its effects.
|
|
30
|
+
*/
|
|
31
|
+
export declare const drain: <A, E>(event: Event<A, E>, scheduler: Scheduler) => Promise<void>;
|
|
32
|
+
//# sourceMappingURL=terminal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/combinators/terminal.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAiB,KAAK,KAAK,EAAE,KAAK,SAAS,EAAwB,MAAM,YAAY,CAAC;AAoF7F;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EACtB,MAAM,CAAC,EACP,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAClB,WAAW,SAAS,KACnB,OAAO,CAAC,CAAC,CAmBX,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,EAC1B,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,EACjB,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAClB,WAAW,SAAS,KACnB,OAAO,CAAC,IAAI,CAkBd,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,SAAS,KAAG,OAAO,CAAC,IAAI,CAelF,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Time-based combinators: debounce, throttle, delay, bufferTime, bufferCount.
|
|
3
|
+
*
|
|
4
|
+
* These use the Scheduler for timing and are the async boundary
|
|
5
|
+
* where push meets scheduled execution.
|
|
6
|
+
*
|
|
7
|
+
* Uses monomorphic Sink/Source classes for V8 hidden class stability.
|
|
8
|
+
*/
|
|
9
|
+
import type { Duration, Event } from "aeon-types";
|
|
10
|
+
/**
|
|
11
|
+
* Wait for a quiet period before emitting the latest value.
|
|
12
|
+
* Each new value resets the timer.
|
|
13
|
+
*
|
|
14
|
+
* Denotation: emits the last value in each burst, after `duration` of silence.
|
|
15
|
+
*/
|
|
16
|
+
export declare const debounce: <A, E>(duration: Duration, event: Event<A, E>) => Event<A, E>;
|
|
17
|
+
/**
|
|
18
|
+
* Emit at most one value per duration window.
|
|
19
|
+
* Takes the first value in each window, ignores the rest.
|
|
20
|
+
*
|
|
21
|
+
* Denotation: rate-limits the event sequence.
|
|
22
|
+
*/
|
|
23
|
+
export declare const throttle: <A, E>(duration: Duration, event: Event<A, E>) => Event<A, E>;
|
|
24
|
+
/**
|
|
25
|
+
* Delay each event by a fixed duration.
|
|
26
|
+
*
|
|
27
|
+
* Denotation: `delay(d, e) = [(t + d, v) | (t, v) ∈ e]`
|
|
28
|
+
*/
|
|
29
|
+
export declare const delay: <A, E>(duration: Duration, event: Event<A, E>) => Event<A, E>;
|
|
30
|
+
/**
|
|
31
|
+
* Buffer values into arrays of a fixed size.
|
|
32
|
+
* Emits when the buffer reaches `count`. Flushes remaining on end.
|
|
33
|
+
*/
|
|
34
|
+
export declare const bufferCount: <A, E>(count: number, event: Event<A, E>) => Event<A[], E>;
|
|
35
|
+
/**
|
|
36
|
+
* Buffer values over a time window.
|
|
37
|
+
* Emits the buffer contents at the end of each window.
|
|
38
|
+
*/
|
|
39
|
+
export declare const bufferTime: <A, E>(duration: Duration, event: Event<A, E>) => Event<A[], E>;
|
|
40
|
+
//# sourceMappingURL=time.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/combinators/time.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAEV,QAAQ,EACR,KAAK,EAMN,MAAM,YAAY,CAAC;AAuFpB;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,UAAU,QAAQ,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CACnB,CAAC;AAuChE;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,UAAU,QAAQ,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CACnB,CAAC;AAqEhE;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EAAE,UAAU,QAAQ,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CACnB,CAAC;AAmD7D;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,CAAC,EAAE,OAAO,MAAM,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CACnB,CAAC;AAsEhE;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,CAAC,EAAE,UAAU,QAAQ,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CACrB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* timeout combinator.
|
|
3
|
+
*
|
|
4
|
+
* Denotation: error if no event is emitted within a time window.
|
|
5
|
+
* After each event, the timer resets. If the timer expires before
|
|
6
|
+
* the next event (or the first event), an error is emitted.
|
|
7
|
+
*/
|
|
8
|
+
import type { Duration, Event } from "aeon-types";
|
|
9
|
+
declare class TimeoutError extends Error {
|
|
10
|
+
constructor(duration: Duration);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Error if no event is emitted within `duration`.
|
|
14
|
+
* The timer starts immediately and resets after each event.
|
|
15
|
+
*
|
|
16
|
+
* Emits a TimeoutError via the error channel.
|
|
17
|
+
*/
|
|
18
|
+
export declare const timeout: <A, E>(duration: Duration, event: Event<A, E>) => Event<A, E | TimeoutError>;
|
|
19
|
+
export { TimeoutError };
|
|
20
|
+
//# sourceMappingURL=timeout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../src/combinators/timeout.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAEV,QAAQ,EACR,KAAK,EAMN,MAAM,YAAY,CAAC;AAGpB,cAAM,YAAa,SAAQ,KAAK;gBAClB,QAAQ,EAAE,QAAQ;CAI/B;AAkFD;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,EAAE,UAAU,QAAQ,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,YAAY,CAClC,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* traverse combinator.
|
|
3
|
+
*
|
|
4
|
+
* Applies an async function to each event value with bounded concurrency.
|
|
5
|
+
* When all concurrency slots are occupied, incoming values are buffered.
|
|
6
|
+
*
|
|
7
|
+
* Uses monomorphic classes for V8 hidden class stability.
|
|
8
|
+
*/
|
|
9
|
+
import type { Event } from "aeon-types";
|
|
10
|
+
/**
|
|
11
|
+
* Apply an async function to each event value with bounded concurrency.
|
|
12
|
+
*
|
|
13
|
+
* Denotation: `traverse(f, c, e) = [(t, await f(v)) | (t, v) ∈ e]`
|
|
14
|
+
* with at most `c` pending promises at any time. When all slots are
|
|
15
|
+
* occupied, incoming values are buffered until a slot frees up.
|
|
16
|
+
*
|
|
17
|
+
* Results are emitted as promises resolve, so output order may differ
|
|
18
|
+
* from input order when concurrency > 1.
|
|
19
|
+
*/
|
|
20
|
+
export declare const traverse: <A, B, E>(f: (a: A) => Promise<B>, concurrency: number, event: Event<A, E>) => Event<B, E>;
|
|
21
|
+
//# sourceMappingURL=traverse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../src/combinators/traverse.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAc,KAAK,EAAiC,MAAM,YAAY,CAAC;AA+GnF;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAC9B,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACvB,aAAa,MAAM,EACnB,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KACjB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAwE,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event constructors.
|
|
3
|
+
*
|
|
4
|
+
* Each constructor creates an Event<A, E> backed by a Source
|
|
5
|
+
* that produces events according to its denotational meaning.
|
|
6
|
+
*/
|
|
7
|
+
import { type Disposable, type Duration, type Event, type Scheduler, type Sink, type Source, type Time } from "aeon-types";
|
|
8
|
+
declare class EmptySource<A> implements Source<A, never> {
|
|
9
|
+
readonly _sync: true;
|
|
10
|
+
constructor();
|
|
11
|
+
run(sink: Sink<A, never>, scheduler: Scheduler): Disposable;
|
|
12
|
+
syncIterate(_emit: (value: A) => boolean): void;
|
|
13
|
+
}
|
|
14
|
+
declare class NowSource<A> implements Source<A, never> {
|
|
15
|
+
readonly value: A;
|
|
16
|
+
readonly _sync: true;
|
|
17
|
+
constructor(value: A);
|
|
18
|
+
run(sink: Sink<A, never>, scheduler: Scheduler): Disposable;
|
|
19
|
+
syncIterate(emit: (value: A) => boolean): void;
|
|
20
|
+
}
|
|
21
|
+
declare const EMPTY_SOURCE: EmptySource<never>;
|
|
22
|
+
/** @internal — used by combinators for instanceof detection */
|
|
23
|
+
export { EmptySource as _EmptySource, NowSource as _NowSource, EMPTY_SOURCE as _EMPTY_SOURCE };
|
|
24
|
+
/**
|
|
25
|
+
* An Event that ends immediately without emitting any values.
|
|
26
|
+
*
|
|
27
|
+
* Denotation: `[]` — the empty sequence.
|
|
28
|
+
*/
|
|
29
|
+
export declare const empty: <A>() => Event<A, never>;
|
|
30
|
+
/**
|
|
31
|
+
* An Event that never emits and never ends.
|
|
32
|
+
*
|
|
33
|
+
* Denotation: `_|_` — bottom / divergent.
|
|
34
|
+
*/
|
|
35
|
+
export declare const never: <A>() => Event<A, never>;
|
|
36
|
+
/**
|
|
37
|
+
* An Event that emits a single value at time 0, then ends.
|
|
38
|
+
*
|
|
39
|
+
* Denotation: `[(0, value)]`
|
|
40
|
+
*/
|
|
41
|
+
export declare const now: <A>(value: A) => Event<A, never>;
|
|
42
|
+
/**
|
|
43
|
+
* An Event that emits a single value at a specific time, then ends.
|
|
44
|
+
*
|
|
45
|
+
* Denotation: `[(time, value)]`
|
|
46
|
+
*/
|
|
47
|
+
export declare const at: <A>(time: Time, value: A) => Event<A, never>;
|
|
48
|
+
/**
|
|
49
|
+
* An Event that emits all values from an array synchronously, then ends.
|
|
50
|
+
*
|
|
51
|
+
* Denotation: `[(t, values[0]), (t, values[1]), ...]` all at the same time.
|
|
52
|
+
*/
|
|
53
|
+
export declare const fromArray: <A>(values: readonly A[]) => Event<A, never>;
|
|
54
|
+
/**
|
|
55
|
+
* An Event that emits undefined at regular intervals.
|
|
56
|
+
*
|
|
57
|
+
* Denotation: `[(period, undefined), (2*period, undefined), ...]`
|
|
58
|
+
*/
|
|
59
|
+
export declare const periodic: (period: Duration) => Event<undefined, never>;
|
|
60
|
+
/**
|
|
61
|
+
* An Event that emits a sequence of numbers synchronously, then ends.
|
|
62
|
+
*
|
|
63
|
+
* Denotation: `[(t, start), (t, start+1), ..., (t, start+count-1)]`
|
|
64
|
+
*/
|
|
65
|
+
export declare const range: (start: number, count: number) => Event<number, never>;
|
|
66
|
+
/**
|
|
67
|
+
* Create an Event from an iterable, emitting all values synchronously.
|
|
68
|
+
*
|
|
69
|
+
* Denotation: `[(t, v) for v in iterable]` all at the same time.
|
|
70
|
+
*/
|
|
71
|
+
export declare const fromIterable: <A>(iterable: Iterable<A>) => Event<A, never>;
|
|
72
|
+
//# sourceMappingURL=constructors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constructors.d.ts","sourceRoot":"","sources":["../src/constructors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,IAAI,EAEV,MAAM,YAAY,CAAC;AAMpB,cAAM,WAAW,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;IAC9C,SAAiB,KAAK,EAAE,IAAI,CAAC;;IAM7B,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS;IAK9C,WAAW,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI;CAChD;AAQD,cAAM,SAAS,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;IAC5C,SAAiB,KAAK,EAAE,CAAC,CAAC;IAC1B,SAAiB,KAAK,EAAE,IAAI,CAAC;gBAEjB,KAAK,EAAE,CAAC;IAKpB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS;IAO9C,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI;CAG/C;AA+BD,QAAA,MAAM,YAAY,oBAA2B,CAAC;AAK9C,+DAA+D;AAC/D,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,SAAS,IAAI,UAAU,EAAE,YAAY,IAAI,aAAa,EAAE,CAAC;AAI/F;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,OAAK,KAAK,CAAC,CAAC,EAAE,KAAK,CACiB,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,OAAK,KAAK,CAAC,CAAC,EAAE,KAAK,CACiB,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,KAAK,CAAuC,CAAC;AA2BxF;;;;GAIG;AACH,eAAO,MAAM,EAAE,GAAI,CAAC,EAAE,MAAM,IAAI,EAAE,OAAO,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,KAAK,CAClB,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,QAAQ,SAAS,CAAC,EAAE,KAAG,KAAK,CAAC,CAAC,EAAE,KAAK,CAC3B,CAAC;AAsCxC;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,QAAQ,QAAQ,KAAG,KAAK,CAAC,SAAS,EAAE,KAAK,CACxB,CAAC;AA+B3C;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,KAAK,CAAC,MAAM,EAAE,KAAK,CACd,CAAC;AA2B3D;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,UAAU,QAAQ,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,EAAE,KAAK,CAC1B,CAAC"}
|
package/dist/fluent.d.ts
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fluent API wrapper for Event streams.
|
|
3
|
+
*
|
|
4
|
+
* Provides a chainable interface: `fluent(event).map(f).filter(p).take(10)`
|
|
5
|
+
* All methods delegate to standalone combinators — zero logic duplication.
|
|
6
|
+
*
|
|
7
|
+
* This is a separate entry point so tree-shaking eliminates it when unused.
|
|
8
|
+
*/
|
|
9
|
+
import type { Behavior, Duration, Event, Scheduler } from "aeon-types";
|
|
10
|
+
/**
|
|
11
|
+
* Chainable wrapper around a pulse Event.
|
|
12
|
+
*
|
|
13
|
+
* Every method returns a new FluentEvent (or a terminal value like Promise).
|
|
14
|
+
* The underlying Event is accessible via `.event`.
|
|
15
|
+
*/
|
|
16
|
+
export declare class FluentEvent<A, E> {
|
|
17
|
+
readonly event: Event<A, E>;
|
|
18
|
+
constructor(event: Event<A, E>);
|
|
19
|
+
map<B>(f: (a: A) => B): FluentEvent<B, E>;
|
|
20
|
+
filter(predicate: (a: A) => boolean): FluentEvent<A, E>;
|
|
21
|
+
tap(f: (a: A) => void): FluentEvent<A, E>;
|
|
22
|
+
constant<B>(value: B): FluentEvent<B, E>;
|
|
23
|
+
scan<B>(f: (acc: B, a: A) => B, seed: B): FluentEvent<B, E>;
|
|
24
|
+
dedupe(eq?: (a: A, b: A) => boolean): FluentEvent<A, E>;
|
|
25
|
+
cons(value: A): FluentEvent<A, E>;
|
|
26
|
+
pairwise(): FluentEvent<[A, A], E>;
|
|
27
|
+
first(predicate?: (a: A) => boolean): FluentEvent<A, E>;
|
|
28
|
+
last(predicate?: (a: A) => boolean): FluentEvent<A, E>;
|
|
29
|
+
take(n: number): FluentEvent<A, E>;
|
|
30
|
+
drop(n: number): FluentEvent<A, E>;
|
|
31
|
+
takeWhile(predicate: (a: A) => boolean): FluentEvent<A, E>;
|
|
32
|
+
dropWhile(predicate: (a: A) => boolean): FluentEvent<A, E>;
|
|
33
|
+
slice(start: number, end: number): FluentEvent<A, E>;
|
|
34
|
+
until(signal: Event<unknown, E>): FluentEvent<A, E>;
|
|
35
|
+
since(signal: Event<unknown, E>): FluentEvent<A, E>;
|
|
36
|
+
merge(...others: Event<A, E>[]): FluentEvent<A, E>;
|
|
37
|
+
combine<B, C>(f: (a: A, b: B) => C, other: Event<B, E>): FluentEvent<C, E>;
|
|
38
|
+
zip<B>(other: Event<B, E>): FluentEvent<[A, B], E>;
|
|
39
|
+
chain<B>(f: (a: A) => Event<B, E>): FluentEvent<B, E>;
|
|
40
|
+
mergeMap<B>(f: (a: A) => Event<B, E>, concurrency: number): FluentEvent<B, E>;
|
|
41
|
+
traverse<B>(f: (a: A) => Promise<B>, concurrency: number): FluentEvent<B, E>;
|
|
42
|
+
exhaustMap<B>(f: (a: A) => Event<B, E>): FluentEvent<B, E>;
|
|
43
|
+
catchError<E2>(handler: (err: E) => Event<A, E2>): FluentEvent<A, E2>;
|
|
44
|
+
mapError<E2>(f: (err: E) => E2): FluentEvent<A, E2>;
|
|
45
|
+
debounce(duration: Duration): FluentEvent<A, E>;
|
|
46
|
+
throttle(duration: Duration): FluentEvent<A, E>;
|
|
47
|
+
delay(duration: Duration): FluentEvent<A, E>;
|
|
48
|
+
bufferCount(count: number): FluentEvent<A[], E>;
|
|
49
|
+
bufferTime(duration: Duration): FluentEvent<A[], E>;
|
|
50
|
+
sample<B>(behavior: Behavior<B, E>): FluentEvent<B, E>;
|
|
51
|
+
snapshot<B, C>(f: (b: B, a: A) => C, behavior: Behavior<B, E>): FluentEvent<C, E>;
|
|
52
|
+
retry(maxRetries: number, delayDuration?: Duration): FluentEvent<A, E>;
|
|
53
|
+
attach<B, C>(f: (a: A, b: B) => C, sampler: Event<B, E>): FluentEvent<C, E>;
|
|
54
|
+
timeout(duration: Duration): FluentEvent<A, import("./index.js").TimeoutError | E>;
|
|
55
|
+
orElse(value: A): FluentEvent<A, E>;
|
|
56
|
+
ensure(cleanup: () => void): FluentEvent<A, E>;
|
|
57
|
+
count(): FluentEvent<number, E>;
|
|
58
|
+
all(predicate: (a: A) => boolean): FluentEvent<boolean, E>;
|
|
59
|
+
elementAt(n: number): FluentEvent<A, E>;
|
|
60
|
+
race(...others: Event<A, E>[]): FluentEvent<A, E>;
|
|
61
|
+
multicast(): FluentEvent<A, E>;
|
|
62
|
+
share(bufferSize: number): FluentEvent<A, E>;
|
|
63
|
+
toAsyncIterator(scheduler: Scheduler): AsyncIterableIterator<A> & {
|
|
64
|
+
dispose(): void;
|
|
65
|
+
};
|
|
66
|
+
reduce<B>(f: (acc: B, a: A) => B, seed: B, scheduler: Scheduler): Promise<B>;
|
|
67
|
+
observe(f: (a: A) => void, scheduler: Scheduler): Promise<void>;
|
|
68
|
+
drain(scheduler: Scheduler): Promise<void>;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Wrap a pulse Event in a chainable fluent interface.
|
|
72
|
+
*
|
|
73
|
+
* ```typescript
|
|
74
|
+
* const result = await fluent(fromArray([1, 2, 3, 4, 5]))
|
|
75
|
+
* .filter(x => x % 2 === 0)
|
|
76
|
+
* .map(x => x * 10)
|
|
77
|
+
* .take(2)
|
|
78
|
+
* .reduce((acc, x) => acc + x, 0, scheduler);
|
|
79
|
+
* // result === 60
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export declare const fluent: <A, E>(event: Event<A, E>) => FluentEvent<A, E>;
|
|
83
|
+
//# sourceMappingURL=fluent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fluent.d.ts","sourceRoot":"","sources":["../src/fluent.ts"],"names":[],"mappings":"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"}
|