silentium 0.0.116 → 0.0.117
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/silentium.cjs +67 -71
- package/dist/silentium.cjs.map +1 -1
- package/dist/silentium.d.ts +8 -7
- package/dist/silentium.js +67 -71
- package/dist/silentium.js.map +1 -1
- package/dist/silentium.min.js +1 -1
- package/dist/silentium.min.mjs +1 -1
- package/dist/silentium.min.mjs.map +1 -1
- package/dist/silentium.mjs +67 -71
- package/dist/silentium.mjs.map +1 -1
- package/package.json +1 -1
- package/src/base/Local.ts +5 -5
- package/src/base/Transport.ts +11 -4
- package/src/components/All.ts +16 -14
- package/src/components/Applied.ts +4 -4
- package/src/components/Chain.ts +21 -25
- package/src/components/Filtered.ts +8 -8
- package/src/components/FromEvent.ts +11 -10
- package/src/components/Map.ts +8 -9
- package/src/components/Once.ts +6 -6
- package/src/components/Sequence.ts +5 -5
- package/src/components/Stream.ts +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.0.117](https://github.com/silentium-lab/silentium/compare/v0.0.116...v0.0.117) (2025-11-01)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **main:** transport parent component ([686edae](https://github.com/silentium-lab/silentium/commit/686edae2bda0150411f3d9aeb346ca0c0b0d3d7e))
|
|
11
|
+
|
|
5
12
|
### [0.0.116](https://github.com/silentium-lab/silentium/compare/v0.0.115...v0.0.116) (2025-10-31)
|
|
6
13
|
|
|
7
14
|
|
package/dist/silentium.cjs
CHANGED
|
@@ -105,11 +105,11 @@ class TheLocal {
|
|
|
105
105
|
constructor($base) {
|
|
106
106
|
this.$base = $base;
|
|
107
107
|
__publicField$h(this, "destroyed", false);
|
|
108
|
-
__publicField$h(this, "transport",
|
|
109
|
-
if (!
|
|
110
|
-
|
|
108
|
+
__publicField$h(this, "transport", TransportParent(function(v, child) {
|
|
109
|
+
if (!child.destroyed) {
|
|
110
|
+
this.use(v);
|
|
111
111
|
}
|
|
112
|
-
}));
|
|
112
|
+
}, this));
|
|
113
113
|
ensureEvent($base, "Local: $base");
|
|
114
114
|
}
|
|
115
115
|
event(transport) {
|
|
@@ -207,7 +207,10 @@ class TheTransportEvent {
|
|
|
207
207
|
return this.executor(value);
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
|
-
|
|
210
|
+
function TransportParent(executor, ...args) {
|
|
211
|
+
return new TheTransportParent(executor, args);
|
|
212
|
+
}
|
|
213
|
+
class TheTransportParent {
|
|
211
214
|
constructor(executor, args = [], _child) {
|
|
212
215
|
this.executor = executor;
|
|
213
216
|
this.args = args;
|
|
@@ -218,11 +221,11 @@ class ParentTransport {
|
|
|
218
221
|
if (this._child === void 0) {
|
|
219
222
|
throw new Error("no base transport");
|
|
220
223
|
}
|
|
221
|
-
this.executor(
|
|
224
|
+
this.executor.call(this._child, value, ...this.args);
|
|
222
225
|
return this;
|
|
223
226
|
}
|
|
224
227
|
child(transport, ...args) {
|
|
225
|
-
return new
|
|
228
|
+
return new TheTransportParent(
|
|
226
229
|
this.executor,
|
|
227
230
|
[...this.args, ...args],
|
|
228
231
|
transport
|
|
@@ -241,26 +244,24 @@ function All(...events) {
|
|
|
241
244
|
}
|
|
242
245
|
class TheAll {
|
|
243
246
|
constructor(...events) {
|
|
244
|
-
__publicField$f(this, "
|
|
245
|
-
__publicField$f(this, "
|
|
247
|
+
__publicField$f(this, "known");
|
|
248
|
+
__publicField$f(this, "filled", /* @__PURE__ */ new Set());
|
|
246
249
|
__publicField$f(this, "$events");
|
|
247
250
|
__publicField$f(this, "result", {});
|
|
248
|
-
__publicField$f(this, "transport",
|
|
249
|
-
(
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
child.use(Object.values(this.result));
|
|
254
|
-
}
|
|
251
|
+
__publicField$f(this, "transport", TransportParent(function(v, child, key) {
|
|
252
|
+
child.filled.add(key);
|
|
253
|
+
child.result[key] = v;
|
|
254
|
+
if (isAllFilled(child.filled, child.known)) {
|
|
255
|
+
this.use(Object.values(child.result));
|
|
255
256
|
}
|
|
256
|
-
));
|
|
257
|
-
this.
|
|
257
|
+
}, this));
|
|
258
|
+
this.known = new Set(Object.keys(events));
|
|
258
259
|
this.$events = events;
|
|
259
260
|
}
|
|
260
261
|
event(transport) {
|
|
261
262
|
Object.entries(this.$events).forEach(([key, event]) => {
|
|
262
263
|
ensureEvent(event, "All: item");
|
|
263
|
-
this.
|
|
264
|
+
this.known.add(key);
|
|
264
265
|
event.event(this.transport.child(transport, key));
|
|
265
266
|
});
|
|
266
267
|
return this;
|
|
@@ -297,9 +298,9 @@ class TheApplied {
|
|
|
297
298
|
constructor($base, applier) {
|
|
298
299
|
this.$base = $base;
|
|
299
300
|
this.applier = applier;
|
|
300
|
-
__publicField$d(this, "transport",
|
|
301
|
-
|
|
302
|
-
}));
|
|
301
|
+
__publicField$d(this, "transport", TransportParent(function(v, child) {
|
|
302
|
+
this.use(child.applier(v));
|
|
303
|
+
}, this));
|
|
303
304
|
ensureEvent($base, "Applied: base");
|
|
304
305
|
}
|
|
305
306
|
event(transport) {
|
|
@@ -348,25 +349,23 @@ function Chain(...events) {
|
|
|
348
349
|
class TheChain {
|
|
349
350
|
constructor(...events) {
|
|
350
351
|
__publicField$c(this, "$events");
|
|
351
|
-
__publicField$c(this, "
|
|
352
|
+
__publicField$c(this, "$latest");
|
|
352
353
|
__publicField$c(this, "handleEvent", (index, transport) => {
|
|
353
354
|
const event = this.$events[index];
|
|
354
|
-
const
|
|
355
|
-
event.event(this.oneEventTransport.child(transport,
|
|
355
|
+
const next = this.$events[index + 1];
|
|
356
|
+
event.event(this.oneEventTransport.child(transport, next, index));
|
|
356
357
|
});
|
|
357
|
-
__publicField$c(this, "oneEventTransport",
|
|
358
|
-
(
|
|
359
|
-
|
|
360
|
-
this.lastValue = v;
|
|
361
|
-
}
|
|
362
|
-
if (this.lastValue) {
|
|
363
|
-
child.use(this.lastValue);
|
|
364
|
-
}
|
|
365
|
-
if (nextI && !this.lastValue) {
|
|
366
|
-
this.handleEvent(index + 1, child);
|
|
367
|
-
}
|
|
358
|
+
__publicField$c(this, "oneEventTransport", TransportParent(function(v, child, next, index) {
|
|
359
|
+
if (!next) {
|
|
360
|
+
child.$latest = v;
|
|
368
361
|
}
|
|
369
|
-
|
|
362
|
+
if (child.$latest) {
|
|
363
|
+
this.use(child.$latest);
|
|
364
|
+
}
|
|
365
|
+
if (next && !child.$latest) {
|
|
366
|
+
child.handleEvent(index + 1, this);
|
|
367
|
+
}
|
|
368
|
+
}, this));
|
|
370
369
|
this.$events = events;
|
|
371
370
|
}
|
|
372
371
|
event(transport) {
|
|
@@ -404,13 +403,13 @@ class TheFiltered {
|
|
|
404
403
|
this.$base = $base;
|
|
405
404
|
this.predicate = predicate;
|
|
406
405
|
this.defaultValue = defaultValue;
|
|
407
|
-
__publicField$b(this, "parent",
|
|
408
|
-
if (
|
|
409
|
-
|
|
410
|
-
} else if (
|
|
411
|
-
|
|
406
|
+
__publicField$b(this, "parent", TransportParent(function(v, child) {
|
|
407
|
+
if (child.predicate(v)) {
|
|
408
|
+
this.use(v);
|
|
409
|
+
} else if (child.defaultValue !== void 0) {
|
|
410
|
+
this.use(child.defaultValue);
|
|
412
411
|
}
|
|
413
|
-
}));
|
|
412
|
+
}, this));
|
|
414
413
|
}
|
|
415
414
|
event(transport) {
|
|
416
415
|
this.$base.event(this.parent.child(transport));
|
|
@@ -441,15 +440,13 @@ class TheFromEvent {
|
|
|
441
440
|
this.lastTransport.use(v);
|
|
442
441
|
}
|
|
443
442
|
});
|
|
444
|
-
__publicField$a(this, "parent",
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
return;
|
|
449
|
-
}
|
|
450
|
-
emitter[subscribe](eventName, this.handler);
|
|
443
|
+
__publicField$a(this, "parent", TransportParent(function([emitter, eventName, subscribe], child) {
|
|
444
|
+
child.lastTransport = this;
|
|
445
|
+
if (!emitter?.[subscribe]) {
|
|
446
|
+
return;
|
|
451
447
|
}
|
|
452
|
-
|
|
448
|
+
emitter[subscribe](eventName, child.handler);
|
|
449
|
+
}, this));
|
|
453
450
|
}
|
|
454
451
|
event(transport) {
|
|
455
452
|
const a = All(this.$emitter, this.$eventName, this.$subscribeMethod);
|
|
@@ -531,12 +528,12 @@ class TheOnce {
|
|
|
531
528
|
constructor($base) {
|
|
532
529
|
this.$base = $base;
|
|
533
530
|
__publicField$8(this, "isFilled", false);
|
|
534
|
-
__publicField$8(this, "parent",
|
|
535
|
-
if (!
|
|
536
|
-
|
|
537
|
-
|
|
531
|
+
__publicField$8(this, "parent", TransportParent(function(v, child) {
|
|
532
|
+
if (!child.isFilled) {
|
|
533
|
+
child.isFilled = true;
|
|
534
|
+
this.use(v);
|
|
538
535
|
}
|
|
539
|
-
}));
|
|
536
|
+
}, this));
|
|
540
537
|
}
|
|
541
538
|
event(transport) {
|
|
542
539
|
this.$base.event(this.parent.child(transport));
|
|
@@ -646,19 +643,18 @@ class TheMap {
|
|
|
646
643
|
constructor($base, $target) {
|
|
647
644
|
this.$base = $base;
|
|
648
645
|
this.$target = $target;
|
|
649
|
-
__publicField$4(this, "parent",
|
|
646
|
+
__publicField$4(this, "parent", TransportParent(function(v, child) {
|
|
650
647
|
const infos = [];
|
|
651
648
|
v.forEach((val) => {
|
|
652
|
-
let
|
|
653
|
-
if (!isEvent(
|
|
654
|
-
|
|
649
|
+
let $val = val;
|
|
650
|
+
if (!isEvent($val)) {
|
|
651
|
+
$val = Of($val);
|
|
655
652
|
}
|
|
656
|
-
const info =
|
|
653
|
+
const info = child.$target.use($val);
|
|
657
654
|
infos.push(info);
|
|
658
655
|
});
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
}));
|
|
656
|
+
All(...infos).event(this);
|
|
657
|
+
}, this));
|
|
662
658
|
}
|
|
663
659
|
event(transport) {
|
|
664
660
|
this.$base.event(this.parent.child(transport));
|
|
@@ -715,10 +711,10 @@ class TheSequence {
|
|
|
715
711
|
constructor($base) {
|
|
716
712
|
this.$base = $base;
|
|
717
713
|
__publicField$2(this, "result", []);
|
|
718
|
-
__publicField$2(this, "parent",
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
}));
|
|
714
|
+
__publicField$2(this, "parent", TransportParent(function(v, child) {
|
|
715
|
+
child.result.push(v);
|
|
716
|
+
this.use(child.result);
|
|
717
|
+
}, this));
|
|
722
718
|
}
|
|
723
719
|
event(transport) {
|
|
724
720
|
this.$base.event(this.parent.child(transport));
|
|
@@ -735,9 +731,9 @@ function Stream($base) {
|
|
|
735
731
|
class TheStream {
|
|
736
732
|
constructor($base) {
|
|
737
733
|
this.$base = $base;
|
|
738
|
-
__publicField$1(this, "parent",
|
|
734
|
+
__publicField$1(this, "parent", TransportParent(function(v) {
|
|
739
735
|
v.forEach((cv) => {
|
|
740
|
-
|
|
736
|
+
this.use(cv);
|
|
741
737
|
});
|
|
742
738
|
}));
|
|
743
739
|
}
|
|
@@ -825,7 +821,6 @@ exports.Map = Map;
|
|
|
825
821
|
exports.Of = Of;
|
|
826
822
|
exports.Once = Once;
|
|
827
823
|
exports.OwnerPool = OwnerPool;
|
|
828
|
-
exports.ParentTransport = ParentTransport;
|
|
829
824
|
exports.Primitive = Primitive;
|
|
830
825
|
exports.Sequence = Sequence;
|
|
831
826
|
exports.Shared = Shared;
|
|
@@ -840,6 +835,7 @@ exports.TransportApplied = TransportApplied;
|
|
|
840
835
|
exports.TransportArgs = TransportArgs;
|
|
841
836
|
exports.TransportDestroyable = TransportDestroyable;
|
|
842
837
|
exports.TransportEvent = TransportEvent;
|
|
838
|
+
exports.TransportParent = TransportParent;
|
|
843
839
|
exports.Void = Void;
|
|
844
840
|
exports.ensureEvent = ensureEvent;
|
|
845
841
|
exports.ensureFunction = ensureFunction;
|
package/dist/silentium.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentium.cjs","sources":["../src/helpers/guards.ts","../src/helpers/ensures.ts","../src/base/Component.ts","../src/base/ComponentClass.ts","../src/base/DestroyContainer.ts","../src/base/Event.ts","../src/base/Local.ts","../src/base/Of.ts","../src/base/Void.ts","../src/helpers/OwnerPool.ts","../src/base/Transport.ts","../src/components/All.ts","../src/components/Any.ts","../src/components/Applied.ts","../src/components/Catch.ts","../src/components/Chain.ts","../src/components/ExecutorApplied.ts","../src/components/Filtered.ts","../src/components/FromEvent.ts","../src/components/FromPromise.ts","../src/components/Late.ts","../src/components/Once.ts","../src/components/Shared.ts","../src/components/SharedSource.ts","../src/components/LateShared.ts","../src/components/Map.ts","../src/components/Primitive.ts","../src/components/Sequence.ts","../src/components/Stream.ts","../src/components/TransportApplied.ts","../src/components/TransportArgs.ts","../src/components/TransportDestroyable.ts"],"sourcesContent":["import { DestroyableType, EventType, TransportType } from \"../types\";\n\nexport const isFilled = <T>(\n value?: T,\n): value is Exclude<T, null | undefined> => {\n return value !== undefined && value !== null;\n};\n\nexport function isEvent<T>(o: T): o is T & EventType {\n return (\n o !== null &&\n typeof o === \"object\" &&\n \"event\" in o &&\n typeof (o as any).event === \"function\"\n );\n}\n\nexport function isDestroyable<T>(o: T): o is T & DestroyableType {\n return (\n o !== null &&\n typeof o === \"object\" &&\n \"destroy\" in o &&\n typeof (o as any).destroy === \"function\"\n );\n}\n\nexport function isTransport<T>(o: T): o is T & TransportType {\n return (\n o !== null &&\n typeof o === \"object\" &&\n \"use\" in o &&\n typeof (o as any).use === \"function\"\n );\n}\n","import { isEvent, isTransport } from \"../helpers/guards\";\n\nexport function ensureFunction(v: unknown, label: string) {\n if (typeof v !== \"function\") {\n throw new Error(`${label}: is not function`);\n }\n}\n\nexport function ensureEvent(v: unknown, label: string) {\n if (!isEvent(v)) {\n throw new Error(`${label}: is not event`);\n }\n}\n\nexport function ensureTransport(v: unknown, label: string) {\n if (!isTransport(v)) {\n throw new Error(`${label}: is not transport`);\n }\n}\n","import {\n DestroyableType,\n EventType,\n EventTypeValue,\n TransportType,\n} from \"../types\";\n\n/**\n * Create a function component that\n * will emit an event with specified arguments\n * and specified type\n */\nexport function Component<T, P extends Array<any>>(\n executor: (\n this: TransportType<P[0] extends EventType ? EventTypeValue<P[0]> : T>,\n ...args: P\n ) => void | (() => void),\n): (\n ...args: P\n) => (P[0] extends EventType ? EventType<EventTypeValue<P[0]>> : EventType<T>) &\n DestroyableType {\n return (...args) => {\n let destructor: void | (() => void);\n return {\n event(\n transport: TransportType<\n P[0] extends EventType ? EventTypeValue<P[0]> : T\n >,\n ) {\n destructor = executor.call(transport, ...args);\n return this;\n },\n destroy() {\n if (destructor !== undefined) {\n destructor();\n }\n return this;\n },\n } as any;\n };\n}\n","import {\n DestroyableType,\n EventType,\n EventTypeValue,\n SourceType,\n} from \"../types\";\n\ntype ConstructableType = { new (...args: any[]): any };\n\nexport function ComponentClass<T extends ConstructableType>(\n classConstructor: T,\n): <R = null>(\n ...args: ConstructorParameters<T>\n) => R extends null\n ? ConstructorParameters<T>[0] extends EventType\n ? InstanceType<T> extends SourceType\n ? InstanceType<T> extends DestroyableType\n ? SourceType<EventTypeValue<ConstructorParameters<T>[0]>> &\n DestroyableType\n : SourceType<EventTypeValue<ConstructorParameters<T>[0]>>\n : InstanceType<T> extends DestroyableType\n ? EventType<EventTypeValue<ConstructorParameters<T>[0]>> &\n DestroyableType\n : EventType<EventTypeValue<ConstructorParameters<T>[0]>>\n : InstanceType<T>\n : R extends EventType\n ? R\n : EventType<R> {\n return (...args) => new classConstructor(...args);\n}\n","import { DestroyableType } from \"../types\";\n\n/**\n * An object that allows collecting all disposable objects and\n * disposing them later all together\n */\nexport function DestroyContainer() {\n return new TheDestroyContainer();\n}\n\nclass TheDestroyContainer implements DestroyableType {\n private destructors: DestroyableType[] = [];\n\n public add(e: DestroyableType) {\n this.destructors.push(e);\n return this;\n }\n\n public destroy() {\n this.destructors.forEach((d) => d.destroy());\n return this;\n }\n}\n","import { ensureFunction } from \"../helpers\";\nimport { DestroyableType, EventType, TransportType } from \"../types\";\n\ntype EventExecutor<T> = (transport: TransportType<T>) => void | (() => void);\n\n/**\n * An event created from an executor function.\n * The executor function can return an event destruction function.\n */\nexport function Event<T>(eventExecutor: EventExecutor<T>) {\n return new TheEvent<T>(eventExecutor);\n}\n\nclass TheEvent<T> implements EventType<T>, DestroyableType {\n private mbDestructor: unknown;\n\n public constructor(private eventExecutor: EventExecutor<T>) {\n ensureFunction(eventExecutor, \"Event: eventExecutor\");\n }\n\n public event(transport: TransportType<T>) {\n this.mbDestructor = this.eventExecutor(transport);\n return this;\n }\n\n public destroy() {\n if (typeof this.mbDestructor === \"function\") {\n this.mbDestructor?.();\n }\n return this;\n }\n}\n","import { ensureEvent } from \"../helpers\";\nimport { ParentTransport } from \"./Transport\";\nimport { DestroyableType, EventType, TransportType } from \"../types\";\n\n/**\n * Create local copy of source what can be destroyed\n */\nexport function Local<T>($base: EventType<T>) {\n return new TheLocal<T>($base);\n}\n\nclass TheLocal<T> implements EventType<T>, DestroyableType {\n private destroyed = false;\n\n public constructor(private $base: EventType<T>) {\n ensureEvent($base, \"Local: $base\");\n }\n\n public event(transport: TransportType<T>): this {\n this.$base.event(this.transport.child(transport));\n return this;\n }\n\n private transport = new ParentTransport((v: T, child: TransportType<T>) => {\n if (!this.destroyed) {\n child.use(v);\n }\n });\n\n public destroy(): this {\n return this;\n }\n}\n","import { EventType, TransportType } from \"../types\";\n\n/**\n * Helps convert a value into an event\n */\nexport function Of<T>(value: T) {\n return new TheOf<T>(value);\n}\n\nclass TheOf<T> implements EventType<T> {\n public constructor(private value: T) {}\n\n public event(transport: TransportType<T>): this {\n transport.use(this.value);\n return this;\n }\n}\n","import { TransportType } from \"../types\";\n\n/**\n * Transport that does nothing with the passed value,\n * needed for silent event triggering\n */\nexport function Void() {\n return new TheVoid();\n}\n\nclass TheVoid implements TransportType {\n public use(): this {\n return this;\n }\n}\n","import { Transport } from \"../base\";\nimport { TransportType } from \"../types\";\n\n/**\n * Helps maintain an owner list allowing different\n * owners to get information from a common source\n * https://silentium-lab.github.io/silentium/#/en/utils/owner-pool\n */\nexport class OwnerPool<T> {\n private owners: Set<TransportType<T>>;\n private innerOwner: TransportType<T>;\n\n public constructor() {\n this.owners = new Set<TransportType<T>>();\n this.innerOwner = Transport((v) => {\n this.owners.forEach((g) => {\n g.use(v);\n });\n });\n }\n\n public owner() {\n return this.innerOwner;\n }\n\n public size(): number {\n return this.owners.size;\n }\n\n public has(owner: TransportType<T>): boolean {\n return this.owners.has(owner);\n }\n\n public add(owner: TransportType<T>) {\n this.owners.add(owner);\n return this;\n }\n\n public remove(g: TransportType<T>) {\n this.owners.delete(g);\n return this;\n }\n\n public destroy() {\n this.owners.forEach((g) => {\n this.remove(g);\n });\n return this;\n }\n}\n","import { ensureFunction } from \"../helpers\";\nimport { EventType, TransportType } from \"../types\";\n\n/**\n * Type of value transfer logic executor\n */\nexport type TransportExecutor<T> = (v: T) => void;\n\n/**\n * Base transport that accepts the passed value,\n * acts as a conductor to deliver the value from an event to somewhere\n */\nexport function Transport<T>(transportExecutor: TransportExecutor<T>) {\n return new TheTransport<T>(transportExecutor);\n}\n\nclass TheTransport<T> implements TransportType<T> {\n public constructor(private transportExecutor: TransportExecutor<T>) {\n ensureFunction(transportExecutor, \"Transport: transport executor\");\n }\n\n public use(value: T) {\n this.transportExecutor(value);\n return this;\n }\n}\n\n/**\n * Type of executor for value passing logic and event returning\n */\nexport type TransportEventExecutor<T, ET = T> = (v: T) => EventType<ET>;\n\n/**\n * A transport that delivers a value from one event\n * and returns another event based on the value\n */\nexport function TransportEvent<T, ET = any>(\n transportExecutor: TransportEventExecutor<T, ET>,\n) {\n return new TheTransportEvent<T, ET>(transportExecutor);\n}\n\nclass TheTransportEvent<T, ET = T> implements TransportType<T, EventType<ET>> {\n public constructor(private executor: TransportEventExecutor<T, ET>) {\n ensureFunction(executor, \"TheTransportEvent: transport executor\");\n }\n\n public use(value: T) {\n return this.executor(value);\n }\n}\n\n/**\n * A transport that accepts a child transport\n * to perform some transformation on the value\n * during its transmission\n */\nexport class ParentTransport<T> implements TransportType<T> {\n public constructor(\n private executor: (v: T, transport: TransportType, ...args: any[]) => void,\n private args: any[] = [],\n private _child?: TransportType<T>,\n ) {\n ensureFunction(executor, \"ParentTransport: executor\");\n }\n\n public use(value: T): this {\n if (this._child === undefined) {\n throw new Error(\"no base transport\");\n }\n this.executor(value, this._child, ...this.args);\n return this;\n }\n\n public child(transport: TransportType, ...args: any[]) {\n return new ParentTransport(\n this.executor,\n [...this.args, ...args],\n transport,\n );\n }\n}\n","import { ParentTransport } from \"../base/Transport\";\nimport { ensureEvent } from \"../helpers\";\nimport { EventType, TransportType } from \"../types\";\n\ntype ExtractTypeS<T> = T extends EventType<infer U> ? U : never;\n\ntype ExtractTypesFromArrayS<T extends EventType<any>[]> = {\n [K in keyof T]: ExtractTypeS<T[K]>;\n};\n\nconst isAllFilled = (keysFilled: Set<string>, keysKnown: Set<string>) => {\n return keysFilled.size > 0 && keysFilled.size === keysKnown.size;\n};\n\n/**\n * An event that represents values from\n * all provided events as an array.\n * When all events emit their values,\n * the combined value will be returned.\n * If at least one event later emits a new\n * value, the updated array with the new value\n * will be emitted by All.\n */\nexport function All<const T extends EventType[]>(...events: T) {\n return new TheAll<T>(...events);\n}\n\nclass TheAll<const T extends EventType[]>\n implements EventType<ExtractTypesFromArrayS<T>>\n{\n private keysKnown: Set<string>;\n private keysFilled = new Set<string>();\n private $events: T;\n private result: Record<string, unknown> = {};\n\n public constructor(...events: T) {\n this.keysKnown = new Set<string>(Object.keys(events));\n this.$events = events;\n }\n\n public event(transport: TransportType<ExtractTypesFromArrayS<T>>): this {\n Object.entries(this.$events).forEach(([key, event]) => {\n ensureEvent(event, \"All: item\");\n this.keysKnown.add(key);\n event.event(this.transport.child(transport, key));\n });\n return this;\n }\n\n private transport = new ParentTransport(\n (v: T, child: TransportType, key: string) => {\n this.keysFilled.add(key);\n this.result[key] = v;\n if (isAllFilled(this.keysFilled, this.keysKnown)) {\n child.use(Object.values(this.result) as ExtractTypesFromArrayS<T>);\n }\n },\n );\n}\n","import { ensureEvent } from \"../helpers\";\nimport { EventType, TransportType } from \"../types\";\n\n/**\n * An event that emits values received from\n * any of its bound events\n */\nexport function Any<T>(...events: EventType<T>[]) {\n return new TheAny(...events);\n}\n\nclass TheAny<T> implements EventType<T> {\n private $events: EventType[];\n\n public constructor(...events: EventType<T>[]) {\n this.$events = events;\n }\n\n public event(transport: TransportType<T>): this {\n this.$events.forEach((event) => {\n ensureEvent(event, \"Any: item\");\n event.event(transport);\n });\n return this;\n }\n}\n","import { ensureEvent } from \"../helpers\";\nimport { ParentTransport } from \"../base/Transport\";\nimport { ConstructorType, EventType, TransportType } from \"../types\";\n\n/**\n * An event that applies a function\n * to the value of the base event\n */\nexport function Applied<T, R>(\n $base: EventType<T>,\n applier: ConstructorType<[T], R>,\n) {\n return new TheApplied<T, R>($base, applier);\n}\n\nclass TheApplied<T, R> implements EventType<R> {\n public constructor(\n private $base: EventType<T>,\n private applier: ConstructorType<[T], R>,\n ) {\n ensureEvent($base, \"Applied: base\");\n }\n\n public event(transport: TransportType<R>) {\n this.$base.event(this.transport.child(transport));\n return this;\n }\n\n private transport = new ParentTransport((v: T, child) => {\n child.use(this.applier(v));\n });\n}\n","import { ensureEvent, ensureTransport } from \"../helpers\";\nimport { EventType, TransportType } from \"../types\";\n\n/**\n * An event representing a base event where\n * its operation is wrapped in try-catch\n * and expects exceptions. If an exception\n * bubbles up, it's passed to the transports\n * as errorMessage and errorOriginal\n */\nexport function Catch<T>(\n $base: EventType<T>,\n errorMessage: TransportType,\n errorOriginal?: TransportType,\n) {\n return new TheCatch<T>($base, errorMessage, errorOriginal);\n}\n\nclass TheCatch<T> implements EventType<T> {\n public constructor(\n private $base: EventType<T>,\n private errorMessage: TransportType,\n private errorOriginal?: TransportType,\n ) {\n ensureEvent($base, \"Catch: base\");\n ensureTransport(errorMessage, \"Catch: errorMessage\");\n if (errorOriginal !== undefined) {\n ensureTransport(errorOriginal, \"Catch: errorOriginal\");\n }\n }\n\n public event(transport: TransportType<T>) {\n try {\n this.$base.event(transport);\n } catch (e: any) {\n if (e instanceof Error) {\n this.errorMessage.use(e.message);\n } else {\n this.errorMessage.use(e);\n }\n if (this.errorOriginal) {\n this.errorOriginal.use(e);\n }\n }\n return this;\n }\n}\n","import { EventTypeValue } from \"../types/EventType\";\nimport { EventType, TransportType } from \"../types\";\nimport { ParentTransport } from \"../base/Transport\";\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype Last<T extends any[]> = T extends [...infer _, infer L] ? L : never;\n\n/**\n * Chains events together and triggers\n * the last event only when all previous events\n * have emitted their values. The value of Chain will be the value\n * of the last event. If any events\n * emit a value again after the overall Chain response was already returned,\n * then Chain emits again with the value of the last event.\n */\nexport function Chain<T extends EventType[]>(...events: T) {\n return new TheChain<T>(...events);\n}\n\nexport class TheChain<T extends EventType[]>\n implements EventType<EventTypeValue<Last<T>>>\n{\n private $events: T;\n private lastValue: EventTypeValue<Last<T>> | undefined;\n\n public constructor(...events: T) {\n this.$events = events;\n }\n\n public event(transport: TransportType<EventTypeValue<Last<T>>>) {\n this.handleEvent(0, transport);\n return this;\n }\n\n private handleEvent = (index: number, transport: TransportType) => {\n const event = this.$events[index] as Last<T>;\n const nextI = this.$events[index + 1] as Last<T> | undefined;\n event.event(this.oneEventTransport.child(transport, nextI, index));\n };\n\n private oneEventTransport = new ParentTransport(\n (\n v: EventTypeValue<Last<T>>,\n child,\n nextI: Last<T> | undefined,\n index: number,\n ) => {\n if (!nextI) {\n this.lastValue = v as EventTypeValue<Last<T>>;\n }\n\n if (this.lastValue) {\n child.use(this.lastValue);\n }\n\n if (nextI && !this.lastValue) {\n this.handleEvent(index + 1, child);\n }\n },\n );\n}\n","import { Transport, TransportExecutor } from \"../base\";\nimport { ensureEvent } from \"../helpers\";\nimport { EventType, TransportType } from \"../types\";\n\ntype ExecutorApplier<T> = (\n executor: TransportExecutor<T>,\n) => TransportExecutor<T>;\n\n/**\n * Applies a value transfer function to the transport\n * and returns the same value transfer function for the transport\n * Useful for applying functions like debounced or throttle\n */\nexport function ExecutorApplied<T>(\n $base: EventType<T>,\n applier: ExecutorApplier<T>,\n) {\n return new TheExecutorApplied($base, applier);\n}\n\nclass TheExecutorApplied<T> implements EventType<T> {\n public constructor(\n private $base: EventType<T>,\n private applier: ExecutorApplier<T>,\n ) {\n ensureEvent($base, \"ExecutorApplied: base\");\n }\n\n public event(transport: TransportType<T>) {\n const ExecutorAppliedBaseTransport = this.applier(\n transport.use.bind(transport),\n );\n this.$base.event(Transport(ExecutorAppliedBaseTransport));\n return this;\n }\n}\n","import { ParentTransport } from \"../base/Transport\";\nimport { EventType, ConstructorType, TransportType } from \"../types\";\n\nexport function Filtered<T>(\n $base: EventType<T>,\n predicate: ConstructorType<[T], boolean>,\n defaultValue?: T,\n) {\n return new TheFiltered<T>($base, predicate, defaultValue);\n}\n\nclass TheFiltered<T> implements EventType<T> {\n public constructor(\n private $base: EventType<T>,\n private predicate: ConstructorType<[T], boolean>,\n private defaultValue?: T,\n ) {}\n\n public event(transport: TransportType<T>) {\n this.$base.event(this.parent.child(transport));\n return this;\n }\n\n private parent = new ParentTransport<T>((v, child) => {\n if (this.predicate(v)) {\n child.use(v);\n } else if (this.defaultValue !== undefined) {\n child.use(this.defaultValue);\n }\n });\n}\n","import { ParentTransport, Transport } from \"../base/Transport\";\nimport { EventType, TransportType } from \"../types\";\nimport { DestroyableType } from \"../types/EventType\";\nimport { All } from \"./All\";\n\n/**\n * An event derived from another event with a different\n * method call interface, based on callbacks.\n * Allows attaching a custom handler to an existing event source\n * and presenting it as a silentium event\n */\nexport function FromEvent<T>(\n $emitter: EventType<any>,\n $eventName: EventType<string>,\n $subscribeMethod: EventType<string>,\n $unsubscribeMethod?: EventType<string>,\n) {\n return new TheFromEvent<T>(\n $emitter,\n $eventName,\n $subscribeMethod,\n $unsubscribeMethod,\n );\n}\n\nclass TheFromEvent<T> implements EventType<T>, DestroyableType {\n private lastTransport: TransportType<T> | null = null;\n private handler = (v: T) => {\n if (this.lastTransport) {\n this.lastTransport.use(v);\n }\n };\n\n public constructor(\n private $emitter: EventType<any>,\n private $eventName: EventType<string>,\n private $subscribeMethod: EventType<string>,\n private $unsubscribeMethod?: EventType<string>,\n ) {}\n\n public event(transport: TransportType<T>): this {\n const a = All(this.$emitter, this.$eventName, this.$subscribeMethod);\n a.event(this.parent.child(transport));\n return this;\n }\n\n private parent = new ParentTransport<[any, string, string]>(\n ([emitter, eventName, subscribe], parent) => {\n this.lastTransport = parent;\n if (!emitter?.[subscribe]) {\n return;\n }\n emitter[subscribe](eventName, this.handler);\n },\n );\n\n public destroy(): this {\n this.lastTransport = null;\n if (!this.$unsubscribeMethod) {\n return this;\n }\n const a = All(this.$emitter, this.$eventName, this.$unsubscribeMethod);\n a.event(\n Transport(([emitter, eventName, unsubscribe]) => {\n emitter?.[unsubscribe]?.(eventName, this.handler);\n }),\n );\n return this;\n }\n}\n","import { EventType, TransportType } from \"../types\";\n\n/**\n * Promise event\n */\nexport function FromPromise<T>(p: Promise<T>, errorOwner?: TransportType) {\n return new TheFromPromise<T>(p, errorOwner);\n}\n\nexport class TheFromPromise<T> implements EventType<T> {\n public constructor(\n private p: Promise<T>,\n private errorOwner?: TransportType,\n ) {}\n\n public event(transport: TransportType<T>): this {\n this.p\n .then(function FromPromiseThen(v) {\n transport.use(v);\n })\n .catch((e) => {\n this.errorOwner?.use(e);\n });\n return this;\n }\n}\n","import { isFilled } from \"../helpers\";\nimport { TransportType, SourceType } from \"../types\";\n\n/**\n * A component that allows creating linked objects of information and its owner\n * in such a way that if a new value is assigned to the owner, this value\n * will become the value of the linked information source\n * https://silentium-lab.github.io/silentium/#/en/information/of\n */\nexport function Late<T>(v?: T) {\n return new TheLate<T>(v);\n}\n\nclass TheLate<T> implements SourceType<T> {\n private lateTransport: TransportType<T> | null = null;\n private notify = (v?: T) => {\n if (isFilled(v) && this.lateTransport) {\n this.lateTransport.use(v);\n }\n };\n\n public constructor(private v?: T) {}\n\n public event(transport: TransportType<T>): this {\n if (this.lateTransport) {\n throw new Error(\n \"Late component gets new transport, when another was already connected!\",\n );\n }\n this.lateTransport = transport;\n this.notify(this.v);\n return this;\n }\n\n public use(value: T): this {\n this.notify(value);\n return this;\n }\n}\n","import { ParentTransport } from \"../base\";\nimport { EventType, TransportType } from \"../types\";\n\n/**\n * Limits the number of values from the information source\n * to a single value - once the first value is emitted, no more\n * values are delivered from the source\n */\nexport function Once<T>($base: EventType<T>) {\n return new TheOnce<T>($base);\n}\n\nclass TheOnce<T> implements EventType<T> {\n private isFilled = false;\n\n public constructor(private $base: EventType<T>) {}\n\n public event(transport: TransportType<T>): this {\n this.$base.event(this.parent.child(transport));\n return this;\n }\n\n private parent = new ParentTransport<T>((v, child) => {\n if (!this.isFilled) {\n this.isFilled = true;\n child.use(v);\n }\n });\n}\n","import { Transport } from \"../base\";\nimport { Late } from \"../components/Late\";\nimport { Once } from \"../components/Once\";\nimport { isFilled, OwnerPool } from \"../helpers\";\nimport { EventType, TransportType, SourceType } from \"../types\";\n\n/**\n * An information object that helps multiple owners access\n * a single another information object\n */\nexport function Shared<T>($base: EventType<T>, stateless = false) {\n return new TheShared<T>($base, stateless);\n}\n\nclass TheShared<T> implements SourceType<T> {\n private ownersPool = new OwnerPool<T>();\n private lastValue: T | undefined;\n private calls = Late();\n\n public constructor(\n private $base: EventType<T>,\n private stateless = false,\n ) {\n Once(this.calls).event(\n Transport(() => {\n this.$base.event(this.firstCallTransport);\n }),\n );\n }\n\n public event(transport: TransportType<T>) {\n this.calls.use(1);\n if (\n !this.stateless &&\n isFilled(this.lastValue) &&\n !this.ownersPool.has(transport)\n ) {\n transport.use(this.lastValue);\n }\n this.ownersPool.add(transport);\n return this;\n }\n\n public use(value: T) {\n this.calls.use(1);\n this.lastValue = value;\n this.ownersPool.owner().use(value);\n return this;\n }\n\n private firstCallTransport = Transport<T>((v: T) => {\n this.lastValue = v;\n this.ownersPool.owner().use(v);\n });\n\n public touched() {\n this.calls.use(1);\n }\n\n public pool() {\n return this.ownersPool;\n }\n\n public destroy() {\n return this.ownersPool.destroy();\n }\n}\n","import { Shared } from \"../components/Shared\";\nimport { TransportType, SourceType } from \"../types\";\n\nexport function SharedSource<T>($base: SourceType<T>, stateless = false) {\n return new TheSharedSource<T>($base, stateless);\n}\n\nclass TheSharedSource<T> implements SourceType<T> {\n private $sharedBase: SourceType<T> & { touched: () => void };\n\n public constructor(\n private $base: SourceType<T>,\n stateless = false,\n ) {\n this.$sharedBase = Shared(this.$base, stateless);\n }\n\n public event(transport: TransportType<T>) {\n this.$sharedBase.event(transport);\n return this;\n }\n\n public use(value: T) {\n this.$sharedBase.touched();\n this.$base.use(value);\n return this;\n }\n}\n","import { Late } from \"../components/Late\";\nimport { SharedSource } from \"../components/SharedSource\";\nimport { TransportType, SourceType } from \"../types\";\n\n/**\n * An event with a value that will be set later,\n * capable of responding to different transports\n */\nexport function LateShared<T>(value?: T) {\n return new TheLateShared<T>(value);\n}\n\nclass TheLateShared<T> implements SourceType<T> {\n private $event: SourceType<T>;\n\n public constructor(value?: T) {\n this.$event = SharedSource(Late(value));\n }\n\n public event(transport: TransportType<T>) {\n this.$event.event(transport);\n return this;\n }\n\n public use(value: T) {\n this.$event.use(value);\n return this;\n }\n}\n","import { isEvent } from \"../helpers\";\nimport { Of, ParentTransport } from \"../base\";\nimport { EventType, TransportType } from \"../types\";\nimport { All } from \"./All\";\n\n/**\n * Component that applies an info object constructor to each data item,\n * producing an information source with new values\n */\nexport function Map<T, TG>(\n $base: EventType<T[]>,\n $target: TransportType<any, EventType<TG>>,\n) {\n return new TheMap<T, TG>($base, $target);\n}\n\nclass TheMap<T, TG> implements EventType<TG[]> {\n public constructor(\n private $base: EventType<T[]>,\n private $target: TransportType<any, EventType<TG>>,\n ) {}\n\n public event(transport: TransportType<TG[]>): this {\n this.$base.event(this.parent.child(transport));\n return this;\n }\n\n private parent = new ParentTransport<T[]>((v, child) => {\n const infos: EventType<TG>[] = [];\n v.forEach((val) => {\n let valInfo: EventType<T> | T = val;\n if (!isEvent(valInfo as object)) {\n valInfo = Of(valInfo);\n }\n const info = this.$target.use(valInfo);\n infos.push(info);\n });\n const allI = All(...infos);\n allI.event(child);\n });\n}\n","import { Transport } from \"../base\";\nimport { EventType } from \"../types\";\n\n/**\n * Helps represent an event as a primitive type, which can be useful\n * for cases when you need to always have a reference to the current value\n * without updating the shared value when the current one changes.\n * For example, this could be used when passing an authorization token.\n * It can also be useful for testing or logging purposes.\n */\nexport function Primitive<T>($base: EventType<T>, theValue: T | null = null) {\n return new ThePrimitive<T>($base, theValue);\n}\n\nclass ThePrimitive<T> {\n private touched = false;\n\n public constructor(\n private $base: EventType<T>,\n private theValue: T | null = null,\n ) {}\n\n private ensureTouched() {\n if (!this.touched) {\n this.$base.event(\n Transport((v) => {\n this.theValue = v;\n }),\n );\n }\n this.touched = true;\n }\n\n public [Symbol.toPrimitive]() {\n this.ensureTouched();\n return this.theValue;\n }\n\n public primitive() {\n this.ensureTouched();\n return this.theValue;\n }\n\n public primitiveWithException() {\n this.ensureTouched();\n if (this.theValue === null) {\n throw new Error(\"Primitive value is null\");\n }\n return this.theValue;\n }\n}\n","import { ParentTransport } from \"../base\";\nimport { EventType, TransportType } from \"../types\";\n\nexport function Sequence<T>($base: EventType<T>) {\n return new TheSequence<T>($base);\n}\n\n/**\n * A component that takes one value at a time and returns\n * an array of all previous values\n */\nclass TheSequence<T> implements EventType<T[]> {\n private result: T[] = [];\n\n public constructor(private $base: EventType<T>) {}\n\n public event(transport: TransportType<T[]>): this {\n this.$base.event(this.parent.child(transport));\n return this;\n }\n\n private parent = new ParentTransport<T>((v, child) => {\n this.result.push(v);\n child.use(this.result);\n });\n}\n","import { ParentTransport } from \"../base\";\nimport { EventType, TransportType } from \"../types\";\n\n/**\n * Component that receives a data array and yields values one by one\n */\nexport function Stream<T>($base: EventType<T[]>) {\n return new TheStream<T>($base);\n}\n\nclass TheStream<T> implements EventType<T> {\n public constructor(private $base: EventType<T[]>) {}\n\n public event(transport: TransportType<T>): this {\n this.$base.event(this.parent.child(transport));\n return this;\n }\n\n private parent = new ParentTransport<T[]>((v, child) => {\n v.forEach((cv) => {\n child.use(cv);\n });\n });\n}\n","import { EventType, ConstructorType, TransportType } from \"../types\";\n\nexport function TransportApplied<T>(\n baseTransport: TransportType<any, EventType<T>>,\n applier: ConstructorType<[EventType], EventType<T>>,\n) {\n return new TheTransportApplied(baseTransport, applier);\n}\n\nexport class TheTransportApplied<T>\n implements TransportType<unknown, EventType<T>>\n{\n public constructor(\n private baseTransport: TransportType<any, EventType<T>>,\n private applier: ConstructorType<[EventType], EventType<T>>,\n ) {}\n\n public use(args: unknown) {\n return this.applier(this.baseTransport.use(args));\n }\n}\n","import { EventType, TransportType } from \"../types\";\n\nexport function TransportArgs(\n baseTransport: TransportType<any[], EventType>,\n args: unknown[],\n startFromArgIndex: number = 0,\n) {\n return new TheTransportArgs(baseTransport, args, startFromArgIndex);\n}\n\nexport class TheTransportArgs\n implements TransportType<unknown[], EventType<unknown>>\n{\n public constructor(\n private baseTransport: TransportType<any[], EventType>,\n private args: unknown[],\n private startFromArgIndex: number = 0,\n ) {}\n\n public use(runArgs: unknown[]): EventType<unknown> {\n return this.baseTransport.use(\n mergeAtIndex(runArgs, this.args, this.startFromArgIndex),\n );\n }\n}\n\nfunction mergeAtIndex(arr1: unknown[], arr2: unknown[], index: number) {\n const result = arr1.slice(0, index);\n while (result.length < index) result.push(undefined);\n return result.concat(arr2);\n}\n","import { isDestroyable } from \"../helpers\";\nimport { DestroyableType, EventType, TransportType } from \"../types\";\n\nexport function TransportDestroyable<T>(\n baseTransport: TransportType<any[], EventType<T>>,\n) {\n return new TheTransportDestroyable<T>(baseTransport);\n}\n\n/**\n * Constructor what can be destroyed\n */\nclass TheTransportDestroyable<T>\n implements TransportType<unknown, EventType>, DestroyableType\n{\n private destructors: DestroyableType[] = [];\n\n public constructor(private baseTransport: TransportType<any, EventType<T>>) {}\n\n public use(args: unknown) {\n const inst = this.baseTransport.use(args);\n if (isDestroyable(inst)) {\n this.destructors.push(inst);\n }\n return inst;\n }\n\n public destroy(): this {\n this.destructors.forEach((i) => i.destroy());\n return this;\n }\n}\n"],"names":["__publicField"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"silentium.cjs","sources":["../src/helpers/guards.ts","../src/helpers/ensures.ts","../src/base/Component.ts","../src/base/ComponentClass.ts","../src/base/DestroyContainer.ts","../src/base/Event.ts","../src/base/Local.ts","../src/base/Of.ts","../src/base/Void.ts","../src/helpers/OwnerPool.ts","../src/base/Transport.ts","../src/components/All.ts","../src/components/Any.ts","../src/components/Applied.ts","../src/components/Catch.ts","../src/components/Chain.ts","../src/components/ExecutorApplied.ts","../src/components/Filtered.ts","../src/components/FromEvent.ts","../src/components/FromPromise.ts","../src/components/Late.ts","../src/components/Once.ts","../src/components/Shared.ts","../src/components/SharedSource.ts","../src/components/LateShared.ts","../src/components/Map.ts","../src/components/Primitive.ts","../src/components/Sequence.ts","../src/components/Stream.ts","../src/components/TransportApplied.ts","../src/components/TransportArgs.ts","../src/components/TransportDestroyable.ts"],"sourcesContent":["import { DestroyableType, EventType, TransportType } from \"../types\";\n\nexport const isFilled = <T>(\n value?: T,\n): value is Exclude<T, null | undefined> => {\n return value !== undefined && value !== null;\n};\n\nexport function isEvent<T>(o: T): o is T & EventType {\n return (\n o !== null &&\n typeof o === \"object\" &&\n \"event\" in o &&\n typeof (o as any).event === \"function\"\n );\n}\n\nexport function isDestroyable<T>(o: T): o is T & DestroyableType {\n return (\n o !== null &&\n typeof o === \"object\" &&\n \"destroy\" in o &&\n typeof (o as any).destroy === \"function\"\n );\n}\n\nexport function isTransport<T>(o: T): o is T & TransportType {\n return (\n o !== null &&\n typeof o === \"object\" &&\n \"use\" in o &&\n typeof (o as any).use === \"function\"\n );\n}\n","import { isEvent, isTransport } from \"../helpers/guards\";\n\nexport function ensureFunction(v: unknown, label: string) {\n if (typeof v !== \"function\") {\n throw new Error(`${label}: is not function`);\n }\n}\n\nexport function ensureEvent(v: unknown, label: string) {\n if (!isEvent(v)) {\n throw new Error(`${label}: is not event`);\n }\n}\n\nexport function ensureTransport(v: unknown, label: string) {\n if (!isTransport(v)) {\n throw new Error(`${label}: is not transport`);\n }\n}\n","import {\n DestroyableType,\n EventType,\n EventTypeValue,\n TransportType,\n} from \"../types\";\n\n/**\n * Create a function component that\n * will emit an event with specified arguments\n * and specified type\n */\nexport function Component<T, P extends Array<any>>(\n executor: (\n this: TransportType<P[0] extends EventType ? EventTypeValue<P[0]> : T>,\n ...args: P\n ) => void | (() => void),\n): (\n ...args: P\n) => (P[0] extends EventType ? EventType<EventTypeValue<P[0]>> : EventType<T>) &\n DestroyableType {\n return (...args) => {\n let destructor: void | (() => void);\n return {\n event(\n transport: TransportType<\n P[0] extends EventType ? EventTypeValue<P[0]> : T\n >,\n ) {\n destructor = executor.call(transport, ...args);\n return this;\n },\n destroy() {\n if (destructor !== undefined) {\n destructor();\n }\n return this;\n },\n } as any;\n };\n}\n","import {\n DestroyableType,\n EventType,\n EventTypeValue,\n SourceType,\n} from \"../types\";\n\ntype ConstructableType = { new (...args: any[]): any };\n\nexport function ComponentClass<T extends ConstructableType>(\n classConstructor: T,\n): <R = null>(\n ...args: ConstructorParameters<T>\n) => R extends null\n ? ConstructorParameters<T>[0] extends EventType\n ? InstanceType<T> extends SourceType\n ? InstanceType<T> extends DestroyableType\n ? SourceType<EventTypeValue<ConstructorParameters<T>[0]>> &\n DestroyableType\n : SourceType<EventTypeValue<ConstructorParameters<T>[0]>>\n : InstanceType<T> extends DestroyableType\n ? EventType<EventTypeValue<ConstructorParameters<T>[0]>> &\n DestroyableType\n : EventType<EventTypeValue<ConstructorParameters<T>[0]>>\n : InstanceType<T>\n : R extends EventType\n ? R\n : EventType<R> {\n return (...args) => new classConstructor(...args);\n}\n","import { DestroyableType } from \"../types\";\n\n/**\n * An object that allows collecting all disposable objects and\n * disposing them later all together\n */\nexport function DestroyContainer() {\n return new TheDestroyContainer();\n}\n\nclass TheDestroyContainer implements DestroyableType {\n private destructors: DestroyableType[] = [];\n\n public add(e: DestroyableType) {\n this.destructors.push(e);\n return this;\n }\n\n public destroy() {\n this.destructors.forEach((d) => d.destroy());\n return this;\n }\n}\n","import { ensureFunction } from \"../helpers\";\nimport { DestroyableType, EventType, TransportType } from \"../types\";\n\ntype EventExecutor<T> = (transport: TransportType<T>) => void | (() => void);\n\n/**\n * An event created from an executor function.\n * The executor function can return an event destruction function.\n */\nexport function Event<T>(eventExecutor: EventExecutor<T>) {\n return new TheEvent<T>(eventExecutor);\n}\n\nclass TheEvent<T> implements EventType<T>, DestroyableType {\n private mbDestructor: unknown;\n\n public constructor(private eventExecutor: EventExecutor<T>) {\n ensureFunction(eventExecutor, \"Event: eventExecutor\");\n }\n\n public event(transport: TransportType<T>) {\n this.mbDestructor = this.eventExecutor(transport);\n return this;\n }\n\n public destroy() {\n if (typeof this.mbDestructor === \"function\") {\n this.mbDestructor?.();\n }\n return this;\n }\n}\n","import { ensureEvent } from \"../helpers\";\nimport { DestroyableType, EventType, TransportType } from \"../types\";\nimport { TransportParent } from \"./Transport\";\n\n/**\n * Create local copy of source what can be destroyed\n */\nexport function Local<T>($base: EventType<T>) {\n return new TheLocal<T>($base);\n}\n\nclass TheLocal<T> implements EventType<T>, DestroyableType {\n private destroyed = false;\n\n public constructor(private $base: EventType<T>) {\n ensureEvent($base, \"Local: $base\");\n }\n\n public event(transport: TransportType<T>): this {\n this.$base.event(this.transport.child(transport));\n return this;\n }\n\n private transport = TransportParent(function (v: T, child: TheLocal<T>) {\n if (!child.destroyed) {\n this.use(v);\n }\n }, this);\n\n public destroy(): this {\n return this;\n }\n}\n","import { EventType, TransportType } from \"../types\";\n\n/**\n * Helps convert a value into an event\n */\nexport function Of<T>(value: T) {\n return new TheOf<T>(value);\n}\n\nclass TheOf<T> implements EventType<T> {\n public constructor(private value: T) {}\n\n public event(transport: TransportType<T>): this {\n transport.use(this.value);\n return this;\n }\n}\n","import { TransportType } from \"../types\";\n\n/**\n * Transport that does nothing with the passed value,\n * needed for silent event triggering\n */\nexport function Void() {\n return new TheVoid();\n}\n\nclass TheVoid implements TransportType {\n public use(): this {\n return this;\n }\n}\n","import { Transport } from \"../base\";\nimport { TransportType } from \"../types\";\n\n/**\n * Helps maintain an owner list allowing different\n * owners to get information from a common source\n * https://silentium-lab.github.io/silentium/#/en/utils/owner-pool\n */\nexport class OwnerPool<T> {\n private owners: Set<TransportType<T>>;\n private innerOwner: TransportType<T>;\n\n public constructor() {\n this.owners = new Set<TransportType<T>>();\n this.innerOwner = Transport((v) => {\n this.owners.forEach((g) => {\n g.use(v);\n });\n });\n }\n\n public owner() {\n return this.innerOwner;\n }\n\n public size(): number {\n return this.owners.size;\n }\n\n public has(owner: TransportType<T>): boolean {\n return this.owners.has(owner);\n }\n\n public add(owner: TransportType<T>) {\n this.owners.add(owner);\n return this;\n }\n\n public remove(g: TransportType<T>) {\n this.owners.delete(g);\n return this;\n }\n\n public destroy() {\n this.owners.forEach((g) => {\n this.remove(g);\n });\n return this;\n }\n}\n","import { ensureFunction } from \"../helpers\";\nimport { EventType, TransportType } from \"../types\";\n\n/**\n * Type of value transfer logic executor\n */\nexport type TransportExecutor<T> = (v: T) => void;\n\n/**\n * Base transport that accepts the passed value,\n * acts as a conductor to deliver the value from an event to somewhere\n */\nexport function Transport<T>(transportExecutor: TransportExecutor<T>) {\n return new TheTransport<T>(transportExecutor);\n}\n\nclass TheTransport<T> implements TransportType<T> {\n public constructor(private transportExecutor: TransportExecutor<T>) {\n ensureFunction(transportExecutor, \"Transport: transport executor\");\n }\n\n public use(value: T) {\n this.transportExecutor(value);\n return this;\n }\n}\n\n/**\n * Type of executor for value passing logic and event returning\n */\nexport type TransportEventExecutor<T, ET = T> = (v: T) => EventType<ET>;\n\n/**\n * A transport that delivers a value from one event\n * and returns another event based on the value\n */\nexport function TransportEvent<T, ET = any>(\n transportExecutor: TransportEventExecutor<T, ET>,\n) {\n return new TheTransportEvent<T, ET>(transportExecutor);\n}\n\nclass TheTransportEvent<T, ET = T> implements TransportType<T, EventType<ET>> {\n public constructor(private executor: TransportEventExecutor<T, ET>) {\n ensureFunction(executor, \"TheTransportEvent: transport executor\");\n }\n\n public use(value: T) {\n return this.executor(value);\n }\n}\n\n/**\n * A transport that accepts a child transport\n * to perform some transformation on the value\n * during its transmission\n */\nexport function TransportParent<T>(\n executor: (this: TransportType, v: T, ...context: any[]) => void,\n ...args: any[]\n) {\n return new TheTransportParent<T>(executor, args);\n}\n\nclass TheTransportParent<T> implements TransportType<T> {\n public constructor(\n private executor: (this: TransportType, v: T, ...context: any[]) => void,\n private args: any[] = [],\n private _child?: TransportType<T>,\n ) {\n ensureFunction(executor, \"ParentTransport: executor\");\n }\n\n public use(value: T): this {\n if (this._child === undefined) {\n throw new Error(\"no base transport\");\n }\n this.executor.call(this._child, value, ...this.args);\n return this;\n }\n\n public child(transport: TransportType, ...args: any[]) {\n return new TheTransportParent(\n this.executor,\n [...this.args, ...args],\n transport,\n );\n }\n}\n","import { TransportParent } from \"../base/Transport\";\nimport { ensureEvent } from \"../helpers\";\nimport { EventType, TransportType } from \"../types\";\n\ntype ExtractTypeS<T> = T extends EventType<infer U> ? U : never;\n\ntype ExtractTypesFromArrayS<T extends EventType<any>[]> = {\n [K in keyof T]: ExtractTypeS<T[K]>;\n};\n\nconst isAllFilled = (keysFilled: Set<string>, keysKnown: Set<string>) => {\n return keysFilled.size > 0 && keysFilled.size === keysKnown.size;\n};\n\n/**\n * An event that represents values from\n * all provided events as an array.\n * When all events emit their values,\n * the combined value will be returned.\n * If at least one event later emits a new\n * value, the updated array with the new value\n * will be emitted by All.\n */\nexport function All<const T extends EventType[]>(...events: T) {\n return new TheAll<T>(...events);\n}\n\nclass TheAll<const T extends EventType[]>\n implements EventType<ExtractTypesFromArrayS<T>>\n{\n private known: Set<string>;\n private filled = new Set<string>();\n private $events: T;\n private result: Record<string, unknown> = {};\n\n public constructor(...events: T) {\n this.known = new Set<string>(Object.keys(events));\n this.$events = events;\n }\n\n public event(transport: TransportType<ExtractTypesFromArrayS<T>>): this {\n Object.entries(this.$events).forEach(([key, event]) => {\n ensureEvent(event, \"All: item\");\n this.known.add(key);\n event.event(this.transport.child(transport, key));\n });\n return this;\n }\n\n private transport = TransportParent(function (\n v: T,\n child: TheAll<T>,\n key: string,\n ) {\n child.filled.add(key);\n child.result[key] = v;\n if (isAllFilled(child.filled, child.known)) {\n this.use(Object.values(child.result) as ExtractTypesFromArrayS<T>);\n }\n }, this);\n}\n","import { ensureEvent } from \"../helpers\";\nimport { EventType, TransportType } from \"../types\";\n\n/**\n * An event that emits values received from\n * any of its bound events\n */\nexport function Any<T>(...events: EventType<T>[]) {\n return new TheAny(...events);\n}\n\nclass TheAny<T> implements EventType<T> {\n private $events: EventType[];\n\n public constructor(...events: EventType<T>[]) {\n this.$events = events;\n }\n\n public event(transport: TransportType<T>): this {\n this.$events.forEach((event) => {\n ensureEvent(event, \"Any: item\");\n event.event(transport);\n });\n return this;\n }\n}\n","import { TransportParent } from \"../base/Transport\";\nimport { ensureEvent } from \"../helpers\";\nimport { ConstructorType, EventType, TransportType } from \"../types\";\n\n/**\n * An event that applies a function\n * to the value of the base event\n */\nexport function Applied<T, R>(\n $base: EventType<T>,\n applier: ConstructorType<[T], R>,\n) {\n return new TheApplied<T, R>($base, applier);\n}\n\nclass TheApplied<T, R> implements EventType<R> {\n public constructor(\n private $base: EventType<T>,\n private applier: ConstructorType<[T], R>,\n ) {\n ensureEvent($base, \"Applied: base\");\n }\n\n public event(transport: TransportType<R>) {\n this.$base.event(this.transport.child(transport));\n return this;\n }\n\n private transport = TransportParent(function (v: T, child: TheApplied<T, R>) {\n this.use(child.applier(v));\n }, this);\n}\n","import { ensureEvent, ensureTransport } from \"../helpers\";\nimport { EventType, TransportType } from \"../types\";\n\n/**\n * An event representing a base event where\n * its operation is wrapped in try-catch\n * and expects exceptions. If an exception\n * bubbles up, it's passed to the transports\n * as errorMessage and errorOriginal\n */\nexport function Catch<T>(\n $base: EventType<T>,\n errorMessage: TransportType,\n errorOriginal?: TransportType,\n) {\n return new TheCatch<T>($base, errorMessage, errorOriginal);\n}\n\nclass TheCatch<T> implements EventType<T> {\n public constructor(\n private $base: EventType<T>,\n private errorMessage: TransportType,\n private errorOriginal?: TransportType,\n ) {\n ensureEvent($base, \"Catch: base\");\n ensureTransport(errorMessage, \"Catch: errorMessage\");\n if (errorOriginal !== undefined) {\n ensureTransport(errorOriginal, \"Catch: errorOriginal\");\n }\n }\n\n public event(transport: TransportType<T>) {\n try {\n this.$base.event(transport);\n } catch (e: any) {\n if (e instanceof Error) {\n this.errorMessage.use(e.message);\n } else {\n this.errorMessage.use(e);\n }\n if (this.errorOriginal) {\n this.errorOriginal.use(e);\n }\n }\n return this;\n }\n}\n","import { TransportParent } from \"../base/Transport\";\nimport { EventType, TransportType } from \"../types\";\nimport { EventTypeValue } from \"../types/EventType\";\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype Last<T extends any[]> = T extends [...infer _, infer L] ? L : never;\n\n/**\n * Chains events together and triggers\n * the last event only when all previous events\n * have emitted their values. The value of Chain will be the value\n * of the last event. If any events\n * emit a value again after the overall Chain response was already returned,\n * then Chain emits again with the value of the last event.\n */\nexport function Chain<T extends EventType[]>(...events: T) {\n return new TheChain<T>(...events);\n}\n\nexport class TheChain<T extends EventType[]>\n implements EventType<EventTypeValue<Last<T>>>\n{\n private $events: T;\n private $latest: EventTypeValue<Last<T>> | undefined;\n\n public constructor(...events: T) {\n this.$events = events;\n }\n\n public event(transport: TransportType<EventTypeValue<Last<T>>>) {\n this.handleEvent(0, transport);\n return this;\n }\n\n private handleEvent = (index: number, transport: TransportType) => {\n const event = this.$events[index] as Last<T>;\n const next = this.$events[index + 1] as Last<T> | undefined;\n event.event(this.oneEventTransport.child(transport, next, index));\n };\n\n private oneEventTransport = TransportParent(function (\n v: EventTypeValue<Last<T>>,\n child: TheChain<T>,\n next: Last<T> | undefined,\n index: number,\n ) {\n if (!next) {\n child.$latest = v as EventTypeValue<Last<T>>;\n }\n if (child.$latest) {\n this.use(child.$latest);\n }\n if (next && !child.$latest) {\n child.handleEvent(index + 1, this);\n }\n }, this);\n}\n","import { Transport, TransportExecutor } from \"../base\";\nimport { ensureEvent } from \"../helpers\";\nimport { EventType, TransportType } from \"../types\";\n\ntype ExecutorApplier<T> = (\n executor: TransportExecutor<T>,\n) => TransportExecutor<T>;\n\n/**\n * Applies a value transfer function to the transport\n * and returns the same value transfer function for the transport\n * Useful for applying functions like debounced or throttle\n */\nexport function ExecutorApplied<T>(\n $base: EventType<T>,\n applier: ExecutorApplier<T>,\n) {\n return new TheExecutorApplied($base, applier);\n}\n\nclass TheExecutorApplied<T> implements EventType<T> {\n public constructor(\n private $base: EventType<T>,\n private applier: ExecutorApplier<T>,\n ) {\n ensureEvent($base, \"ExecutorApplied: base\");\n }\n\n public event(transport: TransportType<T>) {\n const ExecutorAppliedBaseTransport = this.applier(\n transport.use.bind(transport),\n );\n this.$base.event(Transport(ExecutorAppliedBaseTransport));\n return this;\n }\n}\n","import { TransportParent } from \"../base/Transport\";\nimport { ConstructorType, EventType, TransportType } from \"../types\";\n\nexport function Filtered<T>(\n $base: EventType<T>,\n predicate: ConstructorType<[T], boolean>,\n defaultValue?: T,\n) {\n return new TheFiltered<T>($base, predicate, defaultValue);\n}\n\nclass TheFiltered<T> implements EventType<T> {\n public constructor(\n private $base: EventType<T>,\n private predicate: ConstructorType<[T], boolean>,\n private defaultValue?: T,\n ) {}\n\n public event(transport: TransportType<T>) {\n this.$base.event(this.parent.child(transport));\n return this;\n }\n\n private parent = TransportParent<T>(function (v, child: TheFiltered<T>) {\n if (child.predicate(v)) {\n this.use(v);\n } else if (child.defaultValue !== undefined) {\n this.use(child.defaultValue);\n }\n }, this);\n}\n","import { Transport, TransportParent } from \"../base/Transport\";\nimport { EventType, TransportType } from \"../types\";\nimport { DestroyableType } from \"../types/EventType\";\nimport { All } from \"./All\";\n\n/**\n * An event derived from another event with a different\n * method call interface, based on callbacks.\n * Allows attaching a custom handler to an existing event source\n * and presenting it as a silentium event\n */\nexport function FromEvent<T>(\n $emitter: EventType<any>,\n $eventName: EventType<string>,\n $subscribeMethod: EventType<string>,\n $unsubscribeMethod?: EventType<string>,\n) {\n return new TheFromEvent<T>(\n $emitter,\n $eventName,\n $subscribeMethod,\n $unsubscribeMethod,\n );\n}\n\nclass TheFromEvent<T> implements EventType<T>, DestroyableType {\n private lastTransport: TransportType<T> | null = null;\n private handler = (v: T) => {\n if (this.lastTransport) {\n this.lastTransport.use(v);\n }\n };\n\n public constructor(\n private $emitter: EventType<any>,\n private $eventName: EventType<string>,\n private $subscribeMethod: EventType<string>,\n private $unsubscribeMethod?: EventType<string>,\n ) {}\n\n public event(transport: TransportType<T>): this {\n const a = All(this.$emitter, this.$eventName, this.$subscribeMethod);\n a.event(this.parent.child(transport));\n return this;\n }\n\n private parent = TransportParent<[any, string, string]>(function (\n [emitter, eventName, subscribe],\n child,\n ) {\n child.lastTransport = this;\n if (!emitter?.[subscribe]) {\n return;\n }\n emitter[subscribe](eventName, child.handler);\n }, this);\n\n public destroy(): this {\n this.lastTransport = null;\n if (!this.$unsubscribeMethod) {\n return this;\n }\n const a = All(this.$emitter, this.$eventName, this.$unsubscribeMethod);\n a.event(\n Transport(([emitter, eventName, unsubscribe]) => {\n emitter?.[unsubscribe]?.(eventName, this.handler);\n }),\n );\n return this;\n }\n}\n","import { EventType, TransportType } from \"../types\";\n\n/**\n * Promise event\n */\nexport function FromPromise<T>(p: Promise<T>, errorOwner?: TransportType) {\n return new TheFromPromise<T>(p, errorOwner);\n}\n\nexport class TheFromPromise<T> implements EventType<T> {\n public constructor(\n private p: Promise<T>,\n private errorOwner?: TransportType,\n ) {}\n\n public event(transport: TransportType<T>): this {\n this.p\n .then(function FromPromiseThen(v) {\n transport.use(v);\n })\n .catch((e) => {\n this.errorOwner?.use(e);\n });\n return this;\n }\n}\n","import { isFilled } from \"../helpers\";\nimport { TransportType, SourceType } from \"../types\";\n\n/**\n * A component that allows creating linked objects of information and its owner\n * in such a way that if a new value is assigned to the owner, this value\n * will become the value of the linked information source\n * https://silentium-lab.github.io/silentium/#/en/information/of\n */\nexport function Late<T>(v?: T) {\n return new TheLate<T>(v);\n}\n\nclass TheLate<T> implements SourceType<T> {\n private lateTransport: TransportType<T> | null = null;\n private notify = (v?: T) => {\n if (isFilled(v) && this.lateTransport) {\n this.lateTransport.use(v);\n }\n };\n\n public constructor(private v?: T) {}\n\n public event(transport: TransportType<T>): this {\n if (this.lateTransport) {\n throw new Error(\n \"Late component gets new transport, when another was already connected!\",\n );\n }\n this.lateTransport = transport;\n this.notify(this.v);\n return this;\n }\n\n public use(value: T): this {\n this.notify(value);\n return this;\n }\n}\n","import { TransportParent } from \"../base\";\nimport { EventType, TransportType } from \"../types\";\n\n/**\n * Limits the number of values from the information source\n * to a single value - once the first value is emitted, no more\n * values are delivered from the source\n */\nexport function Once<T>($base: EventType<T>) {\n return new TheOnce<T>($base);\n}\n\nclass TheOnce<T> implements EventType<T> {\n private isFilled = false;\n\n public constructor(private $base: EventType<T>) {}\n\n public event(transport: TransportType<T>): this {\n this.$base.event(this.parent.child(transport));\n return this;\n }\n\n private parent = TransportParent<T>(function (v, child) {\n if (!child.isFilled) {\n child.isFilled = true;\n this.use(v);\n }\n }, this);\n}\n","import { Transport } from \"../base\";\nimport { Late } from \"../components/Late\";\nimport { Once } from \"../components/Once\";\nimport { isFilled, OwnerPool } from \"../helpers\";\nimport { EventType, TransportType, SourceType } from \"../types\";\n\n/**\n * An information object that helps multiple owners access\n * a single another information object\n */\nexport function Shared<T>($base: EventType<T>, stateless = false) {\n return new TheShared<T>($base, stateless);\n}\n\nclass TheShared<T> implements SourceType<T> {\n private ownersPool = new OwnerPool<T>();\n private lastValue: T | undefined;\n private calls = Late();\n\n public constructor(\n private $base: EventType<T>,\n private stateless = false,\n ) {\n Once(this.calls).event(\n Transport(() => {\n this.$base.event(this.firstCallTransport);\n }),\n );\n }\n\n public event(transport: TransportType<T>) {\n this.calls.use(1);\n if (\n !this.stateless &&\n isFilled(this.lastValue) &&\n !this.ownersPool.has(transport)\n ) {\n transport.use(this.lastValue);\n }\n this.ownersPool.add(transport);\n return this;\n }\n\n public use(value: T) {\n this.calls.use(1);\n this.lastValue = value;\n this.ownersPool.owner().use(value);\n return this;\n }\n\n private firstCallTransport = Transport<T>((v: T) => {\n this.lastValue = v;\n this.ownersPool.owner().use(v);\n });\n\n public touched() {\n this.calls.use(1);\n }\n\n public pool() {\n return this.ownersPool;\n }\n\n public destroy() {\n return this.ownersPool.destroy();\n }\n}\n","import { Shared } from \"../components/Shared\";\nimport { TransportType, SourceType } from \"../types\";\n\nexport function SharedSource<T>($base: SourceType<T>, stateless = false) {\n return new TheSharedSource<T>($base, stateless);\n}\n\nclass TheSharedSource<T> implements SourceType<T> {\n private $sharedBase: SourceType<T> & { touched: () => void };\n\n public constructor(\n private $base: SourceType<T>,\n stateless = false,\n ) {\n this.$sharedBase = Shared(this.$base, stateless);\n }\n\n public event(transport: TransportType<T>) {\n this.$sharedBase.event(transport);\n return this;\n }\n\n public use(value: T) {\n this.$sharedBase.touched();\n this.$base.use(value);\n return this;\n }\n}\n","import { Late } from \"../components/Late\";\nimport { SharedSource } from \"../components/SharedSource\";\nimport { TransportType, SourceType } from \"../types\";\n\n/**\n * An event with a value that will be set later,\n * capable of responding to different transports\n */\nexport function LateShared<T>(value?: T) {\n return new TheLateShared<T>(value);\n}\n\nclass TheLateShared<T> implements SourceType<T> {\n private $event: SourceType<T>;\n\n public constructor(value?: T) {\n this.$event = SharedSource(Late(value));\n }\n\n public event(transport: TransportType<T>) {\n this.$event.event(transport);\n return this;\n }\n\n public use(value: T) {\n this.$event.use(value);\n return this;\n }\n}\n","import { Of, TransportParent } from \"../base\";\nimport { isEvent } from \"../helpers\";\nimport { EventType, TransportType } from \"../types\";\nimport { All } from \"./All\";\n\n/**\n * Component that applies an info object constructor to each data item,\n * producing an information source with new values\n */\nexport function Map<T, TG>(\n $base: EventType<T[]>,\n $target: TransportType<any, EventType<TG>>,\n) {\n return new TheMap<T, TG>($base, $target);\n}\n\nclass TheMap<T, TG> implements EventType<TG[]> {\n public constructor(\n private $base: EventType<T[]>,\n private $target: TransportType<any, EventType<TG>>,\n ) {}\n\n public event(transport: TransportType<TG[]>): this {\n this.$base.event(this.parent.child(transport));\n return this;\n }\n\n private parent = TransportParent<T[]>(function (v, child) {\n const infos: EventType<TG>[] = [];\n v.forEach((val) => {\n let $val: EventType<T> | T = val;\n if (!isEvent($val as object)) {\n $val = Of($val);\n }\n const info = child.$target.use($val);\n infos.push(info);\n });\n All(...infos).event(this);\n }, this);\n}\n","import { Transport } from \"../base\";\nimport { EventType } from \"../types\";\n\n/**\n * Helps represent an event as a primitive type, which can be useful\n * for cases when you need to always have a reference to the current value\n * without updating the shared value when the current one changes.\n * For example, this could be used when passing an authorization token.\n * It can also be useful for testing or logging purposes.\n */\nexport function Primitive<T>($base: EventType<T>, theValue: T | null = null) {\n return new ThePrimitive<T>($base, theValue);\n}\n\nclass ThePrimitive<T> {\n private touched = false;\n\n public constructor(\n private $base: EventType<T>,\n private theValue: T | null = null,\n ) {}\n\n private ensureTouched() {\n if (!this.touched) {\n this.$base.event(\n Transport((v) => {\n this.theValue = v;\n }),\n );\n }\n this.touched = true;\n }\n\n public [Symbol.toPrimitive]() {\n this.ensureTouched();\n return this.theValue;\n }\n\n public primitive() {\n this.ensureTouched();\n return this.theValue;\n }\n\n public primitiveWithException() {\n this.ensureTouched();\n if (this.theValue === null) {\n throw new Error(\"Primitive value is null\");\n }\n return this.theValue;\n }\n}\n","import { TransportParent } from \"../base\";\nimport { EventType, TransportType } from \"../types\";\n\nexport function Sequence<T>($base: EventType<T>) {\n return new TheSequence<T>($base);\n}\n\n/**\n * A component that takes one value at a time and returns\n * an array of all previous values\n */\nclass TheSequence<T> implements EventType<T[]> {\n private result: T[] = [];\n\n public constructor(private $base: EventType<T>) {}\n\n public event(transport: TransportType<T[]>): this {\n this.$base.event(this.parent.child(transport));\n return this;\n }\n\n private parent = TransportParent<T>(function (v, child) {\n child.result.push(v);\n this.use(child.result);\n }, this);\n}\n","import { TransportParent } from \"../base\";\nimport { EventType, TransportType } from \"../types\";\n\n/**\n * Component that receives a data array and yields values one by one\n */\nexport function Stream<T>($base: EventType<T[]>) {\n return new TheStream<T>($base);\n}\n\nclass TheStream<T> implements EventType<T> {\n public constructor(private $base: EventType<T[]>) {}\n\n public event(transport: TransportType<T>): this {\n this.$base.event(this.parent.child(transport));\n return this;\n }\n\n private parent = TransportParent<T[]>(function (v) {\n v.forEach((cv) => {\n this.use(cv);\n });\n });\n}\n","import { EventType, ConstructorType, TransportType } from \"../types\";\n\nexport function TransportApplied<T>(\n baseTransport: TransportType<any, EventType<T>>,\n applier: ConstructorType<[EventType], EventType<T>>,\n) {\n return new TheTransportApplied(baseTransport, applier);\n}\n\nexport class TheTransportApplied<T>\n implements TransportType<unknown, EventType<T>>\n{\n public constructor(\n private baseTransport: TransportType<any, EventType<T>>,\n private applier: ConstructorType<[EventType], EventType<T>>,\n ) {}\n\n public use(args: unknown) {\n return this.applier(this.baseTransport.use(args));\n }\n}\n","import { EventType, TransportType } from \"../types\";\n\nexport function TransportArgs(\n baseTransport: TransportType<any[], EventType>,\n args: unknown[],\n startFromArgIndex: number = 0,\n) {\n return new TheTransportArgs(baseTransport, args, startFromArgIndex);\n}\n\nexport class TheTransportArgs\n implements TransportType<unknown[], EventType<unknown>>\n{\n public constructor(\n private baseTransport: TransportType<any[], EventType>,\n private args: unknown[],\n private startFromArgIndex: number = 0,\n ) {}\n\n public use(runArgs: unknown[]): EventType<unknown> {\n return this.baseTransport.use(\n mergeAtIndex(runArgs, this.args, this.startFromArgIndex),\n );\n }\n}\n\nfunction mergeAtIndex(arr1: unknown[], arr2: unknown[], index: number) {\n const result = arr1.slice(0, index);\n while (result.length < index) result.push(undefined);\n return result.concat(arr2);\n}\n","import { isDestroyable } from \"../helpers\";\nimport { DestroyableType, EventType, TransportType } from \"../types\";\n\nexport function TransportDestroyable<T>(\n baseTransport: TransportType<any[], EventType<T>>,\n) {\n return new TheTransportDestroyable<T>(baseTransport);\n}\n\n/**\n * Constructor what can be destroyed\n */\nclass TheTransportDestroyable<T>\n implements TransportType<unknown, EventType>, DestroyableType\n{\n private destructors: DestroyableType[] = [];\n\n public constructor(private baseTransport: TransportType<any, EventType<T>>) {}\n\n public use(args: unknown) {\n const inst = this.baseTransport.use(args);\n if (isDestroyable(inst)) {\n this.destructors.push(inst);\n }\n return inst;\n }\n\n public destroy(): this {\n this.destructors.forEach((i) => i.destroy());\n return this;\n }\n}\n"],"names":["__publicField"],"mappings":"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"}
|
package/dist/silentium.d.ts
CHANGED
|
@@ -52,8 +52,8 @@ type ExtractTypesFromArrayS<T extends EventType<any>[]> = {
|
|
|
52
52
|
*/
|
|
53
53
|
declare function All<const T extends EventType[]>(...events: T): TheAll<T>;
|
|
54
54
|
declare class TheAll<const T extends EventType[]> implements EventType<ExtractTypesFromArrayS<T>> {
|
|
55
|
-
private
|
|
56
|
-
private
|
|
55
|
+
private known;
|
|
56
|
+
private filled;
|
|
57
57
|
private $events;
|
|
58
58
|
private result;
|
|
59
59
|
constructor(...events: T);
|
|
@@ -113,7 +113,7 @@ type Last<T extends any[]> = T extends [...infer _, infer L] ? L : never;
|
|
|
113
113
|
declare function Chain<T extends EventType[]>(...events: T): TheChain<T>;
|
|
114
114
|
declare class TheChain<T extends EventType[]> implements EventType<EventTypeValue<Last<T>>> {
|
|
115
115
|
private $events;
|
|
116
|
-
private
|
|
116
|
+
private $latest;
|
|
117
117
|
constructor(...events: T);
|
|
118
118
|
event(transport: TransportType<EventTypeValue<Last<T>>>): this;
|
|
119
119
|
private handleEvent;
|
|
@@ -213,13 +213,14 @@ declare class TheTransportEvent<T, ET = T> implements TransportType<T, EventType
|
|
|
213
213
|
* to perform some transformation on the value
|
|
214
214
|
* during its transmission
|
|
215
215
|
*/
|
|
216
|
-
declare
|
|
216
|
+
declare function TransportParent<T>(executor: (this: TransportType, v: T, ...context: any[]) => void, ...args: any[]): TheTransportParent<T>;
|
|
217
|
+
declare class TheTransportParent<T> implements TransportType<T> {
|
|
217
218
|
private executor;
|
|
218
219
|
private args;
|
|
219
220
|
private _child?;
|
|
220
|
-
constructor(executor: (
|
|
221
|
+
constructor(executor: (this: TransportType, v: T, ...context: any[]) => void, args?: any[], _child?: TransportType<T> | undefined);
|
|
221
222
|
use(value: T): this;
|
|
222
|
-
child(transport: TransportType, ...args: any[]):
|
|
223
|
+
child(transport: TransportType, ...args: any[]): TheTransportParent<T>;
|
|
223
224
|
}
|
|
224
225
|
|
|
225
226
|
/**
|
|
@@ -468,4 +469,4 @@ declare class TheTransportDestroyable<T> implements TransportType<unknown, Event
|
|
|
468
469
|
destroy(): this;
|
|
469
470
|
}
|
|
470
471
|
|
|
471
|
-
export { All, Any, Applied, Catch, Chain, Component, ComponentClass, type ConstructorType, DestroyContainer, type DestroyableType, Event, type EventType, type EventTypeValue, ExecutorApplied, Filtered, FromEvent, FromPromise, Late, LateShared, Local, Map, Of, Once, OwnerPool,
|
|
472
|
+
export { All, Any, Applied, Catch, Chain, Component, ComponentClass, type ConstructorType, DestroyContainer, type DestroyableType, Event, type EventType, type EventTypeValue, ExecutorApplied, Filtered, FromEvent, FromPromise, Late, LateShared, Local, Map, Of, Once, OwnerPool, Primitive, Sequence, Shared, SharedSource, type SourceType, Stream, TheChain, TheFromPromise, TheTransportApplied, TheTransportArgs, Transport, TransportApplied, TransportArgs, TransportDestroyable, TransportEvent, type TransportEventExecutor, type TransportExecutor, TransportParent, type TransportType, Void, ensureEvent, ensureFunction, ensureTransport, isDestroyable, isEvent, isFilled, isTransport };
|