@vielzeug/flux 2.4.0 → 26.10.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 +12 -22
- package/dist/_iterator.cjs +1 -1
- package/dist/_iterator.cjs.map +1 -1
- package/dist/_iterator.d.ts +1 -1
- package/dist/_iterator.d.ts.map +1 -1
- package/dist/_iterator.js +1 -72
- package/dist/_iterator.js.map +1 -1
- package/dist/_link.cjs +1 -1
- package/dist/_link.cjs.map +1 -1
- package/dist/_link.d.ts +1 -1
- package/dist/_link.d.ts.map +1 -1
- package/dist/_link.js +1 -7
- package/dist/_link.js.map +1 -1
- package/dist/_numeric.cjs +1 -1
- package/dist/_numeric.cjs.map +1 -1
- package/dist/_numeric.js +1 -13
- package/dist/_numeric.js.map +1 -1
- package/dist/_safe.cjs +1 -1
- package/dist/_safe.cjs.map +1 -1
- package/dist/_safe.js +1 -11
- package/dist/_safe.js.map +1 -1
- package/dist/_scheduler.js +1 -14
- package/dist/_scheduler.js.map +1 -1
- package/dist/_subscription.cjs +1 -1
- package/dist/_subscription.cjs.map +1 -1
- package/dist/_subscription.d.ts +1 -1
- package/dist/_subscription.d.ts.map +1 -1
- package/dist/_subscription.js +1 -79
- package/dist/_subscription.js.map +1 -1
- package/dist/async.cjs +1 -1
- package/dist/async.cjs.map +1 -1
- package/dist/async.d.ts +1 -1
- package/dist/async.d.ts.map +1 -1
- package/dist/async.js +1 -10
- package/dist/async.js.map +1 -1
- package/dist/channel.cjs +1 -1
- package/dist/channel.cjs.map +1 -1
- package/dist/channel.d.ts +1 -1
- package/dist/channel.d.ts.map +1 -1
- package/dist/channel.js +1 -54
- package/dist/channel.js.map +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.ts +8 -1
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +1 -17
- package/dist/core.js.map +1 -1
- package/dist/errors.cjs +1 -1
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.js +1 -23
- package/dist/errors.js.map +1 -1
- package/dist/flux.cjs +1 -1
- package/dist/flux.cjs.map +1 -1
- package/dist/flux.iife.js +1 -1
- package/dist/flux.iife.js.map +1 -1
- package/dist/flux.js +1 -1
- package/dist/flux.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +15 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -10
- package/dist/operators/combination.cjs +1 -1
- package/dist/operators/combination.cjs.map +1 -1
- package/dist/operators/combination.d.ts +1 -1
- package/dist/operators/combination.d.ts.map +1 -1
- package/dist/operators/combination.js +1 -76
- package/dist/operators/combination.js.map +1 -1
- package/dist/operators/creation.cjs +1 -1
- package/dist/operators/creation.cjs.map +1 -1
- package/dist/operators/creation.d.ts +1 -1
- package/dist/operators/creation.d.ts.map +1 -1
- package/dist/operators/creation.js +1 -83
- package/dist/operators/creation.js.map +1 -1
- package/dist/operators/filtering.cjs +1 -1
- package/dist/operators/filtering.cjs.map +1 -1
- package/dist/operators/filtering.d.ts +1 -1
- package/dist/operators/filtering.d.ts.map +1 -1
- package/dist/operators/filtering.js +1 -89
- package/dist/operators/filtering.js.map +1 -1
- package/dist/operators/transformation.cjs +1 -1
- package/dist/operators/transformation.cjs.map +1 -1
- package/dist/operators/transformation.d.ts +1 -1
- package/dist/operators/transformation.d.ts.map +1 -1
- package/dist/operators/transformation.js +1 -123
- package/dist/operators/transformation.js.map +1 -1
- package/dist/operators/utility.cjs +1 -1
- package/dist/operators/utility.cjs.map +1 -1
- package/dist/operators/utility.d.ts +6 -6
- package/dist/operators/utility.d.ts.map +1 -1
- package/dist/operators/utility.js +1 -115
- package/dist/operators/utility.js.map +1 -1
- package/dist/pipe.cjs +1 -1
- package/dist/pipe.cjs.map +1 -1
- package/dist/pipe.d.ts +1 -1
- package/dist/pipe.d.ts.map +1 -1
- package/dist/pipe.js +1 -7
- package/dist/pipe.js.map +1 -1
- package/dist/subjects.d.ts +1 -2
- package/dist/subjects.d.ts.map +1 -1
- package/package.json +10 -70
- package/dist/adapters/courier.cjs +0 -2
- package/dist/adapters/courier.cjs.map +0 -1
- package/dist/adapters/courier.d.ts +0 -4
- package/dist/adapters/courier.d.ts.map +0 -1
- package/dist/adapters/courier.js +0 -12
- package/dist/adapters/courier.js.map +0 -1
- package/dist/adapters/herald.cjs +0 -2
- package/dist/adapters/herald.cjs.map +0 -1
- package/dist/adapters/herald.d.ts +0 -5
- package/dist/adapters/herald.d.ts.map +0 -1
- package/dist/adapters/herald.js +0 -22
- package/dist/adapters/herald.js.map +0 -1
- package/dist/adapters/pulse.cjs +0 -2
- package/dist/adapters/pulse.cjs.map +0 -1
- package/dist/adapters/pulse.d.ts +0 -5
- package/dist/adapters/pulse.d.ts.map +0 -1
- package/dist/adapters/pulse.js +0 -18
- package/dist/adapters/pulse.js.map +0 -1
- package/dist/adapters/ripple.cjs +0 -2
- package/dist/adapters/ripple.cjs.map +0 -1
- package/dist/adapters/ripple.d.ts +0 -19
- package/dist/adapters/ripple.d.ts.map +0 -1
- package/dist/adapters/ripple.js +0 -46
- package/dist/adapters/ripple.js.map +0 -1
- package/dist/courier.cjs +0 -1
- package/dist/courier.d.ts +0 -2
- package/dist/courier.d.ts.map +0 -1
- package/dist/courier.js +0 -2
- package/dist/herald.cjs +0 -1
- package/dist/herald.d.ts +0 -2
- package/dist/herald.d.ts.map +0 -1
- package/dist/herald.js +0 -2
- package/dist/pulse.cjs +0 -1
- package/dist/pulse.d.ts +0 -2
- package/dist/pulse.d.ts.map +0 -1
- package/dist/pulse.js +0 -2
- package/dist/ripple.cjs +0 -1
- package/dist/ripple.d.ts +0 -3
- package/dist/ripple.d.ts.map +0 -1
- package/dist/ripple.js +0 -2
- package/dist/subjects.cjs +0 -1
- package/dist/subjects.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utility.cjs","names":[],"sources":["../../src/operators/utility.ts"],"sourcesContent":["import { link } from '../_link';\nimport { assertNonNegativeInteger } from '../_numeric';\nimport { tryCall } from '../_safe';\nimport { defaultScheduler } from '../_scheduler';\nimport { stream } from '../core';\nimport { FluxCapacityError, FluxEmptyError } from '../errors';\nimport type { Operator, Stream, Subscription } from '../types';\n\nexport type RetryOptions = {\n
|
|
1
|
+
{"version":3,"file":"utility.cjs","names":[],"sources":["../../src/operators/utility.ts"],"sourcesContent":["import { abortError } from '@vielzeug/arsenal';\n\nimport { link } from '../_link.js';\nimport { assertDuration, assertNonNegativeInteger } from '../_numeric.js';\nimport { tryCall } from '../_safe.js';\nimport { defaultScheduler } from '../_scheduler.js';\nimport { stream } from '../core.js';\nimport { FluxCapacityError, FluxEmptyError } from '../errors.js';\nimport type { Operator, Stream, Subscription } from '../types.js';\n\nexport type RetryOptions = {\n times: number;\n delay?: number | ((attempt: number) => number);\n};\n\nexport type ToArrayOptions = {\n maxItems: number;\n signal?: AbortSignal;\n};\n\nexport type ValueOptions<T> = {\n signal?: AbortSignal;\n /** Resolved when the source completes empty instead of rejecting with `FluxEmptyError`. */\n defaultValue?: T;\n};\n\nexport function retry<T>(options: RetryOptions): Operator<T, T> {\n assertNonNegativeInteger(options.times, 'retry times');\n\n return (source) =>\n stream((sink, signal) => {\n let attempts = 0;\n let current: Subscription | undefined;\n let cancelDelay: (() => void) | undefined;\n\n const start = (): void => {\n if (signal.aborted) return;\n\n const subscription = link(\n source,\n {\n complete: sink.complete,\n error(reason) {\n if (attempts === options.times) {\n sink.error(reason);\n\n return;\n }\n\n const attempt = attempts++;\n let delay: number | undefined;\n\n tryCall(() => {\n delay = typeof options.delay === 'function' ? options.delay(attempt) : options.delay;\n }, sink.error);\n\n if (signal.aborted) return;\n\n if (delay !== undefined) {\n try {\n assertDuration(delay, 'Retry delay');\n } catch (reason) {\n sink.error(reason);\n return;\n }\n }\n\n if (delay === undefined || delay === 0) {\n queueMicrotask(start);\n } else {\n cancelDelay = defaultScheduler.delay(start, delay);\n }\n },\n next: sink.next,\n },\n signal,\n );\n\n if (!subscription.closed) current = subscription;\n };\n\n start();\n\n return () => {\n cancelDelay?.();\n current?.unsubscribe();\n };\n });\n}\n\nexport function first<T>(source: Stream<T>, options?: ValueOptions<T>): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const controller = new AbortController();\n const abort = (): void => {\n controller.abort();\n reject(abortError(options?.signal, 'Stream consumption aborted'));\n };\n\n if (options?.signal?.aborted) {\n abort();\n\n return;\n }\n\n options?.signal?.addEventListener('abort', abort, { once: true });\n link(\n source,\n {\n complete() {\n options?.signal?.removeEventListener('abort', abort);\n\n if ('defaultValue' in (options ?? {})) resolve(options!.defaultValue as T);\n else reject(new FluxEmptyError());\n },\n error(reason) {\n options?.signal?.removeEventListener('abort', abort);\n reject(reason);\n },\n next(value) {\n options?.signal?.removeEventListener('abort', abort);\n controller.abort();\n resolve(value);\n },\n },\n controller.signal,\n );\n });\n}\n\nexport function last<T>(source: Stream<T>, options?: ValueOptions<T>): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const controller = new AbortController();\n const abort = (): void => {\n controller.abort();\n reject(abortError(options?.signal, 'Stream consumption aborted'));\n };\n\n if (options?.signal?.aborted) {\n abort();\n\n return;\n }\n\n let emitted = false;\n let latest: T | undefined;\n\n options?.signal?.addEventListener('abort', abort, { once: true });\n link(\n source,\n {\n complete() {\n options?.signal?.removeEventListener('abort', abort);\n\n if (emitted) resolve(latest as T);\n else if ('defaultValue' in (options ?? {})) resolve(options!.defaultValue as T);\n else reject(new FluxEmptyError());\n },\n error(reason) {\n options?.signal?.removeEventListener('abort', abort);\n reject(reason);\n },\n next(value) {\n emitted = true;\n latest = value;\n },\n },\n controller.signal,\n );\n });\n}\n\nexport function toArray<T>(source: Stream<T>, options: ToArrayOptions): Promise<T[]> {\n assertNonNegativeInteger(options.maxItems, 'toArray maxItems');\n\n return new Promise<T[]>((resolve, reject) => {\n const controller = new AbortController();\n const values: T[] = [];\n const abort = (): void => {\n controller.abort();\n reject(abortError(options?.signal, 'Stream consumption aborted'));\n };\n\n if (options.signal?.aborted) {\n abort();\n\n return;\n }\n\n options.signal?.addEventListener('abort', abort, { once: true });\n link(\n source,\n {\n complete() {\n options.signal?.removeEventListener('abort', abort);\n resolve(values);\n },\n error(reason) {\n options.signal?.removeEventListener('abort', abort);\n reject(reason);\n },\n next(value) {\n if (values.length === options.maxItems) {\n options.signal?.removeEventListener('abort', abort);\n controller.abort();\n reject(new FluxCapacityError(options.maxItems, 'toArray maxItems exceeded'));\n\n return;\n }\n\n values.push(value);\n },\n },\n controller.signal,\n );\n });\n}\n"],"mappings":"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"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import type { Operator, Stream } from '../types';
|
|
1
|
+
import type { Operator, Stream } from '../types.js';
|
|
2
2
|
export type RetryOptions = {
|
|
3
|
-
|
|
3
|
+
times: number;
|
|
4
4
|
delay?: number | ((attempt: number) => number);
|
|
5
5
|
};
|
|
6
6
|
export type ToArrayOptions = {
|
|
7
7
|
maxItems: number;
|
|
8
8
|
signal?: AbortSignal;
|
|
9
9
|
};
|
|
10
|
-
export type ValueOptions = {
|
|
10
|
+
export type ValueOptions<T> = {
|
|
11
11
|
signal?: AbortSignal;
|
|
12
12
|
/** Resolved when the source completes empty instead of rejecting with `FluxEmptyError`. */
|
|
13
|
-
defaultValue?:
|
|
13
|
+
defaultValue?: T;
|
|
14
14
|
};
|
|
15
15
|
export declare function retry<T>(options: RetryOptions): Operator<T, T>;
|
|
16
|
-
export declare function first<T>(source: Stream<T>, options?: ValueOptions): Promise<T>;
|
|
17
|
-
export declare function last<T>(source: Stream<T>, options?: ValueOptions): Promise<T>;
|
|
16
|
+
export declare function first<T>(source: Stream<T>, options?: ValueOptions<T>): Promise<T>;
|
|
17
|
+
export declare function last<T>(source: Stream<T>, options?: ValueOptions<T>): Promise<T>;
|
|
18
18
|
export declare function toArray<T>(source: Stream<T>, options: ToArrayOptions): Promise<T[]>;
|
|
19
19
|
//# sourceMappingURL=utility.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../src/operators/utility.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../src/operators/utility.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAgB,MAAM,aAAa,CAAC;AAElE,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,2FAA2F;IAC3F,YAAY,CAAC,EAAE,CAAC,CAAC;CAClB,CAAC;AAEF,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CA8D9D;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAqCjF;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAwChF;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CA4CnF"}
|
|
@@ -1,116 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { stream as t } from "../core.js";
|
|
3
|
-
import { link as n } from "../_link.js";
|
|
4
|
-
import { tryCall as r } from "../_safe.js";
|
|
5
|
-
import { FluxCapacityError as i, FluxEmptyError as a } from "../errors.js";
|
|
6
|
-
import { defaultScheduler as o } from "../_scheduler.js";
|
|
7
|
-
//#region src/operators/utility.ts
|
|
8
|
-
function s() {
|
|
9
|
-
return new DOMException("Stream consumption aborted", "AbortError");
|
|
10
|
-
}
|
|
11
|
-
function c(i) {
|
|
12
|
-
return e(i.attempts, "retry attempts"), (e) => t((t, a) => {
|
|
13
|
-
let s = 0, c, l, u = () => {
|
|
14
|
-
if (a.aborted) return;
|
|
15
|
-
let d = n(e, {
|
|
16
|
-
complete: t.complete,
|
|
17
|
-
error(e) {
|
|
18
|
-
if (s === i.attempts) {
|
|
19
|
-
t.error(e);
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
let n = s++, c;
|
|
23
|
-
if (r(() => {
|
|
24
|
-
c = typeof i.delay == "function" ? i.delay(n) : i.delay;
|
|
25
|
-
}, t.error), !a.aborted) {
|
|
26
|
-
if (c !== void 0 && (!Number.isFinite(c) || c < 0)) {
|
|
27
|
-
t.error(/* @__PURE__ */ RangeError("retry delay must be a finite number greater than or equal to zero"));
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
c === void 0 || c === 0 ? queueMicrotask(u) : l = o.delay(u, c);
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
next: t.next
|
|
34
|
-
}, a);
|
|
35
|
-
d.closed || (c = d);
|
|
36
|
-
};
|
|
37
|
-
return u(), () => {
|
|
38
|
-
l?.(), c?.unsubscribe();
|
|
39
|
-
};
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
function l(e, t) {
|
|
43
|
-
return new Promise((r, i) => {
|
|
44
|
-
let o = new AbortController(), c = () => {
|
|
45
|
-
o.abort(), i(s());
|
|
46
|
-
};
|
|
47
|
-
if (t?.signal?.aborted) {
|
|
48
|
-
c();
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
t?.signal?.addEventListener("abort", c, { once: !0 }), n(e, {
|
|
52
|
-
complete() {
|
|
53
|
-
t?.signal?.removeEventListener("abort", c), "defaultValue" in (t ?? {}) ? r(t.defaultValue) : i(new a());
|
|
54
|
-
},
|
|
55
|
-
error(e) {
|
|
56
|
-
t?.signal?.removeEventListener("abort", c), i(e);
|
|
57
|
-
},
|
|
58
|
-
next(e) {
|
|
59
|
-
t?.signal?.removeEventListener("abort", c), o.abort(), r(e);
|
|
60
|
-
}
|
|
61
|
-
}, o.signal);
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
function u(e, t) {
|
|
65
|
-
return new Promise((r, i) => {
|
|
66
|
-
let o = new AbortController(), c = () => {
|
|
67
|
-
o.abort(), i(s());
|
|
68
|
-
};
|
|
69
|
-
if (t?.signal?.aborted) {
|
|
70
|
-
c();
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
let l = !1, u;
|
|
74
|
-
t?.signal?.addEventListener("abort", c, { once: !0 }), n(e, {
|
|
75
|
-
complete() {
|
|
76
|
-
t?.signal?.removeEventListener("abort", c), l ? r(u) : "defaultValue" in (t ?? {}) ? r(t.defaultValue) : i(new a());
|
|
77
|
-
},
|
|
78
|
-
error(e) {
|
|
79
|
-
t?.signal?.removeEventListener("abort", c), i(e);
|
|
80
|
-
},
|
|
81
|
-
next(e) {
|
|
82
|
-
l = !0, u = e;
|
|
83
|
-
}
|
|
84
|
-
}, o.signal);
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
function d(t, r) {
|
|
88
|
-
return e(r.maxItems, "toArray maxItems"), new Promise((e, a) => {
|
|
89
|
-
let o = new AbortController(), c = [], l = () => {
|
|
90
|
-
o.abort(), a(s());
|
|
91
|
-
};
|
|
92
|
-
if (r.signal?.aborted) {
|
|
93
|
-
l();
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
r.signal?.addEventListener("abort", l, { once: !0 }), n(t, {
|
|
97
|
-
complete() {
|
|
98
|
-
r.signal?.removeEventListener("abort", l), e(c);
|
|
99
|
-
},
|
|
100
|
-
error(e) {
|
|
101
|
-
r.signal?.removeEventListener("abort", l), a(e);
|
|
102
|
-
},
|
|
103
|
-
next(e) {
|
|
104
|
-
if (c.length === r.maxItems) {
|
|
105
|
-
r.signal?.removeEventListener("abort", l), o.abort(), a(new i(r.maxItems, "toArray maxItems exceeded"));
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
c.push(e);
|
|
109
|
-
}
|
|
110
|
-
}, o.signal);
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
//#endregion
|
|
114
|
-
export { l as first, u as last, c as retry, d as toArray };
|
|
115
|
-
|
|
1
|
+
import{assertDuration as e,assertNonNegativeInteger as t}from"../_numeric.js";import{FluxCapacityError as n,FluxEmptyError as r}from"../errors.js";import{stream as i}from"../core.js";import{link as a}from"../_link.js";import{defaultScheduler as o}from"../_scheduler.js";import{tryCall as s}from"../_safe.js";import{abortError as c}from"@vielzeug/arsenal";function retry(n){return t(n.times,`retry times`),t=>i((r,i)=>{let c=0,l,u,start=()=>{if(i.aborted)return;let d=a(t,{complete:r.complete,error(t){if(c===n.times){r.error(t);return}let a=c++,l;if(s(()=>{l=typeof n.delay==`function`?n.delay(a):n.delay},r.error),!i.aborted){if(l!==void 0)try{e(l,`Retry delay`)}catch(e){r.error(e);return}l===void 0||l===0?queueMicrotask(start):u=o.delay(start,l)}},next:r.next},i);d.closed||(l=d)};return start(),()=>{u?.(),l?.unsubscribe()}})}function first(e,t){return new Promise((n,i)=>{let o=new AbortController,abort=()=>{o.abort(),i(c(t?.signal,`Stream consumption aborted`))};if(t?.signal?.aborted){abort();return}t?.signal?.addEventListener(`abort`,abort,{once:!0}),a(e,{complete(){t?.signal?.removeEventListener(`abort`,abort),`defaultValue`in(t??{})?n(t.defaultValue):i(new r)},error(e){t?.signal?.removeEventListener(`abort`,abort),i(e)},next(e){t?.signal?.removeEventListener(`abort`,abort),o.abort(),n(e)}},o.signal)})}function last(e,t){return new Promise((n,i)=>{let o=new AbortController,abort=()=>{o.abort(),i(c(t?.signal,`Stream consumption aborted`))};if(t?.signal?.aborted){abort();return}let s=!1,l;t?.signal?.addEventListener(`abort`,abort,{once:!0}),a(e,{complete(){t?.signal?.removeEventListener(`abort`,abort),s?n(l):`defaultValue`in(t??{})?n(t.defaultValue):i(new r)},error(e){t?.signal?.removeEventListener(`abort`,abort),i(e)},next(e){s=!0,l=e}},o.signal)})}function toArray(e,r){return t(r.maxItems,`toArray maxItems`),new Promise((t,i)=>{let o=new AbortController,s=[],abort=()=>{o.abort(),i(c(r?.signal,`Stream consumption aborted`))};if(r.signal?.aborted){abort();return}r.signal?.addEventListener(`abort`,abort,{once:!0}),a(e,{complete(){r.signal?.removeEventListener(`abort`,abort),t(s)},error(e){r.signal?.removeEventListener(`abort`,abort),i(e)},next(e){if(s.length===r.maxItems){r.signal?.removeEventListener(`abort`,abort),o.abort(),i(new n(r.maxItems,`toArray maxItems exceeded`));return}s.push(e)}},o.signal)})}export{first,last,retry,toArray};
|
|
116
2
|
//# sourceMappingURL=utility.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utility.js","names":[],"sources":["../../src/operators/utility.ts"],"sourcesContent":["import { link } from '../_link';\nimport { assertNonNegativeInteger } from '../_numeric';\nimport { tryCall } from '../_safe';\nimport { defaultScheduler } from '../_scheduler';\nimport { stream } from '../core';\nimport { FluxCapacityError, FluxEmptyError } from '../errors';\nimport type { Operator, Stream, Subscription } from '../types';\n\nexport type RetryOptions = {\n
|
|
1
|
+
{"version":3,"file":"utility.js","names":[],"sources":["../../src/operators/utility.ts"],"sourcesContent":["import { abortError } from '@vielzeug/arsenal';\n\nimport { link } from '../_link.js';\nimport { assertDuration, assertNonNegativeInteger } from '../_numeric.js';\nimport { tryCall } from '../_safe.js';\nimport { defaultScheduler } from '../_scheduler.js';\nimport { stream } from '../core.js';\nimport { FluxCapacityError, FluxEmptyError } from '../errors.js';\nimport type { Operator, Stream, Subscription } from '../types.js';\n\nexport type RetryOptions = {\n times: number;\n delay?: number | ((attempt: number) => number);\n};\n\nexport type ToArrayOptions = {\n maxItems: number;\n signal?: AbortSignal;\n};\n\nexport type ValueOptions<T> = {\n signal?: AbortSignal;\n /** Resolved when the source completes empty instead of rejecting with `FluxEmptyError`. */\n defaultValue?: T;\n};\n\nexport function retry<T>(options: RetryOptions): Operator<T, T> {\n assertNonNegativeInteger(options.times, 'retry times');\n\n return (source) =>\n stream((sink, signal) => {\n let attempts = 0;\n let current: Subscription | undefined;\n let cancelDelay: (() => void) | undefined;\n\n const start = (): void => {\n if (signal.aborted) return;\n\n const subscription = link(\n source,\n {\n complete: sink.complete,\n error(reason) {\n if (attempts === options.times) {\n sink.error(reason);\n\n return;\n }\n\n const attempt = attempts++;\n let delay: number | undefined;\n\n tryCall(() => {\n delay = typeof options.delay === 'function' ? options.delay(attempt) : options.delay;\n }, sink.error);\n\n if (signal.aborted) return;\n\n if (delay !== undefined) {\n try {\n assertDuration(delay, 'Retry delay');\n } catch (reason) {\n sink.error(reason);\n return;\n }\n }\n\n if (delay === undefined || delay === 0) {\n queueMicrotask(start);\n } else {\n cancelDelay = defaultScheduler.delay(start, delay);\n }\n },\n next: sink.next,\n },\n signal,\n );\n\n if (!subscription.closed) current = subscription;\n };\n\n start();\n\n return () => {\n cancelDelay?.();\n current?.unsubscribe();\n };\n });\n}\n\nexport function first<T>(source: Stream<T>, options?: ValueOptions<T>): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const controller = new AbortController();\n const abort = (): void => {\n controller.abort();\n reject(abortError(options?.signal, 'Stream consumption aborted'));\n };\n\n if (options?.signal?.aborted) {\n abort();\n\n return;\n }\n\n options?.signal?.addEventListener('abort', abort, { once: true });\n link(\n source,\n {\n complete() {\n options?.signal?.removeEventListener('abort', abort);\n\n if ('defaultValue' in (options ?? {})) resolve(options!.defaultValue as T);\n else reject(new FluxEmptyError());\n },\n error(reason) {\n options?.signal?.removeEventListener('abort', abort);\n reject(reason);\n },\n next(value) {\n options?.signal?.removeEventListener('abort', abort);\n controller.abort();\n resolve(value);\n },\n },\n controller.signal,\n );\n });\n}\n\nexport function last<T>(source: Stream<T>, options?: ValueOptions<T>): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const controller = new AbortController();\n const abort = (): void => {\n controller.abort();\n reject(abortError(options?.signal, 'Stream consumption aborted'));\n };\n\n if (options?.signal?.aborted) {\n abort();\n\n return;\n }\n\n let emitted = false;\n let latest: T | undefined;\n\n options?.signal?.addEventListener('abort', abort, { once: true });\n link(\n source,\n {\n complete() {\n options?.signal?.removeEventListener('abort', abort);\n\n if (emitted) resolve(latest as T);\n else if ('defaultValue' in (options ?? {})) resolve(options!.defaultValue as T);\n else reject(new FluxEmptyError());\n },\n error(reason) {\n options?.signal?.removeEventListener('abort', abort);\n reject(reason);\n },\n next(value) {\n emitted = true;\n latest = value;\n },\n },\n controller.signal,\n );\n });\n}\n\nexport function toArray<T>(source: Stream<T>, options: ToArrayOptions): Promise<T[]> {\n assertNonNegativeInteger(options.maxItems, 'toArray maxItems');\n\n return new Promise<T[]>((resolve, reject) => {\n const controller = new AbortController();\n const values: T[] = [];\n const abort = (): void => {\n controller.abort();\n reject(abortError(options?.signal, 'Stream consumption aborted'));\n };\n\n if (options.signal?.aborted) {\n abort();\n\n return;\n }\n\n options.signal?.addEventListener('abort', abort, { once: true });\n link(\n source,\n {\n complete() {\n options.signal?.removeEventListener('abort', abort);\n resolve(values);\n },\n error(reason) {\n options.signal?.removeEventListener('abort', abort);\n reject(reason);\n },\n next(value) {\n if (values.length === options.maxItems) {\n options.signal?.removeEventListener('abort', abort);\n controller.abort();\n reject(new FluxCapacityError(options.maxItems, 'toArray maxItems exceeded'));\n\n return;\n }\n\n values.push(value);\n },\n },\n controller.signal,\n );\n });\n}\n"],"mappings":"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"}
|
package/dist/pipe.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function
|
|
1
|
+
function pipe(e,...t){return t.reduce((e,t)=>t(e),e)}exports.pipe=pipe;
|
|
2
2
|
//# sourceMappingURL=pipe.cjs.map
|
package/dist/pipe.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipe.cjs","names":[],"sources":["../src/pipe.ts"],"sourcesContent":["import type { Operator, PipedStream, Stream, ValidPipe } from './types';\n\n/** Standalone composition preserves contextual types for inline generic operators. */\nexport function pipe<Input>(source: Stream<Input>): Stream<Input>;\nexport function pipe<Input, A>(source: Stream<Input>, operator1: Operator<Input, A>): Stream<A>;\nexport function pipe<Input, A, B>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n): Stream<B>;\nexport function pipe<Input, A, B, C>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n): Stream<C>;\nexport function pipe<Input, A, B, C, D>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n): Stream<D>;\nexport function pipe<Input, A, B, C, D, E>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n): Stream<E>;\nexport function pipe<Input, A, B, C, D, E, F>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n): Stream<F>;\nexport function pipe<Input, A, B, C, D, E, F, G>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n): Stream<G>;\nexport function pipe<Input, A, B, C, D, E, F, G, H>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n): Stream<H>;\nexport function pipe<Input, A, B, C, D, E, F, G, H, I>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n operator9: Operator<H, I>,\n): Stream<I>;\nexport function pipe<Input, A, B, C, D, E, F, G, H, I, J>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n operator9: Operator<H, I>,\n operator10: Operator<I, J>,\n): Stream<J>;\nexport function pipe<Input, const Operators extends readonly unknown[]>(\n source: Stream<Input>,\n ...operators: Operators & ValidPipe<Input, Operators>\n): PipedStream<Input, Operators>;\nexport function pipe<Input, const Operators extends readonly unknown[]>(\n source: Stream<Input>,\n ...operators: Operators & ValidPipe<Input, Operators>\n): PipedStream<Input, Operators> {\n return operators.reduce(\n (current: Stream<unknown>, operator: Operator) => operator(current),\n source as Stream<unknown>,\n ) as PipedStream<Input, Operators>;\n}\n"],"mappings":"AA0FA,SAAgB,
|
|
1
|
+
{"version":3,"file":"pipe.cjs","names":[],"sources":["../src/pipe.ts"],"sourcesContent":["import type { Operator, PipedStream, Stream, ValidPipe } from './types.js';\n\n/** Standalone composition preserves contextual types for inline generic operators. */\nexport function pipe<Input>(source: Stream<Input>): Stream<Input>;\nexport function pipe<Input, A>(source: Stream<Input>, operator1: Operator<Input, A>): Stream<A>;\nexport function pipe<Input, A, B>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n): Stream<B>;\nexport function pipe<Input, A, B, C>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n): Stream<C>;\nexport function pipe<Input, A, B, C, D>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n): Stream<D>;\nexport function pipe<Input, A, B, C, D, E>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n): Stream<E>;\nexport function pipe<Input, A, B, C, D, E, F>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n): Stream<F>;\nexport function pipe<Input, A, B, C, D, E, F, G>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n): Stream<G>;\nexport function pipe<Input, A, B, C, D, E, F, G, H>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n): Stream<H>;\nexport function pipe<Input, A, B, C, D, E, F, G, H, I>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n operator9: Operator<H, I>,\n): Stream<I>;\nexport function pipe<Input, A, B, C, D, E, F, G, H, I, J>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n operator9: Operator<H, I>,\n operator10: Operator<I, J>,\n): Stream<J>;\nexport function pipe<Input, const Operators extends readonly unknown[]>(\n source: Stream<Input>,\n ...operators: Operators & ValidPipe<Input, Operators>\n): PipedStream<Input, Operators>;\nexport function pipe<Input, const Operators extends readonly unknown[]>(\n source: Stream<Input>,\n ...operators: Operators & ValidPipe<Input, Operators>\n): PipedStream<Input, Operators> {\n return operators.reduce(\n (current: Stream<unknown>, operator: Operator) => operator(current),\n source as Stream<unknown>,\n ) as PipedStream<Input, Operators>;\n}\n"],"mappings":"AA0FA,SAAgB,KACd,EACA,GAAG,EAC4B,CAC/B,OAAO,EAAU,QACd,EAA0B,IAAuB,EAAS,CAAO,EAClE,CACF,CACF"}
|
package/dist/pipe.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Operator, PipedStream, Stream, ValidPipe } from './types';
|
|
1
|
+
import type { Operator, PipedStream, Stream, ValidPipe } from './types.js';
|
|
2
2
|
/** Standalone composition preserves contextual types for inline generic operators. */
|
|
3
3
|
export declare function pipe<Input>(source: Stream<Input>): Stream<Input>;
|
|
4
4
|
export declare function pipe<Input, A>(source: Stream<Input>, operator1: Operator<Input, A>): Stream<A>;
|
package/dist/pipe.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipe.d.ts","sourceRoot":"","sources":["../src/pipe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"pipe.d.ts","sourceRoot":"","sources":["../src/pipe.ts"],"names":[],"mappings":"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"}
|
package/dist/pipe.js
CHANGED
package/dist/pipe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipe.js","names":[],"sources":["../src/pipe.ts"],"sourcesContent":["import type { Operator, PipedStream, Stream, ValidPipe } from './types';\n\n/** Standalone composition preserves contextual types for inline generic operators. */\nexport function pipe<Input>(source: Stream<Input>): Stream<Input>;\nexport function pipe<Input, A>(source: Stream<Input>, operator1: Operator<Input, A>): Stream<A>;\nexport function pipe<Input, A, B>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n): Stream<B>;\nexport function pipe<Input, A, B, C>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n): Stream<C>;\nexport function pipe<Input, A, B, C, D>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n): Stream<D>;\nexport function pipe<Input, A, B, C, D, E>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n): Stream<E>;\nexport function pipe<Input, A, B, C, D, E, F>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n): Stream<F>;\nexport function pipe<Input, A, B, C, D, E, F, G>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n): Stream<G>;\nexport function pipe<Input, A, B, C, D, E, F, G, H>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n): Stream<H>;\nexport function pipe<Input, A, B, C, D, E, F, G, H, I>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n operator9: Operator<H, I>,\n): Stream<I>;\nexport function pipe<Input, A, B, C, D, E, F, G, H, I, J>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n operator9: Operator<H, I>,\n operator10: Operator<I, J>,\n): Stream<J>;\nexport function pipe<Input, const Operators extends readonly unknown[]>(\n source: Stream<Input>,\n ...operators: Operators & ValidPipe<Input, Operators>\n): PipedStream<Input, Operators>;\nexport function pipe<Input, const Operators extends readonly unknown[]>(\n source: Stream<Input>,\n ...operators: Operators & ValidPipe<Input, Operators>\n): PipedStream<Input, Operators> {\n return operators.reduce(\n (current: Stream<unknown>, operator: Operator) => operator(current),\n source as Stream<unknown>,\n ) as PipedStream<Input, Operators>;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"pipe.js","names":[],"sources":["../src/pipe.ts"],"sourcesContent":["import type { Operator, PipedStream, Stream, ValidPipe } from './types.js';\n\n/** Standalone composition preserves contextual types for inline generic operators. */\nexport function pipe<Input>(source: Stream<Input>): Stream<Input>;\nexport function pipe<Input, A>(source: Stream<Input>, operator1: Operator<Input, A>): Stream<A>;\nexport function pipe<Input, A, B>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n): Stream<B>;\nexport function pipe<Input, A, B, C>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n): Stream<C>;\nexport function pipe<Input, A, B, C, D>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n): Stream<D>;\nexport function pipe<Input, A, B, C, D, E>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n): Stream<E>;\nexport function pipe<Input, A, B, C, D, E, F>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n): Stream<F>;\nexport function pipe<Input, A, B, C, D, E, F, G>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n): Stream<G>;\nexport function pipe<Input, A, B, C, D, E, F, G, H>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n): Stream<H>;\nexport function pipe<Input, A, B, C, D, E, F, G, H, I>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n operator9: Operator<H, I>,\n): Stream<I>;\nexport function pipe<Input, A, B, C, D, E, F, G, H, I, J>(\n source: Stream<Input>,\n operator1: Operator<Input, A>,\n operator2: Operator<A, B>,\n operator3: Operator<B, C>,\n operator4: Operator<C, D>,\n operator5: Operator<D, E>,\n operator6: Operator<E, F>,\n operator7: Operator<F, G>,\n operator8: Operator<G, H>,\n operator9: Operator<H, I>,\n operator10: Operator<I, J>,\n): Stream<J>;\nexport function pipe<Input, const Operators extends readonly unknown[]>(\n source: Stream<Input>,\n ...operators: Operators & ValidPipe<Input, Operators>\n): PipedStream<Input, Operators>;\nexport function pipe<Input, const Operators extends readonly unknown[]>(\n source: Stream<Input>,\n ...operators: Operators & ValidPipe<Input, Operators>\n): PipedStream<Input, Operators> {\n return operators.reduce(\n (current: Stream<unknown>, operator: Operator) => operator(current),\n source as Stream<unknown>,\n ) as PipedStream<Input, Operators>;\n}\n"],"mappings":"AA0FA,SAAgB,KACd,EACA,GAAG,EAC4B,CAC/B,OAAO,EAAU,QACd,EAA0B,IAAuB,EAAS,CAAO,EAClE,CACF,CACF"}
|
package/dist/subjects.d.ts
CHANGED
package/dist/subjects.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subjects.d.ts","sourceRoot":"","sources":["../src/subjects.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"subjects.d.ts","sourceRoot":"","sources":["../src/subjects.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vielzeug/flux",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "Minimal push streams with explicit ownership, buffering, and
|
|
3
|
+
"version": "26.10.0",
|
|
4
|
+
"description": "Minimal push streams with explicit ownership, bounded buffering, and structural bridges",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/helmuthdu/vielzeug",
|
|
@@ -27,52 +27,12 @@
|
|
|
27
27
|
"import": "./dist/async.js",
|
|
28
28
|
"require": "./dist/async.cjs",
|
|
29
29
|
"types": "./dist/async.d.ts"
|
|
30
|
-
},
|
|
31
|
-
"./courier": {
|
|
32
|
-
"import": "./dist/courier.js",
|
|
33
|
-
"require": "./dist/courier.cjs",
|
|
34
|
-
"types": "./dist/courier.d.ts"
|
|
35
|
-
},
|
|
36
|
-
"./herald": {
|
|
37
|
-
"import": "./dist/herald.js",
|
|
38
|
-
"require": "./dist/herald.cjs",
|
|
39
|
-
"types": "./dist/herald.d.ts"
|
|
40
|
-
},
|
|
41
|
-
"./pulse": {
|
|
42
|
-
"import": "./dist/pulse.js",
|
|
43
|
-
"require": "./dist/pulse.cjs",
|
|
44
|
-
"types": "./dist/pulse.d.ts"
|
|
45
|
-
},
|
|
46
|
-
"./ripple": {
|
|
47
|
-
"import": "./dist/ripple.js",
|
|
48
|
-
"require": "./dist/ripple.cjs",
|
|
49
|
-
"types": "./dist/ripple.d.ts"
|
|
50
|
-
},
|
|
51
|
-
"./subjects": {
|
|
52
|
-
"import": "./dist/subjects.js",
|
|
53
|
-
"require": "./dist/subjects.cjs",
|
|
54
|
-
"types": "./dist/subjects.d.ts"
|
|
55
30
|
}
|
|
56
31
|
},
|
|
57
32
|
"typesVersions": {
|
|
58
33
|
"*": {
|
|
59
34
|
"async": [
|
|
60
35
|
"dist/async.d.ts"
|
|
61
|
-
],
|
|
62
|
-
"courier": [
|
|
63
|
-
"dist/courier.d.ts"
|
|
64
|
-
],
|
|
65
|
-
"herald": [
|
|
66
|
-
"dist/herald.d.ts"
|
|
67
|
-
],
|
|
68
|
-
"pulse": [
|
|
69
|
-
"dist/pulse.d.ts"
|
|
70
|
-
],
|
|
71
|
-
"ripple": [
|
|
72
|
-
"dist/ripple.d.ts"
|
|
73
|
-
],
|
|
74
|
-
"subjects": [
|
|
75
|
-
"dist/subjects.d.ts"
|
|
76
36
|
]
|
|
77
37
|
}
|
|
78
38
|
},
|
|
@@ -82,43 +42,23 @@
|
|
|
82
42
|
"registry": "https://registry.npmjs.org/"
|
|
83
43
|
},
|
|
84
44
|
"scripts": {
|
|
85
|
-
"build": "vite build && pnpm run build:bundle && pnpm run build:types && pnpm run verify:exports",
|
|
45
|
+
"build": "vite build && pnpm --silent run build:bundle && pnpm --silent run build:types && pnpm --silent run test:types && pnpm --silent run verify:exports",
|
|
86
46
|
"build:bundle": "vite build --config vite.bundle.config.ts",
|
|
87
47
|
"build:types": "tsc -p tsconfig.declarations.json",
|
|
88
48
|
"fix": "biome check --write src",
|
|
89
49
|
"lint": "biome ci src",
|
|
90
|
-
"prepublishOnly": "pnpm run build",
|
|
50
|
+
"prepublishOnly": "pnpm --silent run build",
|
|
91
51
|
"test": "vitest",
|
|
52
|
+
"test:types": "tsc -p tsconfig.type-tests.json",
|
|
92
53
|
"verify:exports": "node scripts/verify-exports.mjs && node scripts/verify-package-exports.mjs"
|
|
93
54
|
},
|
|
94
|
-
"
|
|
95
|
-
"@vielzeug/
|
|
96
|
-
"@vielzeug/herald": "2.3.0",
|
|
97
|
-
"@vielzeug/pulse": "2.4.0",
|
|
98
|
-
"@vielzeug/ripple": "2.3.0"
|
|
99
|
-
},
|
|
100
|
-
"peerDependenciesMeta": {
|
|
101
|
-
"@vielzeug/courier": {
|
|
102
|
-
"optional": true
|
|
103
|
-
},
|
|
104
|
-
"@vielzeug/herald": {
|
|
105
|
-
"optional": true
|
|
106
|
-
},
|
|
107
|
-
"@vielzeug/pulse": {
|
|
108
|
-
"optional": true
|
|
109
|
-
},
|
|
110
|
-
"@vielzeug/ripple": {
|
|
111
|
-
"optional": true
|
|
112
|
-
}
|
|
55
|
+
"dependencies": {
|
|
56
|
+
"@vielzeug/arsenal": "26.10.0"
|
|
113
57
|
},
|
|
114
58
|
"devDependencies": {
|
|
115
|
-
"@types/node": "^26.2
|
|
116
|
-
"@vielzeug/courier": "2.3.1",
|
|
117
|
-
"@vielzeug/herald": "2.3.0",
|
|
118
|
-
"@vielzeug/pulse": "2.4.0",
|
|
119
|
-
"@vielzeug/ripple": "2.3.0",
|
|
59
|
+
"@types/node": "^26.6.2",
|
|
120
60
|
"typescript": "^6.0.3",
|
|
121
|
-
"vite": "^8.
|
|
122
|
-
"vitest": "^
|
|
61
|
+
"vite": "^8.3.0",
|
|
62
|
+
"vitest": "^5.0.1"
|
|
123
63
|
}
|
|
124
64
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"courier.cjs","names":[],"sources":["../../src/adapters/courier.ts"],"sourcesContent":["import type { AsyncState, QueryCache, QueryDefinition } from '@vielzeug/courier';\nimport { stream } from '../core';\nimport type { Stream } from '../types';\n\nexport function fromQuery<T>(cache: QueryCache, definition: QueryDefinition<T>): Stream<AsyncState<T> | null> {\n return stream((sink) => {\n const snapshot = () => cache.getSnapshot<T>(definition.key);\n\n sink.next(snapshot());\n\n return cache.subscribe(definition.key, () => sink.next(snapshot()));\n });\n}\n"],"mappings":"+BAIA,SAAgB,EAAa,EAAmB,EAA8D,CAC5G,OAAO,EAAA,OAAQ,GAAS,CACtB,IAAM,MAAiB,EAAM,YAAe,EAAW,GAAG,EAI1D,OAFA,EAAK,KAAK,EAAS,CAAC,EAEb,EAAM,UAAU,EAAW,QAAW,EAAK,KAAK,EAAS,CAAC,CAAC,CACpE,CAAC,CACH"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { AsyncState, QueryCache, QueryDefinition } from '@vielzeug/courier';
|
|
2
|
-
import type { Stream } from '../types';
|
|
3
|
-
export declare function fromQuery<T>(cache: QueryCache, definition: QueryDefinition<T>): Stream<AsyncState<T> | null>;
|
|
4
|
-
//# sourceMappingURL=courier.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"courier.d.ts","sourceRoot":"","sources":["../../src/adapters/courier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEjF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAQ5G"}
|
package/dist/adapters/courier.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { stream as e } from "../core.js";
|
|
2
|
-
//#region src/adapters/courier.ts
|
|
3
|
-
function t(t, n) {
|
|
4
|
-
return e((e) => {
|
|
5
|
-
let r = () => t.getSnapshot(n.key);
|
|
6
|
-
return e.next(r()), t.subscribe(n.key, () => e.next(r()));
|
|
7
|
-
});
|
|
8
|
-
}
|
|
9
|
-
//#endregion
|
|
10
|
-
export { t as fromQuery };
|
|
11
|
-
|
|
12
|
-
//# sourceMappingURL=courier.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"courier.js","names":[],"sources":["../../src/adapters/courier.ts"],"sourcesContent":["import type { AsyncState, QueryCache, QueryDefinition } from '@vielzeug/courier';\nimport { stream } from '../core';\nimport type { Stream } from '../types';\n\nexport function fromQuery<T>(cache: QueryCache, definition: QueryDefinition<T>): Stream<AsyncState<T> | null> {\n return stream((sink) => {\n const snapshot = () => cache.getSnapshot<T>(definition.key);\n\n sink.next(snapshot());\n\n return cache.subscribe(definition.key, () => sink.next(snapshot()));\n });\n}\n"],"mappings":";;AAIA,SAAgB,EAAa,GAAmB,GAA8D;CAC5G,OAAO,GAAQ,MAAS;EACtB,IAAM,UAAiB,EAAM,YAAe,EAAW,GAAG;EAI1D,OAFA,EAAK,KAAK,EAAS,CAAC,GAEb,EAAM,UAAU,EAAW,WAAW,EAAK,KAAK,EAAS,CAAC,CAAC;CACpE,CAAC;AACH"}
|
package/dist/adapters/herald.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require("../core.cjs"),t=require("../_link.cjs"),n=require("../_safe.cjs");function r(t,n){return e.stream(e=>t.on(n,t=>e.next(t)))}function i(r,i){return a=>e.stream((e,o)=>t.link(a,{complete:e.complete,error:e.error,next(t){n.tryCall(()=>{r.emit(i,...t===void 0?[]:[t]),e.next(t)},e.error)}},o).unsubscribe)}exports.fromBus=r,exports.toBus=i;
|
|
2
|
-
//# sourceMappingURL=herald.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"herald.cjs","names":[],"sources":["../../src/adapters/herald.ts"],"sourcesContent":["import type { Bus, EventKey, EventMap } from '@vielzeug/herald';\nimport { link } from '../_link';\nimport { tryCall } from '../_safe';\nimport { stream } from '../core';\nimport type { Operator, Stream } from '../types';\n\nexport function fromBus<T extends EventMap, K extends EventKey<T>>(bus: Bus<T>, event: K): Stream<T[K]> {\n return stream((sink) => bus.on(event, (payload) => sink.next(payload)));\n}\n\nexport function toBus<T extends EventMap, K extends EventKey<T>>(bus: Bus<T>, event: K): Operator<T[K], T[K]> {\n return (source) =>\n stream(\n (sink, signal) =>\n link(\n source,\n {\n complete: sink.complete,\n error: sink.error,\n next(value) {\n tryCall(() => {\n bus.emit(event, ...((value === undefined ? [] : [value]) as T[K] extends void ? [] : [T[K]]));\n sink.next(value);\n }, sink.error);\n },\n },\n signal,\n ).unsubscribe,\n );\n}\n"],"mappings":"mFAMA,SAAgB,EAAmD,EAAa,EAAwB,CACtG,OAAO,EAAA,OAAQ,GAAS,EAAI,GAAG,EAAQ,GAAY,EAAK,KAAK,CAAO,CAAC,CAAC,CACxE,CAEA,SAAgB,EAAiD,EAAa,EAAgC,CAC5G,MAAQ,IACN,EAAA,QACG,EAAM,IACL,EAAA,KACE,EACA,CACE,SAAU,EAAK,SACf,MAAO,EAAK,MACZ,KAAK,EAAO,CACV,EAAA,YAAc,CACZ,EAAI,KAAK,EAAO,GAAK,IAAU,IAAA,GAAY,CAAC,EAAI,CAAC,CAAK,CAAsC,EAC5F,EAAK,KAAK,CAAK,CACjB,EAAG,EAAK,KAAK,CACf,CACF,EACA,CACF,CAAC,CAAC,WACN,CACJ"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { Bus, EventKey, EventMap } from '@vielzeug/herald';
|
|
2
|
-
import type { Operator, Stream } from '../types';
|
|
3
|
-
export declare function fromBus<T extends EventMap, K extends EventKey<T>>(bus: Bus<T>, event: K): Stream<T[K]>;
|
|
4
|
-
export declare function toBus<T extends EventMap, K extends EventKey<T>>(bus: Bus<T>, event: K): Operator<T[K], T[K]>;
|
|
5
|
-
//# sourceMappingURL=herald.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"herald.d.ts","sourceRoot":"","sources":["../../src/adapters/herald.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEjD,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAEtG;AAED,wBAAgB,KAAK,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAmB5G"}
|
package/dist/adapters/herald.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { stream as e } from "../core.js";
|
|
2
|
-
import { link as t } from "../_link.js";
|
|
3
|
-
import { tryCall as n } from "../_safe.js";
|
|
4
|
-
//#region src/adapters/herald.ts
|
|
5
|
-
function r(t, n) {
|
|
6
|
-
return e((e) => t.on(n, (t) => e.next(t)));
|
|
7
|
-
}
|
|
8
|
-
function i(r, i) {
|
|
9
|
-
return (a) => e((e, o) => t(a, {
|
|
10
|
-
complete: e.complete,
|
|
11
|
-
error: e.error,
|
|
12
|
-
next(t) {
|
|
13
|
-
n(() => {
|
|
14
|
-
r.emit(i, ...t === void 0 ? [] : [t]), e.next(t);
|
|
15
|
-
}, e.error);
|
|
16
|
-
}
|
|
17
|
-
}, o).unsubscribe);
|
|
18
|
-
}
|
|
19
|
-
//#endregion
|
|
20
|
-
export { r as fromBus, i as toBus };
|
|
21
|
-
|
|
22
|
-
//# sourceMappingURL=herald.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"herald.js","names":[],"sources":["../../src/adapters/herald.ts"],"sourcesContent":["import type { Bus, EventKey, EventMap } from '@vielzeug/herald';\nimport { link } from '../_link';\nimport { tryCall } from '../_safe';\nimport { stream } from '../core';\nimport type { Operator, Stream } from '../types';\n\nexport function fromBus<T extends EventMap, K extends EventKey<T>>(bus: Bus<T>, event: K): Stream<T[K]> {\n return stream((sink) => bus.on(event, (payload) => sink.next(payload)));\n}\n\nexport function toBus<T extends EventMap, K extends EventKey<T>>(bus: Bus<T>, event: K): Operator<T[K], T[K]> {\n return (source) =>\n stream(\n (sink, signal) =>\n link(\n source,\n {\n complete: sink.complete,\n error: sink.error,\n next(value) {\n tryCall(() => {\n bus.emit(event, ...((value === undefined ? [] : [value]) as T[K] extends void ? [] : [T[K]]));\n sink.next(value);\n }, sink.error);\n },\n },\n signal,\n ).unsubscribe,\n );\n}\n"],"mappings":";;;;AAMA,SAAgB,EAAmD,GAAa,GAAwB;CACtG,OAAO,GAAQ,MAAS,EAAI,GAAG,IAAQ,MAAY,EAAK,KAAK,CAAO,CAAC,CAAC;AACxE;AAEA,SAAgB,EAAiD,GAAa,GAAgC;CAC5G,QAAQ,MACN,GACG,GAAM,MACL,EACE,GACA;EACE,UAAU,EAAK;EACf,OAAO,EAAK;EACZ,KAAK,GAAO;GACV,QAAc;IAEZ,AADA,EAAI,KAAK,GAAO,GAAK,MAAU,KAAA,IAAY,CAAC,IAAI,CAAC,CAAK,CAAsC,GAC5F,EAAK,KAAK,CAAK;GACjB,GAAG,EAAK,KAAK;EACf;CACF,GACA,CACF,CAAC,CAAC,WACN;AACJ"}
|
package/dist/adapters/pulse.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require("../core.cjs");function t(t,n){return e.stream(e=>t.on(n,t=>e.next(t)))}function n(t){return e.stream(e=>{e.next(t.presence.value);let n=t.onJoin(()=>e.next(t.presence.value)),r=t.onLeave(()=>e.next(t.presence.value));return()=>{n(),r()}})}exports.fromPulse=t,exports.fromRoomPresence=n;
|
|
2
|
-
//# sourceMappingURL=pulse.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pulse.cjs","names":[],"sources":["../../src/adapters/pulse.ts"],"sourcesContent":["import type { EventKey, PresenceRoomScope, Pulse, PulseSchema, ServerEvents } from '@vielzeug/pulse';\nimport { stream } from '../core';\nimport type { Stream } from '../types';\n\nexport function fromPulse<S extends PulseSchema, K extends EventKey<ServerEvents<S>>>(\n pulse: Pulse<S>,\n event: K,\n): Stream<ServerEvents<S>[K]> {\n return stream((sink) => pulse.on(event, (payload) => sink.next(payload)));\n}\n\nexport function fromRoomPresence<T>(room: PresenceRoomScope<T>): Stream<ReadonlyMap<string, T>> {\n return stream((sink) => {\n sink.next(room.presence.value);\n\n const stopJoin = room.onJoin(() => sink.next(room.presence.value));\n const stopLeave = room.onLeave(() => sink.next(room.presence.value));\n\n return () => {\n stopJoin();\n stopLeave();\n };\n });\n}\n"],"mappings":"+BAIA,SAAgB,EACd,EACA,EAC4B,CAC5B,OAAO,EAAA,OAAQ,GAAS,EAAM,GAAG,EAAQ,GAAY,EAAK,KAAK,CAAO,CAAC,CAAC,CAC1E,CAEA,SAAgB,EAAoB,EAA4D,CAC9F,OAAO,EAAA,OAAQ,GAAS,CACtB,EAAK,KAAK,EAAK,SAAS,KAAK,EAE7B,IAAM,EAAW,EAAK,WAAa,EAAK,KAAK,EAAK,SAAS,KAAK,CAAC,EAC3D,EAAY,EAAK,YAAc,EAAK,KAAK,EAAK,SAAS,KAAK,CAAC,EAEnE,UAAa,CACX,EAAS,EACT,EAAU,CACZ,CACF,CAAC,CACH"}
|
package/dist/adapters/pulse.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { EventKey, PresenceRoomScope, Pulse, PulseSchema, ServerEvents } from '@vielzeug/pulse';
|
|
2
|
-
import type { Stream } from '../types';
|
|
3
|
-
export declare function fromPulse<S extends PulseSchema, K extends EventKey<ServerEvents<S>>>(pulse: Pulse<S>, event: K): Stream<ServerEvents<S>[K]>;
|
|
4
|
-
export declare function fromRoomPresence<T>(room: PresenceRoomScope<T>): Stream<ReadonlyMap<string, T>>;
|
|
5
|
-
//# sourceMappingURL=pulse.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pulse.d.ts","sourceRoot":"","sources":["../../src/adapters/pulse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAErG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,wBAAgB,SAAS,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAClF,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,KAAK,EAAE,CAAC,GACP,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAE5B;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAY9F"}
|
package/dist/adapters/pulse.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { stream as e } from "../core.js";
|
|
2
|
-
//#region src/adapters/pulse.ts
|
|
3
|
-
function t(t, n) {
|
|
4
|
-
return e((e) => t.on(n, (t) => e.next(t)));
|
|
5
|
-
}
|
|
6
|
-
function n(t) {
|
|
7
|
-
return e((e) => {
|
|
8
|
-
e.next(t.presence.value);
|
|
9
|
-
let n = t.onJoin(() => e.next(t.presence.value)), r = t.onLeave(() => e.next(t.presence.value));
|
|
10
|
-
return () => {
|
|
11
|
-
n(), r();
|
|
12
|
-
};
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
//#endregion
|
|
16
|
-
export { t as fromPulse, n as fromRoomPresence };
|
|
17
|
-
|
|
18
|
-
//# sourceMappingURL=pulse.js.map
|