silentium 0.0.69 → 0.0.70
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.map +1 -1
- package/dist/silentium.d.ts +52 -46
- package/dist/silentium.js.map +1 -1
- package/dist/silentium.min.mjs.map +1 -1
- package/dist/silentium.mjs.map +1 -1
- package/package.json +1 -1
- package/src/base/Lazy.ts +4 -4
- package/src/base/Of.ts +2 -2
- package/src/base/OfFunc.ts +3 -3
- package/src/base/TheInformation.ts +10 -3
- package/src/base/TheOwner.ts +5 -1
- package/src/components/All.ts +5 -5
- package/src/components/Any.ts +4 -4
- package/src/components/Applied.ts +3 -3
- package/src/components/Chain.ts +5 -3
- package/src/components/ExecutorApplied.ts +3 -3
- package/src/components/Filtered.ts +3 -3
- package/src/components/FromCallback.ts +2 -2
- package/src/components/FromEvent.ts +6 -6
- package/src/components/FromPromise.ts +3 -3
- package/src/components/Late.ts +3 -3
- package/src/components/LazyApplied.ts +3 -3
- package/src/components/Map.ts +12 -5
- package/src/components/Once.ts +3 -3
- package/src/components/Sequence.ts +3 -3
- package/src/components/Shared.ts +10 -4
- package/src/components/Stream.ts +3 -3
- package/src/helpers/OwnerPool.ts +7 -7
- package/src/testing/diagram.ts +0 -11
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.70](https://github.com/silentium-lab/silentium/compare/v0.0.69...v0.0.70) (2025-08-24)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **main:** base on types ([9908876](https://github.com/silentium-lab/silentium/commit/990887606bd255de15c80fdcc50fc6bd8e28ab2e))
|
|
11
|
+
|
|
5
12
|
### [0.0.69](https://github.com/silentium-lab/silentium/compare/v0.0.68...v0.0.69) (2025-08-24)
|
|
6
13
|
|
|
7
14
|
|
package/dist/silentium.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentium.cjs","sources":["../src/base/Destroyable.ts","../src/base/DestroyFunc.ts","../src/base/TheOwner.ts","../src/base/From.ts","../src/base/TheInformation.ts","../src/helpers/isFilled.ts","../src/helpers/OwnerPool.ts","../src/base/Of.ts","../src/base/Lazy.ts","../src/base/OfFunc.ts","../src/base/Void.ts","../src/components/All.ts","../src/components/Any.ts","../src/components/Applied.ts","../src/components/Chain.ts","../src/components/ExecutorApplied.ts","../src/components/Filtered.ts","../src/components/FromCallback.ts","../src/components/FromEvent.ts","../src/components/FromPromise.ts","../src/components/Late.ts","../src/components/LazyApplied.ts","../src/components/LazyClass.ts","../src/components/Map.ts","../src/components/Once.ts","../src/components/Sequence.ts","../src/components/Shared.ts","../src/components/Stream.ts"],"sourcesContent":["const isDestroyable = (dep: unknown): dep is Destroyable => {\n return typeof dep === \"object\" && dep !== null && \"destroy\" in dep;\n};\n\n/**\n * Representation of Destroyable object\n */\nexport class Destroyable {\n private theDeps: any[];\n public constructor(...deps: any[]) {\n this.theDeps = deps ?? [];\n }\n\n public destroy() {\n this.theDeps?.forEach((dep) => {\n if (isDestroyable(dep)) {\n dep.destroy();\n }\n });\n return this;\n }\n\n /**\n * Add dependency what can be destroyed\n */\n public addDep(dep: any) {\n this.theDeps?.push(dep);\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\n\n/**\n * Representation of destructor function as object\n */\nexport class DestroyFunc extends Destroyable {\n public constructor(private destructor: () => void) {\n super();\n }\n\n public destroy(): this {\n this.destructor();\n return this;\n }\n}\n","/**\n * Representation of Information Owner\n */\nexport abstract class TheOwner<T = unknown> {\n public abstract give(value: T): this;\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Owner from function\n */\nexport class From<T = unknown> extends TheOwner<T> {\n public constructor(private fn: (value: T) => void) {\n super();\n }\n\n public give(value: T): this {\n this.fn(value);\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { TheOwner } from \"./TheOwner\";\n\n/**\n * Representation of Information\n */\nexport abstract class TheInformation<T = unknown> extends Destroyable {\n public abstract value(o: TheOwner<T>): this;\n}\n","export const isFilled = <T>(value?: T): value is T => {\n return value !== undefined && value !== null;\n};\n","import { From, TheOwner } from \"../base\";\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<TheOwner<T>>;\n private innerOwner: TheOwner<T>;\n\n public constructor() {\n this.owners = new Set<TheOwner<T>>();\n this.innerOwner = new From((v) => {\n this.owners.forEach((g) => {\n g.give(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: TheOwner<T>): boolean {\n return this.owners.has(owner);\n }\n\n public add(owner: TheOwner<T>) {\n this.owners.add(owner);\n return this;\n }\n\n public remove(g: TheOwner<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 { TheOwner } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\nimport { isFilled } from \"../helpers\";\n\n/**\n * Information from primitive value\n */\nexport class Of<T> extends TheInformation<T> {\n public constructor(private theValue: T) {\n super(theValue);\n }\n\n public value(o: TheOwner<T>): this {\n if (isFilled(this.theValue)) {\n o.give(this.theValue);\n }\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { TheInformation } from \"./TheInformation\";\n\n/**\n * Ability to create information after some event\n */\nexport class Lazy<T = unknown> extends Destroyable {\n public constructor(\n protected buildFn?: (...args: TheInformation[]) => TheInformation<T>,\n ) {\n super();\n }\n\n public get(...args: TheInformation[]) {\n args.forEach((dep) => {\n this.addDep(dep);\n });\n return this.buildFn?.(...args) ?? (new Of(null) as TheInformation<T>);\n }\n}\n","import { TheOwner } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\n\ntype DestructorFnType = () => void;\n\n/**\n * Information of function\n */\nexport class OfFunc<T> extends TheInformation<T> {\n private mbDestructor?: DestructorFnType | void;\n\n public constructor(\n private valueFn: (o: TheOwner<T>) => DestructorFnType | undefined | void,\n ) {\n super(valueFn);\n }\n\n public value(o: TheOwner<T>): this {\n this.mbDestructor = this.valueFn(o);\n return this;\n }\n\n public destroy(): this {\n super.destroy();\n this.mbDestructor?.();\n return this;\n }\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Silent owner\n */\nexport class Void extends TheOwner {\n public give(): this {\n return this;\n }\n}\n","import { From, TheInformation, TheOwner } from \"../base\";\n\ntype ExtractTypeS<T> = T extends TheInformation<infer U> ? U : never;\n\nexport type ExtractTypesFromArrayS<T extends TheInformation<any>[]> = {\n [K in keyof T]: ExtractTypeS<T[K]>;\n};\n\n/**\n * Combines multiple information sources into a single unified source\n * represented as an array containing values from all sources\n * https://silentium-lab.github.io/silentium/#/en/information/all\n */\nexport class All<const T extends TheInformation[]> extends TheInformation<\n ExtractTypesFromArrayS<T>\n> {\n private keysKnown: Set<string>;\n private keysFilled = new Set();\n private infos: T;\n\n public constructor(...theInfos: T) {\n super(theInfos);\n this.infos = theInfos;\n this.keysKnown = new Set<string>(Object.keys(theInfos));\n }\n\n public value(o: TheOwner<ExtractTypesFromArrayS<T>>): this {\n const result: Record<string, unknown> = {};\n\n Object.entries(this.infos).forEach(([key, info]) => {\n this.keysKnown.add(key);\n info.value(\n new From((v) => {\n this.keysFilled.add(key);\n result[key] = v;\n if (this.isAllFilled()) {\n o.give(Object.values(result) as ExtractTypesFromArrayS<T>);\n }\n }),\n );\n });\n return this;\n }\n\n private isAllFilled() {\n return (\n this.keysFilled.size > 0 && this.keysFilled.size === this.keysKnown.size\n );\n }\n}\n","import { TheInformation, TheOwner } from \"../base\";\n\n/**\n * From a set of information sources we get\n * a common response from any source for a single owner\n * https://silentium-lab.github.io/silentium/#/en/information/any\n */\nexport class Any<T> extends TheInformation<T> {\n private infos: TheInformation<T>[];\n\n public constructor(...theInfos: TheInformation<T>[]) {\n super(theInfos);\n this.infos = theInfos;\n }\n\n public value(o: TheOwner<T>): this {\n this.infos.forEach((info) => {\n info.value(o);\n });\n return this;\n }\n}\n","import { From, TheInformation, TheOwner } from \"../base\";\n\n/**\n * Information to which the function was applied to change the value\n * https://silentium-lab.github.io/silentium/#/en/information/applied\n */\nexport class Applied<T, R> extends TheInformation<R> {\n public constructor(\n private baseSrc: TheInformation<T>,\n private applier: (v: T) => R,\n ) {\n super(baseSrc);\n }\n\n public value(o: TheOwner<R>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(this.applier(v));\n }),\n );\n return this;\n }\n}\n","import { From, TheInformation, TheOwner } from \"../base\";\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype Last<T extends any[]> = T extends [...infer U, infer L] ? L : never;\n\n/**\n * The set of information sources forms a sequential chain where each source provides\n * an answer. The final answer will be the output result. If any source in the chain\n * provides a new answer, the component's overall response will be repeated.\n * https://silentium-lab.github.io/silentium/#/en/information/applied\n */\nexport class Chain<T extends TheInformation[]> extends TheInformation<Last<T>> {\n private theInfos: T;\n\n public constructor(...infos: T) {\n super(infos);\n this.theInfos = infos;\n }\n\n public value(o: TheOwner<Last<T>>) {\n let lastValue: Last<T> | undefined;\n\n const handleI = (index: number) => {\n const info = this.theInfos[index] as TheInformation<Last<T>>;\n const nextI = this.theInfos[index + 1] as\n | TheInformation<Last<T>>\n | undefined;\n\n info.value(\n new From((v) => {\n if (!nextI) {\n lastValue = v;\n }\n\n if (lastValue) {\n o.give(lastValue);\n }\n\n if (nextI && !lastValue) {\n handleI(index + 1);\n }\n }),\n );\n };\n\n handleI(0);\n\n return this;\n }\n}\n","import { From, TheInformation, TheOwner } from \"../base\";\n\n/**\n * Information to which a function is applied in order\n * to control the value passing process\n * https://silentium-lab.github.io/silentium/#/en/information/applied\n */\nexport class ExecutorApplied<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: TheInformation<T>,\n private applier: (executor: (v: T) => void) => (v: T) => void,\n ) {\n super(baseSrc);\n }\n\n public value(o: TheOwner<T>): this {\n this.baseSrc.value(\n new From(\n this.applier((v) => {\n o.give(v);\n }),\n ),\n );\n return this;\n }\n}\n","import { From, TheInformation, TheOwner } from \"../base\";\n\n/**\n * Information whose value is being validated\n * via a predicate; if the predicate returns true, the value\n * can be passed to the output\n * https://silentium-lab.github.io/silentium/#/en/information/filtered\n */\nexport class Filtered<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: TheInformation<T>,\n private predicate: (v: T) => boolean,\n private defaultValue?: T,\n ) {\n super(baseSrc);\n }\n\n public value(o: TheOwner<T>): this {\n this.baseSrc.value(\n new From((v) => {\n if (this.predicate(v)) {\n o.give(v);\n } else if (this.defaultValue !== undefined) {\n o.give(this.defaultValue);\n }\n }),\n );\n return this;\n }\n}\n","import { TheInformation, TheOwner } from \"../base\";\n\n/**\n * When receiving a reference to a function expecting a callback, the component\n * creates its own callback, and the data received in this callback\n * will become the value of the information object\n * https://silentium-lab.github.io/silentium/#/en/information/from-callback\n */\nexport class FromCallback<T> extends TheInformation<T> {\n private theArgs: unknown[];\n\n public constructor(\n private waitForCb: (cb: (v: T) => any, ...args: unknown[]) => unknown,\n ...args: unknown[]\n ) {\n super(waitForCb);\n this.theArgs = args;\n }\n\n public value(o: TheOwner<T>): this {\n this.waitForCb(\n (v) => {\n o.give(v);\n },\n ...this.theArgs,\n );\n return this;\n }\n}\n","import { DestroyFunc } from \"../base/DestroyFunc\";\nimport { From, Of, TheInformation, TheOwner } from \"../base\";\nimport { All } from \"./All\";\n\n/**\n * A component that receives data from an event and\n * presents it as an information object\n * https://silentium-lab.github.io/silentium/#/en/information/from-event\n */\nexport class FromEvent<T = unknown> extends TheInformation<T> {\n public constructor(\n private emitterSrc: TheInformation<any>,\n private eventNameSrc: TheInformation<string>,\n private subscribeMethodSrc: TheInformation<string>,\n private unsubscribeMethodSrc: TheInformation<string> = new Of(\"\"),\n ) {\n super(emitterSrc, eventNameSrc, subscribeMethodSrc, unsubscribeMethodSrc);\n }\n\n public value(o: TheOwner<T>): this {\n const a = new All(\n this.emitterSrc,\n this.eventNameSrc,\n this.subscribeMethodSrc,\n this.unsubscribeMethodSrc,\n );\n const handler = (v: T) => {\n o.give(v);\n };\n a.value(\n new From(([emitter, eventName, subscribe, unsubscribe]) => {\n emitter[subscribe](eventName, handler);\n this.addDep(\n new DestroyFunc(() => {\n emitter[unsubscribe](eventName, handler);\n }),\n );\n }),\n );\n return this;\n }\n}\n","import { TheInformation, TheOwner } from \"../base\";\n\n/**\n * Component that gets a value from a promise and\n * presents it as information\n * https://silentium-lab.github.io/silentium/#/en/information/from-promise\n */\nexport class FromPromise<T> extends TheInformation<T> {\n public constructor(\n private p: Promise<T>,\n private errorOwner?: TheOwner,\n ) {\n super(p);\n }\n\n public value(o: TheOwner<T>): this {\n this.p\n .then((v) => {\n o.give(v);\n })\n .catch((e) => {\n this.errorOwner?.give(e);\n });\n return this;\n }\n}\n","import { From, TheInformation, TheOwner } from \"../base\";\nimport { isFilled } from \"../helpers\";\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 class Late<T> extends TheInformation<T> {\n private theOwner?: TheOwner<T>;\n private lateOwner = new From((v: T) => {\n this.theValue = v;\n this.notify();\n });\n\n public constructor(private theValue?: T) {\n super(theValue);\n }\n\n public value(o: TheOwner<T>): this {\n if (this.theOwner) {\n throw new Error(\n \"Late component gets new owner, when another was already connected!\",\n );\n }\n this.theOwner = o;\n this.notify();\n return this;\n }\n\n public owner() {\n return this.lateOwner;\n }\n\n private notify() {\n if (isFilled(this.theValue) && this.theOwner) {\n this.theOwner.give(this.theValue);\n }\n return this;\n }\n}\n","import { Lazy, TheInformation } from \"../base\";\n\n/**\n * Lazy with applied function to its results\n */\nexport class LazyApplied<T> extends Lazy<T> {\n public constructor(\n private baseLazy: Lazy,\n private applier: (i: TheInformation) => TheInformation<T>,\n ) {\n super();\n }\n\n public get(...args: TheInformation[]): TheInformation<T> {\n return this.applier(this.baseLazy.get(...args));\n }\n}\n","import { Lazy } from \"../base\";\n\n/**\n * Lazy instance from class constructor\n */\nexport class LazyClass<T> extends Lazy<T> {\n public constructor(constrFn: any) {\n const buildFn = (...args: unknown[]) => new constrFn(...args);\n super(buildFn);\n }\n}\n","import { From, Lazy, Of, TheInformation, TheOwner } from \"../base\";\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 * https://silentium-lab.github.io/silentium/#/en/information/map\n */\nexport class Map<T, TG> extends TheInformation<TG[]> {\n public constructor(\n private baseSrc: TheInformation<T[]>,\n private targetSrc: Lazy<TG>,\n ) {\n super(baseSrc, targetSrc);\n }\n\n public value(o: TheOwner<TG[]>) {\n this.baseSrc.value(\n new From((v) => {\n const infos: TheInformation<TG>[] = [];\n v.forEach((val) => {\n let valInfo: TheInformation<T> | T = val;\n if (!(valInfo instanceof TheInformation)) {\n valInfo = new Of(valInfo);\n }\n const info = this.targetSrc.get(valInfo);\n infos.push(info);\n });\n const allI = new All(...infos);\n allI.value(o);\n }),\n );\n return this;\n }\n}\n","import { From, TheInformation, TheOwner } from \"../base\";\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 * https://silentium-lab.github.io/silentium/#/en/information/once\n */\nexport class Once<T> extends TheInformation<T> {\n public constructor(private baseSrc: TheInformation<T>) {\n super();\n }\n\n public value(o: TheOwner<T>): this {\n let isFilled = false;\n this.baseSrc.value(\n new From((v) => {\n if (!isFilled) {\n isFilled = true;\n o.give(v);\n }\n }),\n );\n return this;\n }\n}\n","import { From, TheInformation, TheOwner } from \"../base\";\n\n/**\n * A component that takes one value at a time and returns\n * an array of all previous values\n * https://silentium-lab.github.io/silentium/#/en/information/sequence\n */\nexport class Sequence<T> extends TheInformation<T[]> {\n public constructor(private baseSrc: TheInformation<T>) {\n super(baseSrc);\n }\n\n public value(o: TheOwner<T[]>): this {\n const result: T[] = [];\n this.baseSrc.value(\n new From((v) => {\n result.push(v);\n o.give(result);\n }),\n );\n return this;\n }\n}\n","import { isFilled, OwnerPool } from \"../helpers\";\nimport { From, OfFunc, TheInformation, TheOwner } from \"../base\";\n\n/**\n * An information object that helps multiple owners access\n * a single another information object\n * https://silentium-lab.github.io/silentium/#/en/information/pool\n */\nexport class Shared<T> extends TheInformation<T> {\n private lastValue: T | undefined;\n private ownersPool = new OwnerPool<T>();\n\n public constructor(\n private baseSrc: TheInformation<T>,\n private stateless = false,\n ) {\n super(baseSrc);\n this.addDep(this.ownersPool);\n this.baseSrc.value(\n new From((v) => {\n this.ownersPool.owner().give(v);\n this.lastValue = v;\n }),\n );\n }\n\n public value(o: TheOwner<T>): this {\n const i = new OfFunc((g: TheOwner<T>) => {\n if (\n !this.stateless &&\n isFilled(this.lastValue) &&\n !this.ownersPool.has(g)\n ) {\n g.give(this.lastValue);\n }\n this.ownersPool.add(g);\n return () => {\n this.ownersPool.remove(g);\n };\n });\n i.value(o);\n this.addDep(i);\n\n return this;\n }\n\n public pool() {\n return this.ownersPool;\n }\n}\n","import { From, TheInformation, TheOwner } from \"../base\";\n\n/**\n * Component that receives a data array and yields values one by one\n * https://silentium-lab.github.io/silentium/#/en/information/stream\n */\nexport class Stream<T> extends TheInformation<T> {\n public constructor(private baseSrc: TheInformation<T[]>) {\n super(baseSrc);\n }\n\n public value(o: TheOwner<T>): this {\n this.baseSrc.value(\n new From((v) => {\n v.forEach((cv) => {\n o.give(cv);\n });\n }),\n );\n return this;\n }\n}\n"],"names":["__publicField"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"silentium.cjs","sources":["../src/base/Destroyable.ts","../src/base/DestroyFunc.ts","../src/base/TheOwner.ts","../src/base/From.ts","../src/base/TheInformation.ts","../src/helpers/isFilled.ts","../src/helpers/OwnerPool.ts","../src/base/Of.ts","../src/base/Lazy.ts","../src/base/OfFunc.ts","../src/base/Void.ts","../src/components/All.ts","../src/components/Any.ts","../src/components/Applied.ts","../src/components/Chain.ts","../src/components/ExecutorApplied.ts","../src/components/Filtered.ts","../src/components/FromCallback.ts","../src/components/FromEvent.ts","../src/components/FromPromise.ts","../src/components/Late.ts","../src/components/LazyApplied.ts","../src/components/LazyClass.ts","../src/components/Map.ts","../src/components/Once.ts","../src/components/Sequence.ts","../src/components/Shared.ts","../src/components/Stream.ts"],"sourcesContent":["const isDestroyable = (dep: unknown): dep is Destroyable => {\n return typeof dep === \"object\" && dep !== null && \"destroy\" in dep;\n};\n\n/**\n * Representation of Destroyable object\n */\nexport class Destroyable {\n private theDeps: any[];\n public constructor(...deps: any[]) {\n this.theDeps = deps ?? [];\n }\n\n public destroy() {\n this.theDeps?.forEach((dep) => {\n if (isDestroyable(dep)) {\n dep.destroy();\n }\n });\n return this;\n }\n\n /**\n * Add dependency what can be destroyed\n */\n public addDep(dep: any) {\n this.theDeps?.push(dep);\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\n\n/**\n * Representation of destructor function as object\n */\nexport class DestroyFunc extends Destroyable {\n public constructor(private destructor: () => void) {\n super();\n }\n\n public destroy(): this {\n this.destructor();\n return this;\n }\n}\n","export interface OwnerType<T = unknown> {\n give(value: T): this;\n}\n\n/**\n * Representation of Information Owner\n */\nexport abstract class TheOwner<T = unknown> implements OwnerType<T> {\n public abstract give(value: T): this;\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Owner from function\n */\nexport class From<T = unknown> extends TheOwner<T> {\n public constructor(private fn: (value: T) => void) {\n super();\n }\n\n public give(value: T): this {\n this.fn(value);\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { OwnerType } from \"./TheOwner\";\n\nexport interface InformationType<T = unknown> {\n value(o: OwnerType<T>): this;\n}\n\n/**\n * Representation of Information\n */\nexport abstract class TheInformation<T = unknown>\n extends Destroyable\n implements InformationType<T>\n{\n public abstract value(o: OwnerType<T>): this;\n}\n","export const isFilled = <T>(value?: T): value is T => {\n return value !== undefined && value !== null;\n};\n","import { From, OwnerType } from \"../base\";\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<OwnerType<T>>;\n private innerOwner: OwnerType<T>;\n\n public constructor() {\n this.owners = new Set<OwnerType<T>>();\n this.innerOwner = new From((v) => {\n this.owners.forEach((g) => {\n g.give(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: OwnerType<T>): boolean {\n return this.owners.has(owner);\n }\n\n public add(owner: OwnerType<T>) {\n this.owners.add(owner);\n return this;\n }\n\n public remove(g: OwnerType<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 { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\nimport { isFilled } from \"../helpers\";\n\n/**\n * Information from primitive value\n */\nexport class Of<T> extends TheInformation<T> {\n public constructor(private theValue: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (isFilled(this.theValue)) {\n o.give(this.theValue);\n }\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { InformationType } from \"./TheInformation\";\n\n/**\n * Ability to create information after some event\n */\nexport class Lazy<T = unknown> extends Destroyable {\n public constructor(\n protected buildFn?: (...args: InformationType[]) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]) {\n args.forEach((dep) => {\n this.addDep(dep);\n });\n return this.buildFn?.(...args) ?? (new Of(null) as InformationType<T>);\n }\n}\n","import { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\n\ntype DestructorFnType = () => void;\n\n/**\n * Information of function\n */\nexport class OfFunc<T> extends TheInformation<T> {\n private mbDestructor?: DestructorFnType | void;\n\n public constructor(\n private valueFn: (o: OwnerType<T>) => DestructorFnType | undefined | void,\n ) {\n super(valueFn);\n }\n\n public value(o: OwnerType<T>): this {\n this.mbDestructor = this.valueFn(o);\n return this;\n }\n\n public destroy(): this {\n super.destroy();\n this.mbDestructor?.();\n return this;\n }\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Silent owner\n */\nexport class Void extends TheOwner {\n public give(): this {\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\ntype ExtractTypeS<T> = T extends InformationType<infer U> ? U : never;\n\nexport type ExtractTypesFromArrayS<T extends InformationType<any>[]> = {\n [K in keyof T]: ExtractTypeS<T[K]>;\n};\n\n/**\n * Combines multiple information sources into a single unified source\n * represented as an array containing values from all sources\n * https://silentium-lab.github.io/silentium/#/en/information/all\n */\nexport class All<const T extends InformationType[]> extends TheInformation<\n ExtractTypesFromArrayS<T>\n> {\n private keysKnown: Set<string>;\n private keysFilled = new Set();\n private infos: T;\n\n public constructor(...theInfos: T) {\n super(theInfos);\n this.infos = theInfos;\n this.keysKnown = new Set<string>(Object.keys(theInfos));\n }\n\n public value(o: OwnerType<ExtractTypesFromArrayS<T>>): this {\n const result: Record<string, unknown> = {};\n\n Object.entries(this.infos).forEach(([key, info]) => {\n this.keysKnown.add(key);\n info.value(\n new From((v) => {\n this.keysFilled.add(key);\n result[key] = v;\n if (this.isAllFilled()) {\n o.give(Object.values(result) as ExtractTypesFromArrayS<T>);\n }\n }),\n );\n });\n return this;\n }\n\n private isAllFilled() {\n return (\n this.keysFilled.size > 0 && this.keysFilled.size === this.keysKnown.size\n );\n }\n}\n","import { InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * From a set of information sources we get\n * a common response from any source for a single owner\n * https://silentium-lab.github.io/silentium/#/en/information/any\n */\nexport class Any<T> extends TheInformation<T> {\n private infos: InformationType<T>[];\n\n public constructor(...theInfos: InformationType<T>[]) {\n super(theInfos);\n this.infos = theInfos;\n }\n\n public value(o: OwnerType<T>): this {\n this.infos.forEach((info) => {\n info.value(o);\n });\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * Information to which the function was applied to change the value\n * https://silentium-lab.github.io/silentium/#/en/information/applied\n */\nexport class Applied<T, R> extends TheInformation<R> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (v: T) => R,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<R>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(this.applier(v));\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype Last<T extends any[]> = T extends [...infer U, infer L] ? L : never;\n\n/**\n * The set of information sources forms a sequential chain where each source provides\n * an answer. The final answer will be the output result. If any source in the chain\n * provides a new answer, the component's overall response will be repeated.\n * https://silentium-lab.github.io/silentium/#/en/information/applied\n */\nexport class Chain<T extends InformationType[]> extends TheInformation<\n Last<T>\n> {\n private theInfos: T;\n\n public constructor(...infos: T) {\n super(infos);\n this.theInfos = infos;\n }\n\n public value(o: OwnerType<Last<T>>) {\n let lastValue: Last<T> | undefined;\n\n const handleI = (index: number) => {\n const info = this.theInfos[index] as TheInformation<Last<T>>;\n const nextI = this.theInfos[index + 1] as\n | TheInformation<Last<T>>\n | undefined;\n\n info.value(\n new From((v) => {\n if (!nextI) {\n lastValue = v;\n }\n\n if (lastValue) {\n o.give(lastValue);\n }\n\n if (nextI && !lastValue) {\n handleI(index + 1);\n }\n }),\n );\n };\n\n handleI(0);\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * Information to which a function is applied in order\n * to control the value passing process\n * https://silentium-lab.github.io/silentium/#/en/information/applied\n */\nexport class ExecutorApplied<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (executor: (v: T) => void) => (v: T) => void,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From(\n this.applier((v) => {\n o.give(v);\n }),\n ),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * Information whose value is being validated\n * via a predicate; if the predicate returns true, the value\n * can be passed to the output\n * https://silentium-lab.github.io/silentium/#/en/information/filtered\n */\nexport class Filtered<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private predicate: (v: T) => boolean,\n private defaultValue?: T,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n if (this.predicate(v)) {\n o.give(v);\n } else if (this.defaultValue !== undefined) {\n o.give(this.defaultValue);\n }\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\n\n/**\n * When receiving a reference to a function expecting a callback, the component\n * creates its own callback, and the data received in this callback\n * will become the value of the information object\n * https://silentium-lab.github.io/silentium/#/en/information/from-callback\n */\nexport class FromCallback<T> extends TheInformation<T> {\n private theArgs: unknown[];\n\n public constructor(\n private waitForCb: (cb: (v: T) => any, ...args: unknown[]) => unknown,\n ...args: unknown[]\n ) {\n super(waitForCb);\n this.theArgs = args;\n }\n\n public value(o: OwnerType<T>): this {\n this.waitForCb(\n (v) => {\n o.give(v);\n },\n ...this.theArgs,\n );\n return this;\n }\n}\n","import { DestroyFunc } from \"../base/DestroyFunc\";\nimport { From, InformationType, Of, OwnerType, TheInformation } from \"../base\";\nimport { All } from \"./All\";\n\n/**\n * A component that receives data from an event and\n * presents it as an information object\n * https://silentium-lab.github.io/silentium/#/en/information/from-event\n */\nexport class FromEvent<T = unknown> extends TheInformation<T> {\n public constructor(\n private emitterSrc: InformationType<any>,\n private eventNameSrc: InformationType<string>,\n private subscribeMethodSrc: InformationType<string>,\n private unsubscribeMethodSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(emitterSrc, eventNameSrc, subscribeMethodSrc, unsubscribeMethodSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const a = new All(\n this.emitterSrc,\n this.eventNameSrc,\n this.subscribeMethodSrc,\n this.unsubscribeMethodSrc,\n );\n const handler = (v: T) => {\n o.give(v);\n };\n a.value(\n new From(([emitter, eventName, subscribe, unsubscribe]) => {\n emitter[subscribe](eventName, handler);\n this.addDep(\n new DestroyFunc(() => {\n emitter[unsubscribe](eventName, handler);\n }),\n );\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\n\n/**\n * Component that gets a value from a promise and\n * presents it as information\n * https://silentium-lab.github.io/silentium/#/en/information/from-promise\n */\nexport class FromPromise<T> extends TheInformation<T> {\n public constructor(\n private p: Promise<T>,\n private errorOwner?: OwnerType,\n ) {\n super(p);\n }\n\n public value(o: OwnerType<T>): this {\n this.p\n .then((v) => {\n o.give(v);\n })\n .catch((e) => {\n this.errorOwner?.give(e);\n });\n return this;\n }\n}\n","import { From, OwnerType, TheInformation } from \"../base\";\nimport { isFilled } from \"../helpers\";\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 class Late<T> extends TheInformation<T> {\n private theOwner?: OwnerType<T>;\n private lateOwner = new From((v: T) => {\n this.theValue = v;\n this.notify();\n });\n\n public constructor(private theValue?: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (this.theOwner) {\n throw new Error(\n \"Late component gets new owner, when another was already connected!\",\n );\n }\n this.theOwner = o;\n this.notify();\n return this;\n }\n\n public owner() {\n return this.lateOwner;\n }\n\n private notify() {\n if (isFilled(this.theValue) && this.theOwner) {\n this.theOwner.give(this.theValue);\n }\n return this;\n }\n}\n","import { InformationType, Lazy } from \"../base\";\n\n/**\n * Lazy with applied function to its results\n */\nexport class LazyApplied<T> extends Lazy<T> {\n public constructor(\n private baseLazy: Lazy,\n private applier: (i: InformationType) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]): InformationType<T> {\n return this.applier(this.baseLazy.get(...args));\n }\n}\n","import { Lazy } from \"../base\";\n\n/**\n * Lazy instance from class constructor\n */\nexport class LazyClass<T> extends Lazy<T> {\n public constructor(constrFn: any) {\n const buildFn = (...args: unknown[]) => new constrFn(...args);\n super(buildFn);\n }\n}\n","import {\n From,\n InformationType,\n Lazy,\n Of,\n OwnerType,\n TheInformation,\n} from \"../base\";\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 * https://silentium-lab.github.io/silentium/#/en/information/map\n */\nexport class Map<T, TG> extends TheInformation<TG[]> {\n public constructor(\n private baseSrc: InformationType<T[]>,\n private targetSrc: Lazy<TG>,\n ) {\n super(baseSrc, targetSrc);\n }\n\n public value(o: OwnerType<TG[]>) {\n this.baseSrc.value(\n new From((v) => {\n const infos: InformationType<TG>[] = [];\n v.forEach((val) => {\n let valInfo: InformationType<T> | T = val;\n if (!(valInfo instanceof TheInformation)) {\n valInfo = new Of(valInfo);\n }\n const info = this.targetSrc.get(valInfo);\n infos.push(info);\n });\n const allI = new All(...infos);\n allI.value(o);\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 * https://silentium-lab.github.io/silentium/#/en/information/once\n */\nexport class Once<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super();\n }\n\n public value(o: OwnerType<T>): this {\n let isFilled = false;\n this.baseSrc.value(\n new From((v) => {\n if (!isFilled) {\n isFilled = true;\n o.give(v);\n }\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * A component that takes one value at a time and returns\n * an array of all previous values\n * https://silentium-lab.github.io/silentium/#/en/information/sequence\n */\nexport class Sequence<T> extends TheInformation<T[]> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T[]>): this {\n const result: T[] = [];\n this.baseSrc.value(\n new From((v) => {\n result.push(v);\n o.give(result);\n }),\n );\n return this;\n }\n}\n","import { isFilled, OwnerPool } from \"../helpers\";\nimport {\n From,\n InformationType,\n OfFunc,\n OwnerType,\n TheInformation,\n} from \"../base\";\n\n/**\n * An information object that helps multiple owners access\n * a single another information object\n * https://silentium-lab.github.io/silentium/#/en/information/pool\n */\nexport class Shared<T> extends TheInformation<T> {\n private lastValue: T | undefined;\n private ownersPool = new OwnerPool<T>();\n\n public constructor(\n private baseSrc: InformationType<T>,\n private stateless = false,\n ) {\n super(baseSrc);\n this.addDep(this.ownersPool);\n this.baseSrc.value(\n new From((v) => {\n this.ownersPool.owner().give(v);\n this.lastValue = v;\n }),\n );\n }\n\n public value(o: OwnerType<T>): this {\n const i = new OfFunc((g: OwnerType<T>) => {\n if (\n !this.stateless &&\n isFilled(this.lastValue) &&\n !this.ownersPool.has(g)\n ) {\n g.give(this.lastValue);\n }\n this.ownersPool.add(g);\n return () => {\n this.ownersPool.remove(g);\n };\n });\n i.value(o);\n this.addDep(i);\n\n return this;\n }\n\n public pool() {\n return this.ownersPool;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * Component that receives a data array and yields values one by one\n * https://silentium-lab.github.io/silentium/#/en/information/stream\n */\nexport class Stream<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T[]>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n v.forEach((cv) => {\n o.give(cv);\n });\n }),\n );\n return this;\n }\n}\n"],"names":["__publicField"],"mappings":"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"}
|
package/dist/silentium.d.ts
CHANGED
|
@@ -20,10 +20,13 @@ declare class DestroyFunc extends Destroyable {
|
|
|
20
20
|
destroy(): this;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
interface OwnerType<T = unknown> {
|
|
24
|
+
give(value: T): this;
|
|
25
|
+
}
|
|
23
26
|
/**
|
|
24
27
|
* Representation of Information Owner
|
|
25
28
|
*/
|
|
26
|
-
declare abstract class TheOwner<T = unknown> {
|
|
29
|
+
declare abstract class TheOwner<T = unknown> implements OwnerType<T> {
|
|
27
30
|
abstract give(value: T): this;
|
|
28
31
|
}
|
|
29
32
|
|
|
@@ -36,20 +39,23 @@ declare class From<T = unknown> extends TheOwner<T> {
|
|
|
36
39
|
give(value: T): this;
|
|
37
40
|
}
|
|
38
41
|
|
|
42
|
+
interface InformationType<T = unknown> {
|
|
43
|
+
value(o: OwnerType<T>): this;
|
|
44
|
+
}
|
|
39
45
|
/**
|
|
40
46
|
* Representation of Information
|
|
41
47
|
*/
|
|
42
|
-
declare abstract class TheInformation<T = unknown> extends Destroyable {
|
|
43
|
-
abstract value(o:
|
|
48
|
+
declare abstract class TheInformation<T = unknown> extends Destroyable implements InformationType<T> {
|
|
49
|
+
abstract value(o: OwnerType<T>): this;
|
|
44
50
|
}
|
|
45
51
|
|
|
46
52
|
/**
|
|
47
53
|
* Ability to create information after some event
|
|
48
54
|
*/
|
|
49
55
|
declare class Lazy<T = unknown> extends Destroyable {
|
|
50
|
-
protected buildFn?: ((...args:
|
|
51
|
-
constructor(buildFn?: ((...args:
|
|
52
|
-
get(...args:
|
|
56
|
+
protected buildFn?: ((...args: InformationType[]) => InformationType<T>) | undefined;
|
|
57
|
+
constructor(buildFn?: ((...args: InformationType[]) => InformationType<T>) | undefined);
|
|
58
|
+
get(...args: InformationType[]): InformationType<T>;
|
|
53
59
|
}
|
|
54
60
|
|
|
55
61
|
/**
|
|
@@ -58,7 +64,7 @@ declare class Lazy<T = unknown> extends Destroyable {
|
|
|
58
64
|
declare class Of<T> extends TheInformation<T> {
|
|
59
65
|
private theValue;
|
|
60
66
|
constructor(theValue: T);
|
|
61
|
-
value(o:
|
|
67
|
+
value(o: OwnerType<T>): this;
|
|
62
68
|
}
|
|
63
69
|
|
|
64
70
|
type DestructorFnType = () => void;
|
|
@@ -68,8 +74,8 @@ type DestructorFnType = () => void;
|
|
|
68
74
|
declare class OfFunc<T> extends TheInformation<T> {
|
|
69
75
|
private valueFn;
|
|
70
76
|
private mbDestructor?;
|
|
71
|
-
constructor(valueFn: (o:
|
|
72
|
-
value(o:
|
|
77
|
+
constructor(valueFn: (o: OwnerType<T>) => DestructorFnType | undefined | void);
|
|
78
|
+
value(o: OwnerType<T>): this;
|
|
73
79
|
destroy(): this;
|
|
74
80
|
}
|
|
75
81
|
|
|
@@ -80,8 +86,8 @@ declare class Void extends TheOwner {
|
|
|
80
86
|
give(): this;
|
|
81
87
|
}
|
|
82
88
|
|
|
83
|
-
type ExtractTypeS<T> = T extends
|
|
84
|
-
type ExtractTypesFromArrayS<T extends
|
|
89
|
+
type ExtractTypeS<T> = T extends InformationType<infer U> ? U : never;
|
|
90
|
+
type ExtractTypesFromArrayS<T extends InformationType<any>[]> = {
|
|
85
91
|
[K in keyof T]: ExtractTypeS<T[K]>;
|
|
86
92
|
};
|
|
87
93
|
/**
|
|
@@ -89,12 +95,12 @@ type ExtractTypesFromArrayS<T extends TheInformation<any>[]> = {
|
|
|
89
95
|
* represented as an array containing values from all sources
|
|
90
96
|
* https://silentium-lab.github.io/silentium/#/en/information/all
|
|
91
97
|
*/
|
|
92
|
-
declare class All<const T extends
|
|
98
|
+
declare class All<const T extends InformationType[]> extends TheInformation<ExtractTypesFromArrayS<T>> {
|
|
93
99
|
private keysKnown;
|
|
94
100
|
private keysFilled;
|
|
95
101
|
private infos;
|
|
96
102
|
constructor(...theInfos: T);
|
|
97
|
-
value(o:
|
|
103
|
+
value(o: OwnerType<ExtractTypesFromArrayS<T>>): this;
|
|
98
104
|
private isAllFilled;
|
|
99
105
|
}
|
|
100
106
|
|
|
@@ -105,8 +111,8 @@ declare class All<const T extends TheInformation[]> extends TheInformation<Extra
|
|
|
105
111
|
*/
|
|
106
112
|
declare class Any<T> extends TheInformation<T> {
|
|
107
113
|
private infos;
|
|
108
|
-
constructor(...theInfos:
|
|
109
|
-
value(o:
|
|
114
|
+
constructor(...theInfos: InformationType<T>[]);
|
|
115
|
+
value(o: OwnerType<T>): this;
|
|
110
116
|
}
|
|
111
117
|
|
|
112
118
|
/**
|
|
@@ -116,8 +122,8 @@ declare class Any<T> extends TheInformation<T> {
|
|
|
116
122
|
declare class Applied<T, R> extends TheInformation<R> {
|
|
117
123
|
private baseSrc;
|
|
118
124
|
private applier;
|
|
119
|
-
constructor(baseSrc:
|
|
120
|
-
value(o:
|
|
125
|
+
constructor(baseSrc: InformationType<T>, applier: (v: T) => R);
|
|
126
|
+
value(o: OwnerType<R>): this;
|
|
121
127
|
}
|
|
122
128
|
|
|
123
129
|
type Last<T extends any[]> = T extends [...infer U, infer L] ? L : never;
|
|
@@ -127,10 +133,10 @@ type Last<T extends any[]> = T extends [...infer U, infer L] ? L : never;
|
|
|
127
133
|
* provides a new answer, the component's overall response will be repeated.
|
|
128
134
|
* https://silentium-lab.github.io/silentium/#/en/information/applied
|
|
129
135
|
*/
|
|
130
|
-
declare class Chain<T extends
|
|
136
|
+
declare class Chain<T extends InformationType[]> extends TheInformation<Last<T>> {
|
|
131
137
|
private theInfos;
|
|
132
138
|
constructor(...infos: T);
|
|
133
|
-
value(o:
|
|
139
|
+
value(o: OwnerType<Last<T>>): this;
|
|
134
140
|
}
|
|
135
141
|
|
|
136
142
|
/**
|
|
@@ -141,8 +147,8 @@ declare class Chain<T extends TheInformation[]> extends TheInformation<Last<T>>
|
|
|
141
147
|
declare class ExecutorApplied<T> extends TheInformation<T> {
|
|
142
148
|
private baseSrc;
|
|
143
149
|
private applier;
|
|
144
|
-
constructor(baseSrc:
|
|
145
|
-
value(o:
|
|
150
|
+
constructor(baseSrc: InformationType<T>, applier: (executor: (v: T) => void) => (v: T) => void);
|
|
151
|
+
value(o: OwnerType<T>): this;
|
|
146
152
|
}
|
|
147
153
|
|
|
148
154
|
/**
|
|
@@ -155,8 +161,8 @@ declare class Filtered<T> extends TheInformation<T> {
|
|
|
155
161
|
private baseSrc;
|
|
156
162
|
private predicate;
|
|
157
163
|
private defaultValue?;
|
|
158
|
-
constructor(baseSrc:
|
|
159
|
-
value(o:
|
|
164
|
+
constructor(baseSrc: InformationType<T>, predicate: (v: T) => boolean, defaultValue?: T | undefined);
|
|
165
|
+
value(o: OwnerType<T>): this;
|
|
160
166
|
}
|
|
161
167
|
|
|
162
168
|
/**
|
|
@@ -169,7 +175,7 @@ declare class FromCallback<T> extends TheInformation<T> {
|
|
|
169
175
|
private waitForCb;
|
|
170
176
|
private theArgs;
|
|
171
177
|
constructor(waitForCb: (cb: (v: T) => any, ...args: unknown[]) => unknown, ...args: unknown[]);
|
|
172
|
-
value(o:
|
|
178
|
+
value(o: OwnerType<T>): this;
|
|
173
179
|
}
|
|
174
180
|
|
|
175
181
|
/**
|
|
@@ -182,8 +188,8 @@ declare class FromEvent<T = unknown> extends TheInformation<T> {
|
|
|
182
188
|
private eventNameSrc;
|
|
183
189
|
private subscribeMethodSrc;
|
|
184
190
|
private unsubscribeMethodSrc;
|
|
185
|
-
constructor(emitterSrc:
|
|
186
|
-
value(o:
|
|
191
|
+
constructor(emitterSrc: InformationType<any>, eventNameSrc: InformationType<string>, subscribeMethodSrc: InformationType<string>, unsubscribeMethodSrc?: InformationType<string>);
|
|
192
|
+
value(o: OwnerType<T>): this;
|
|
187
193
|
}
|
|
188
194
|
|
|
189
195
|
/**
|
|
@@ -194,8 +200,8 @@ declare class FromEvent<T = unknown> extends TheInformation<T> {
|
|
|
194
200
|
declare class FromPromise<T> extends TheInformation<T> {
|
|
195
201
|
private p;
|
|
196
202
|
private errorOwner?;
|
|
197
|
-
constructor(p: Promise<T>, errorOwner?:
|
|
198
|
-
value(o:
|
|
203
|
+
constructor(p: Promise<T>, errorOwner?: OwnerType | undefined);
|
|
204
|
+
value(o: OwnerType<T>): this;
|
|
199
205
|
}
|
|
200
206
|
|
|
201
207
|
/**
|
|
@@ -209,7 +215,7 @@ declare class Late<T> extends TheInformation<T> {
|
|
|
209
215
|
private theOwner?;
|
|
210
216
|
private lateOwner;
|
|
211
217
|
constructor(theValue?: T | undefined);
|
|
212
|
-
value(o:
|
|
218
|
+
value(o: OwnerType<T>): this;
|
|
213
219
|
owner(): From<T>;
|
|
214
220
|
private notify;
|
|
215
221
|
}
|
|
@@ -220,8 +226,8 @@ declare class Late<T> extends TheInformation<T> {
|
|
|
220
226
|
declare class LazyApplied<T> extends Lazy<T> {
|
|
221
227
|
private baseLazy;
|
|
222
228
|
private applier;
|
|
223
|
-
constructor(baseLazy: Lazy, applier: (i:
|
|
224
|
-
get(...args:
|
|
229
|
+
constructor(baseLazy: Lazy, applier: (i: InformationType) => InformationType<T>);
|
|
230
|
+
get(...args: InformationType[]): InformationType<T>;
|
|
225
231
|
}
|
|
226
232
|
|
|
227
233
|
/**
|
|
@@ -239,8 +245,8 @@ declare class LazyClass<T> extends Lazy<T> {
|
|
|
239
245
|
declare class Map<T, TG> extends TheInformation<TG[]> {
|
|
240
246
|
private baseSrc;
|
|
241
247
|
private targetSrc;
|
|
242
|
-
constructor(baseSrc:
|
|
243
|
-
value(o:
|
|
248
|
+
constructor(baseSrc: InformationType<T[]>, targetSrc: Lazy<TG>);
|
|
249
|
+
value(o: OwnerType<TG[]>): this;
|
|
244
250
|
}
|
|
245
251
|
|
|
246
252
|
/**
|
|
@@ -251,8 +257,8 @@ declare class Map<T, TG> extends TheInformation<TG[]> {
|
|
|
251
257
|
*/
|
|
252
258
|
declare class Once<T> extends TheInformation<T> {
|
|
253
259
|
private baseSrc;
|
|
254
|
-
constructor(baseSrc:
|
|
255
|
-
value(o:
|
|
260
|
+
constructor(baseSrc: InformationType<T>);
|
|
261
|
+
value(o: OwnerType<T>): this;
|
|
256
262
|
}
|
|
257
263
|
|
|
258
264
|
/**
|
|
@@ -262,8 +268,8 @@ declare class Once<T> extends TheInformation<T> {
|
|
|
262
268
|
*/
|
|
263
269
|
declare class Sequence<T> extends TheInformation<T[]> {
|
|
264
270
|
private baseSrc;
|
|
265
|
-
constructor(baseSrc:
|
|
266
|
-
value(o:
|
|
271
|
+
constructor(baseSrc: InformationType<T>);
|
|
272
|
+
value(o: OwnerType<T[]>): this;
|
|
267
273
|
}
|
|
268
274
|
|
|
269
275
|
declare const isFilled: <T>(value?: T) => value is T;
|
|
@@ -277,11 +283,11 @@ declare class OwnerPool<T> {
|
|
|
277
283
|
private owners;
|
|
278
284
|
private innerOwner;
|
|
279
285
|
constructor();
|
|
280
|
-
owner():
|
|
286
|
+
owner(): OwnerType<T>;
|
|
281
287
|
size(): number;
|
|
282
|
-
has(owner:
|
|
283
|
-
add(owner:
|
|
284
|
-
remove(g:
|
|
288
|
+
has(owner: OwnerType<T>): boolean;
|
|
289
|
+
add(owner: OwnerType<T>): this;
|
|
290
|
+
remove(g: OwnerType<T>): this;
|
|
285
291
|
destroy(): this;
|
|
286
292
|
}
|
|
287
293
|
|
|
@@ -295,8 +301,8 @@ declare class Shared<T> extends TheInformation<T> {
|
|
|
295
301
|
private stateless;
|
|
296
302
|
private lastValue;
|
|
297
303
|
private ownersPool;
|
|
298
|
-
constructor(baseSrc:
|
|
299
|
-
value(o:
|
|
304
|
+
constructor(baseSrc: InformationType<T>, stateless?: boolean);
|
|
305
|
+
value(o: OwnerType<T>): this;
|
|
300
306
|
pool(): OwnerPool<T>;
|
|
301
307
|
}
|
|
302
308
|
|
|
@@ -306,8 +312,8 @@ declare class Shared<T> extends TheInformation<T> {
|
|
|
306
312
|
*/
|
|
307
313
|
declare class Stream<T> extends TheInformation<T> {
|
|
308
314
|
private baseSrc;
|
|
309
|
-
constructor(baseSrc:
|
|
310
|
-
value(o:
|
|
315
|
+
constructor(baseSrc: InformationType<T[]>);
|
|
316
|
+
value(o: OwnerType<T>): this;
|
|
311
317
|
}
|
|
312
318
|
|
|
313
|
-
export { All, Any, Applied, Chain, DestroyFunc, Destroyable, ExecutorApplied, type ExtractTypesFromArrayS, Filtered, From, FromCallback, FromEvent, FromPromise, Late, Lazy, LazyApplied, LazyClass, Map, Of, OfFunc, Once, OwnerPool, Sequence, Shared, Stream, TheInformation, TheOwner, Void, isFilled };
|
|
319
|
+
export { All, Any, Applied, Chain, DestroyFunc, Destroyable, ExecutorApplied, type ExtractTypesFromArrayS, Filtered, From, FromCallback, FromEvent, FromPromise, type InformationType, Late, Lazy, LazyApplied, LazyClass, Map, Of, OfFunc, Once, OwnerPool, type OwnerType, Sequence, Shared, Stream, TheInformation, TheOwner, Void, isFilled };
|
package/dist/silentium.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentium.js","sources":["../src/base/Destroyable.ts","../src/base/DestroyFunc.ts","../src/base/TheOwner.ts","../src/base/From.ts","../src/base/TheInformation.ts","../src/helpers/isFilled.ts","../src/helpers/OwnerPool.ts","../src/base/Of.ts","../src/base/Lazy.ts","../src/base/OfFunc.ts","../src/base/Void.ts","../src/components/All.ts","../src/components/Any.ts","../src/components/Applied.ts","../src/components/Chain.ts","../src/components/ExecutorApplied.ts","../src/components/Filtered.ts","../src/components/FromCallback.ts","../src/components/FromEvent.ts","../src/components/FromPromise.ts","../src/components/Late.ts","../src/components/LazyApplied.ts","../src/components/LazyClass.ts","../src/components/Map.ts","../src/components/Once.ts","../src/components/Sequence.ts","../src/components/Shared.ts","../src/components/Stream.ts"],"sourcesContent":["const isDestroyable = (dep: unknown): dep is Destroyable => {\n return typeof dep === \"object\" && dep !== null && \"destroy\" in dep;\n};\n\n/**\n * Representation of Destroyable object\n */\nexport class Destroyable {\n private theDeps: any[];\n public constructor(...deps: any[]) {\n this.theDeps = deps ?? [];\n }\n\n public destroy() {\n this.theDeps?.forEach((dep) => {\n if (isDestroyable(dep)) {\n dep.destroy();\n }\n });\n return this;\n }\n\n /**\n * Add dependency what can be destroyed\n */\n public addDep(dep: any) {\n this.theDeps?.push(dep);\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\n\n/**\n * Representation of destructor function as object\n */\nexport class DestroyFunc extends Destroyable {\n public constructor(private destructor: () => void) {\n super();\n }\n\n public destroy(): this {\n this.destructor();\n return this;\n }\n}\n","/**\n * Representation of Information Owner\n */\nexport abstract class TheOwner<T = unknown> {\n public abstract give(value: T): this;\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Owner from function\n */\nexport class From<T = unknown> extends TheOwner<T> {\n public constructor(private fn: (value: T) => void) {\n super();\n }\n\n public give(value: T): this {\n this.fn(value);\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { TheOwner } from \"./TheOwner\";\n\n/**\n * Representation of Information\n */\nexport abstract class TheInformation<T = unknown> extends Destroyable {\n public abstract value(o: TheOwner<T>): this;\n}\n","export const isFilled = <T>(value?: T): value is T => {\n return value !== undefined && value !== null;\n};\n","import { From, TheOwner } from \"../base\";\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<TheOwner<T>>;\n private innerOwner: TheOwner<T>;\n\n public constructor() {\n this.owners = new Set<TheOwner<T>>();\n this.innerOwner = new From((v) => {\n this.owners.forEach((g) => {\n g.give(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: TheOwner<T>): boolean {\n return this.owners.has(owner);\n }\n\n public add(owner: TheOwner<T>) {\n this.owners.add(owner);\n return this;\n }\n\n public remove(g: TheOwner<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 { TheOwner } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\nimport { isFilled } from \"../helpers\";\n\n/**\n * Information from primitive value\n */\nexport class Of<T> extends TheInformation<T> {\n public constructor(private theValue: T) {\n super(theValue);\n }\n\n public value(o: TheOwner<T>): this {\n if (isFilled(this.theValue)) {\n o.give(this.theValue);\n }\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { TheInformation } from \"./TheInformation\";\n\n/**\n * Ability to create information after some event\n */\nexport class Lazy<T = unknown> extends Destroyable {\n public constructor(\n protected buildFn?: (...args: TheInformation[]) => TheInformation<T>,\n ) {\n super();\n }\n\n public get(...args: TheInformation[]) {\n args.forEach((dep) => {\n this.addDep(dep);\n });\n return this.buildFn?.(...args) ?? (new Of(null) as TheInformation<T>);\n }\n}\n","import { TheOwner } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\n\ntype DestructorFnType = () => void;\n\n/**\n * Information of function\n */\nexport class OfFunc<T> extends TheInformation<T> {\n private mbDestructor?: DestructorFnType | void;\n\n public constructor(\n private valueFn: (o: TheOwner<T>) => DestructorFnType | undefined | void,\n ) {\n super(valueFn);\n }\n\n public value(o: TheOwner<T>): this {\n this.mbDestructor = this.valueFn(o);\n return this;\n }\n\n public destroy(): this {\n super.destroy();\n this.mbDestructor?.();\n return this;\n }\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Silent owner\n */\nexport class Void extends TheOwner {\n public give(): this {\n return this;\n }\n}\n","import { From, TheInformation, TheOwner } from \"../base\";\n\ntype ExtractTypeS<T> = T extends TheInformation<infer U> ? U : never;\n\nexport type ExtractTypesFromArrayS<T extends TheInformation<any>[]> = {\n [K in keyof T]: ExtractTypeS<T[K]>;\n};\n\n/**\n * Combines multiple information sources into a single unified source\n * represented as an array containing values from all sources\n * https://silentium-lab.github.io/silentium/#/en/information/all\n */\nexport class All<const T extends TheInformation[]> extends TheInformation<\n ExtractTypesFromArrayS<T>\n> {\n private keysKnown: Set<string>;\n private keysFilled = new Set();\n private infos: T;\n\n public constructor(...theInfos: T) {\n super(theInfos);\n this.infos = theInfos;\n this.keysKnown = new Set<string>(Object.keys(theInfos));\n }\n\n public value(o: TheOwner<ExtractTypesFromArrayS<T>>): this {\n const result: Record<string, unknown> = {};\n\n Object.entries(this.infos).forEach(([key, info]) => {\n this.keysKnown.add(key);\n info.value(\n new From((v) => {\n this.keysFilled.add(key);\n result[key] = v;\n if (this.isAllFilled()) {\n o.give(Object.values(result) as ExtractTypesFromArrayS<T>);\n }\n }),\n );\n });\n return this;\n }\n\n private isAllFilled() {\n return (\n this.keysFilled.size > 0 && this.keysFilled.size === this.keysKnown.size\n );\n }\n}\n","import { TheInformation, TheOwner } from \"../base\";\n\n/**\n * From a set of information sources we get\n * a common response from any source for a single owner\n * https://silentium-lab.github.io/silentium/#/en/information/any\n */\nexport class Any<T> extends TheInformation<T> {\n private infos: TheInformation<T>[];\n\n public constructor(...theInfos: TheInformation<T>[]) {\n super(theInfos);\n this.infos = theInfos;\n }\n\n public value(o: TheOwner<T>): this {\n this.infos.forEach((info) => {\n info.value(o);\n });\n return this;\n }\n}\n","import { From, TheInformation, TheOwner } from \"../base\";\n\n/**\n * Information to which the function was applied to change the value\n * https://silentium-lab.github.io/silentium/#/en/information/applied\n */\nexport class Applied<T, R> extends TheInformation<R> {\n public constructor(\n private baseSrc: TheInformation<T>,\n private applier: (v: T) => R,\n ) {\n super(baseSrc);\n }\n\n public value(o: TheOwner<R>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(this.applier(v));\n }),\n );\n return this;\n }\n}\n","import { From, TheInformation, TheOwner } from \"../base\";\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype Last<T extends any[]> = T extends [...infer U, infer L] ? L : never;\n\n/**\n * The set of information sources forms a sequential chain where each source provides\n * an answer. The final answer will be the output result. If any source in the chain\n * provides a new answer, the component's overall response will be repeated.\n * https://silentium-lab.github.io/silentium/#/en/information/applied\n */\nexport class Chain<T extends TheInformation[]> extends TheInformation<Last<T>> {\n private theInfos: T;\n\n public constructor(...infos: T) {\n super(infos);\n this.theInfos = infos;\n }\n\n public value(o: TheOwner<Last<T>>) {\n let lastValue: Last<T> | undefined;\n\n const handleI = (index: number) => {\n const info = this.theInfos[index] as TheInformation<Last<T>>;\n const nextI = this.theInfos[index + 1] as\n | TheInformation<Last<T>>\n | undefined;\n\n info.value(\n new From((v) => {\n if (!nextI) {\n lastValue = v;\n }\n\n if (lastValue) {\n o.give(lastValue);\n }\n\n if (nextI && !lastValue) {\n handleI(index + 1);\n }\n }),\n );\n };\n\n handleI(0);\n\n return this;\n }\n}\n","import { From, TheInformation, TheOwner } from \"../base\";\n\n/**\n * Information to which a function is applied in order\n * to control the value passing process\n * https://silentium-lab.github.io/silentium/#/en/information/applied\n */\nexport class ExecutorApplied<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: TheInformation<T>,\n private applier: (executor: (v: T) => void) => (v: T) => void,\n ) {\n super(baseSrc);\n }\n\n public value(o: TheOwner<T>): this {\n this.baseSrc.value(\n new From(\n this.applier((v) => {\n o.give(v);\n }),\n ),\n );\n return this;\n }\n}\n","import { From, TheInformation, TheOwner } from \"../base\";\n\n/**\n * Information whose value is being validated\n * via a predicate; if the predicate returns true, the value\n * can be passed to the output\n * https://silentium-lab.github.io/silentium/#/en/information/filtered\n */\nexport class Filtered<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: TheInformation<T>,\n private predicate: (v: T) => boolean,\n private defaultValue?: T,\n ) {\n super(baseSrc);\n }\n\n public value(o: TheOwner<T>): this {\n this.baseSrc.value(\n new From((v) => {\n if (this.predicate(v)) {\n o.give(v);\n } else if (this.defaultValue !== undefined) {\n o.give(this.defaultValue);\n }\n }),\n );\n return this;\n }\n}\n","import { TheInformation, TheOwner } from \"../base\";\n\n/**\n * When receiving a reference to a function expecting a callback, the component\n * creates its own callback, and the data received in this callback\n * will become the value of the information object\n * https://silentium-lab.github.io/silentium/#/en/information/from-callback\n */\nexport class FromCallback<T> extends TheInformation<T> {\n private theArgs: unknown[];\n\n public constructor(\n private waitForCb: (cb: (v: T) => any, ...args: unknown[]) => unknown,\n ...args: unknown[]\n ) {\n super(waitForCb);\n this.theArgs = args;\n }\n\n public value(o: TheOwner<T>): this {\n this.waitForCb(\n (v) => {\n o.give(v);\n },\n ...this.theArgs,\n );\n return this;\n }\n}\n","import { DestroyFunc } from \"../base/DestroyFunc\";\nimport { From, Of, TheInformation, TheOwner } from \"../base\";\nimport { All } from \"./All\";\n\n/**\n * A component that receives data from an event and\n * presents it as an information object\n * https://silentium-lab.github.io/silentium/#/en/information/from-event\n */\nexport class FromEvent<T = unknown> extends TheInformation<T> {\n public constructor(\n private emitterSrc: TheInformation<any>,\n private eventNameSrc: TheInformation<string>,\n private subscribeMethodSrc: TheInformation<string>,\n private unsubscribeMethodSrc: TheInformation<string> = new Of(\"\"),\n ) {\n super(emitterSrc, eventNameSrc, subscribeMethodSrc, unsubscribeMethodSrc);\n }\n\n public value(o: TheOwner<T>): this {\n const a = new All(\n this.emitterSrc,\n this.eventNameSrc,\n this.subscribeMethodSrc,\n this.unsubscribeMethodSrc,\n );\n const handler = (v: T) => {\n o.give(v);\n };\n a.value(\n new From(([emitter, eventName, subscribe, unsubscribe]) => {\n emitter[subscribe](eventName, handler);\n this.addDep(\n new DestroyFunc(() => {\n emitter[unsubscribe](eventName, handler);\n }),\n );\n }),\n );\n return this;\n }\n}\n","import { TheInformation, TheOwner } from \"../base\";\n\n/**\n * Component that gets a value from a promise and\n * presents it as information\n * https://silentium-lab.github.io/silentium/#/en/information/from-promise\n */\nexport class FromPromise<T> extends TheInformation<T> {\n public constructor(\n private p: Promise<T>,\n private errorOwner?: TheOwner,\n ) {\n super(p);\n }\n\n public value(o: TheOwner<T>): this {\n this.p\n .then((v) => {\n o.give(v);\n })\n .catch((e) => {\n this.errorOwner?.give(e);\n });\n return this;\n }\n}\n","import { From, TheInformation, TheOwner } from \"../base\";\nimport { isFilled } from \"../helpers\";\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 class Late<T> extends TheInformation<T> {\n private theOwner?: TheOwner<T>;\n private lateOwner = new From((v: T) => {\n this.theValue = v;\n this.notify();\n });\n\n public constructor(private theValue?: T) {\n super(theValue);\n }\n\n public value(o: TheOwner<T>): this {\n if (this.theOwner) {\n throw new Error(\n \"Late component gets new owner, when another was already connected!\",\n );\n }\n this.theOwner = o;\n this.notify();\n return this;\n }\n\n public owner() {\n return this.lateOwner;\n }\n\n private notify() {\n if (isFilled(this.theValue) && this.theOwner) {\n this.theOwner.give(this.theValue);\n }\n return this;\n }\n}\n","import { Lazy, TheInformation } from \"../base\";\n\n/**\n * Lazy with applied function to its results\n */\nexport class LazyApplied<T> extends Lazy<T> {\n public constructor(\n private baseLazy: Lazy,\n private applier: (i: TheInformation) => TheInformation<T>,\n ) {\n super();\n }\n\n public get(...args: TheInformation[]): TheInformation<T> {\n return this.applier(this.baseLazy.get(...args));\n }\n}\n","import { Lazy } from \"../base\";\n\n/**\n * Lazy instance from class constructor\n */\nexport class LazyClass<T> extends Lazy<T> {\n public constructor(constrFn: any) {\n const buildFn = (...args: unknown[]) => new constrFn(...args);\n super(buildFn);\n }\n}\n","import { From, Lazy, Of, TheInformation, TheOwner } from \"../base\";\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 * https://silentium-lab.github.io/silentium/#/en/information/map\n */\nexport class Map<T, TG> extends TheInformation<TG[]> {\n public constructor(\n private baseSrc: TheInformation<T[]>,\n private targetSrc: Lazy<TG>,\n ) {\n super(baseSrc, targetSrc);\n }\n\n public value(o: TheOwner<TG[]>) {\n this.baseSrc.value(\n new From((v) => {\n const infos: TheInformation<TG>[] = [];\n v.forEach((val) => {\n let valInfo: TheInformation<T> | T = val;\n if (!(valInfo instanceof TheInformation)) {\n valInfo = new Of(valInfo);\n }\n const info = this.targetSrc.get(valInfo);\n infos.push(info);\n });\n const allI = new All(...infos);\n allI.value(o);\n }),\n );\n return this;\n }\n}\n","import { From, TheInformation, TheOwner } from \"../base\";\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 * https://silentium-lab.github.io/silentium/#/en/information/once\n */\nexport class Once<T> extends TheInformation<T> {\n public constructor(private baseSrc: TheInformation<T>) {\n super();\n }\n\n public value(o: TheOwner<T>): this {\n let isFilled = false;\n this.baseSrc.value(\n new From((v) => {\n if (!isFilled) {\n isFilled = true;\n o.give(v);\n }\n }),\n );\n return this;\n }\n}\n","import { From, TheInformation, TheOwner } from \"../base\";\n\n/**\n * A component that takes one value at a time and returns\n * an array of all previous values\n * https://silentium-lab.github.io/silentium/#/en/information/sequence\n */\nexport class Sequence<T> extends TheInformation<T[]> {\n public constructor(private baseSrc: TheInformation<T>) {\n super(baseSrc);\n }\n\n public value(o: TheOwner<T[]>): this {\n const result: T[] = [];\n this.baseSrc.value(\n new From((v) => {\n result.push(v);\n o.give(result);\n }),\n );\n return this;\n }\n}\n","import { isFilled, OwnerPool } from \"../helpers\";\nimport { From, OfFunc, TheInformation, TheOwner } from \"../base\";\n\n/**\n * An information object that helps multiple owners access\n * a single another information object\n * https://silentium-lab.github.io/silentium/#/en/information/pool\n */\nexport class Shared<T> extends TheInformation<T> {\n private lastValue: T | undefined;\n private ownersPool = new OwnerPool<T>();\n\n public constructor(\n private baseSrc: TheInformation<T>,\n private stateless = false,\n ) {\n super(baseSrc);\n this.addDep(this.ownersPool);\n this.baseSrc.value(\n new From((v) => {\n this.ownersPool.owner().give(v);\n this.lastValue = v;\n }),\n );\n }\n\n public value(o: TheOwner<T>): this {\n const i = new OfFunc((g: TheOwner<T>) => {\n if (\n !this.stateless &&\n isFilled(this.lastValue) &&\n !this.ownersPool.has(g)\n ) {\n g.give(this.lastValue);\n }\n this.ownersPool.add(g);\n return () => {\n this.ownersPool.remove(g);\n };\n });\n i.value(o);\n this.addDep(i);\n\n return this;\n }\n\n public pool() {\n return this.ownersPool;\n }\n}\n","import { From, TheInformation, TheOwner } from \"../base\";\n\n/**\n * Component that receives a data array and yields values one by one\n * https://silentium-lab.github.io/silentium/#/en/information/stream\n */\nexport class Stream<T> extends TheInformation<T> {\n public constructor(private baseSrc: TheInformation<T[]>) {\n super(baseSrc);\n }\n\n public value(o: TheOwner<T>): this {\n this.baseSrc.value(\n new From((v) => {\n v.forEach((cv) => {\n o.give(cv);\n });\n }),\n );\n return this;\n }\n}\n"],"names":["__publicField"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"silentium.js","sources":["../src/base/Destroyable.ts","../src/base/DestroyFunc.ts","../src/base/TheOwner.ts","../src/base/From.ts","../src/base/TheInformation.ts","../src/helpers/isFilled.ts","../src/helpers/OwnerPool.ts","../src/base/Of.ts","../src/base/Lazy.ts","../src/base/OfFunc.ts","../src/base/Void.ts","../src/components/All.ts","../src/components/Any.ts","../src/components/Applied.ts","../src/components/Chain.ts","../src/components/ExecutorApplied.ts","../src/components/Filtered.ts","../src/components/FromCallback.ts","../src/components/FromEvent.ts","../src/components/FromPromise.ts","../src/components/Late.ts","../src/components/LazyApplied.ts","../src/components/LazyClass.ts","../src/components/Map.ts","../src/components/Once.ts","../src/components/Sequence.ts","../src/components/Shared.ts","../src/components/Stream.ts"],"sourcesContent":["const isDestroyable = (dep: unknown): dep is Destroyable => {\n return typeof dep === \"object\" && dep !== null && \"destroy\" in dep;\n};\n\n/**\n * Representation of Destroyable object\n */\nexport class Destroyable {\n private theDeps: any[];\n public constructor(...deps: any[]) {\n this.theDeps = deps ?? [];\n }\n\n public destroy() {\n this.theDeps?.forEach((dep) => {\n if (isDestroyable(dep)) {\n dep.destroy();\n }\n });\n return this;\n }\n\n /**\n * Add dependency what can be destroyed\n */\n public addDep(dep: any) {\n this.theDeps?.push(dep);\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\n\n/**\n * Representation of destructor function as object\n */\nexport class DestroyFunc extends Destroyable {\n public constructor(private destructor: () => void) {\n super();\n }\n\n public destroy(): this {\n this.destructor();\n return this;\n }\n}\n","export interface OwnerType<T = unknown> {\n give(value: T): this;\n}\n\n/**\n * Representation of Information Owner\n */\nexport abstract class TheOwner<T = unknown> implements OwnerType<T> {\n public abstract give(value: T): this;\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Owner from function\n */\nexport class From<T = unknown> extends TheOwner<T> {\n public constructor(private fn: (value: T) => void) {\n super();\n }\n\n public give(value: T): this {\n this.fn(value);\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { OwnerType } from \"./TheOwner\";\n\nexport interface InformationType<T = unknown> {\n value(o: OwnerType<T>): this;\n}\n\n/**\n * Representation of Information\n */\nexport abstract class TheInformation<T = unknown>\n extends Destroyable\n implements InformationType<T>\n{\n public abstract value(o: OwnerType<T>): this;\n}\n","export const isFilled = <T>(value?: T): value is T => {\n return value !== undefined && value !== null;\n};\n","import { From, OwnerType } from \"../base\";\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<OwnerType<T>>;\n private innerOwner: OwnerType<T>;\n\n public constructor() {\n this.owners = new Set<OwnerType<T>>();\n this.innerOwner = new From((v) => {\n this.owners.forEach((g) => {\n g.give(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: OwnerType<T>): boolean {\n return this.owners.has(owner);\n }\n\n public add(owner: OwnerType<T>) {\n this.owners.add(owner);\n return this;\n }\n\n public remove(g: OwnerType<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 { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\nimport { isFilled } from \"../helpers\";\n\n/**\n * Information from primitive value\n */\nexport class Of<T> extends TheInformation<T> {\n public constructor(private theValue: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (isFilled(this.theValue)) {\n o.give(this.theValue);\n }\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { InformationType } from \"./TheInformation\";\n\n/**\n * Ability to create information after some event\n */\nexport class Lazy<T = unknown> extends Destroyable {\n public constructor(\n protected buildFn?: (...args: InformationType[]) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]) {\n args.forEach((dep) => {\n this.addDep(dep);\n });\n return this.buildFn?.(...args) ?? (new Of(null) as InformationType<T>);\n }\n}\n","import { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\n\ntype DestructorFnType = () => void;\n\n/**\n * Information of function\n */\nexport class OfFunc<T> extends TheInformation<T> {\n private mbDestructor?: DestructorFnType | void;\n\n public constructor(\n private valueFn: (o: OwnerType<T>) => DestructorFnType | undefined | void,\n ) {\n super(valueFn);\n }\n\n public value(o: OwnerType<T>): this {\n this.mbDestructor = this.valueFn(o);\n return this;\n }\n\n public destroy(): this {\n super.destroy();\n this.mbDestructor?.();\n return this;\n }\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Silent owner\n */\nexport class Void extends TheOwner {\n public give(): this {\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\ntype ExtractTypeS<T> = T extends InformationType<infer U> ? U : never;\n\nexport type ExtractTypesFromArrayS<T extends InformationType<any>[]> = {\n [K in keyof T]: ExtractTypeS<T[K]>;\n};\n\n/**\n * Combines multiple information sources into a single unified source\n * represented as an array containing values from all sources\n * https://silentium-lab.github.io/silentium/#/en/information/all\n */\nexport class All<const T extends InformationType[]> extends TheInformation<\n ExtractTypesFromArrayS<T>\n> {\n private keysKnown: Set<string>;\n private keysFilled = new Set();\n private infos: T;\n\n public constructor(...theInfos: T) {\n super(theInfos);\n this.infos = theInfos;\n this.keysKnown = new Set<string>(Object.keys(theInfos));\n }\n\n public value(o: OwnerType<ExtractTypesFromArrayS<T>>): this {\n const result: Record<string, unknown> = {};\n\n Object.entries(this.infos).forEach(([key, info]) => {\n this.keysKnown.add(key);\n info.value(\n new From((v) => {\n this.keysFilled.add(key);\n result[key] = v;\n if (this.isAllFilled()) {\n o.give(Object.values(result) as ExtractTypesFromArrayS<T>);\n }\n }),\n );\n });\n return this;\n }\n\n private isAllFilled() {\n return (\n this.keysFilled.size > 0 && this.keysFilled.size === this.keysKnown.size\n );\n }\n}\n","import { InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * From a set of information sources we get\n * a common response from any source for a single owner\n * https://silentium-lab.github.io/silentium/#/en/information/any\n */\nexport class Any<T> extends TheInformation<T> {\n private infos: InformationType<T>[];\n\n public constructor(...theInfos: InformationType<T>[]) {\n super(theInfos);\n this.infos = theInfos;\n }\n\n public value(o: OwnerType<T>): this {\n this.infos.forEach((info) => {\n info.value(o);\n });\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * Information to which the function was applied to change the value\n * https://silentium-lab.github.io/silentium/#/en/information/applied\n */\nexport class Applied<T, R> extends TheInformation<R> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (v: T) => R,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<R>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(this.applier(v));\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype Last<T extends any[]> = T extends [...infer U, infer L] ? L : never;\n\n/**\n * The set of information sources forms a sequential chain where each source provides\n * an answer. The final answer will be the output result. If any source in the chain\n * provides a new answer, the component's overall response will be repeated.\n * https://silentium-lab.github.io/silentium/#/en/information/applied\n */\nexport class Chain<T extends InformationType[]> extends TheInformation<\n Last<T>\n> {\n private theInfos: T;\n\n public constructor(...infos: T) {\n super(infos);\n this.theInfos = infos;\n }\n\n public value(o: OwnerType<Last<T>>) {\n let lastValue: Last<T> | undefined;\n\n const handleI = (index: number) => {\n const info = this.theInfos[index] as TheInformation<Last<T>>;\n const nextI = this.theInfos[index + 1] as\n | TheInformation<Last<T>>\n | undefined;\n\n info.value(\n new From((v) => {\n if (!nextI) {\n lastValue = v;\n }\n\n if (lastValue) {\n o.give(lastValue);\n }\n\n if (nextI && !lastValue) {\n handleI(index + 1);\n }\n }),\n );\n };\n\n handleI(0);\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * Information to which a function is applied in order\n * to control the value passing process\n * https://silentium-lab.github.io/silentium/#/en/information/applied\n */\nexport class ExecutorApplied<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (executor: (v: T) => void) => (v: T) => void,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From(\n this.applier((v) => {\n o.give(v);\n }),\n ),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * Information whose value is being validated\n * via a predicate; if the predicate returns true, the value\n * can be passed to the output\n * https://silentium-lab.github.io/silentium/#/en/information/filtered\n */\nexport class Filtered<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private predicate: (v: T) => boolean,\n private defaultValue?: T,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n if (this.predicate(v)) {\n o.give(v);\n } else if (this.defaultValue !== undefined) {\n o.give(this.defaultValue);\n }\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\n\n/**\n * When receiving a reference to a function expecting a callback, the component\n * creates its own callback, and the data received in this callback\n * will become the value of the information object\n * https://silentium-lab.github.io/silentium/#/en/information/from-callback\n */\nexport class FromCallback<T> extends TheInformation<T> {\n private theArgs: unknown[];\n\n public constructor(\n private waitForCb: (cb: (v: T) => any, ...args: unknown[]) => unknown,\n ...args: unknown[]\n ) {\n super(waitForCb);\n this.theArgs = args;\n }\n\n public value(o: OwnerType<T>): this {\n this.waitForCb(\n (v) => {\n o.give(v);\n },\n ...this.theArgs,\n );\n return this;\n }\n}\n","import { DestroyFunc } from \"../base/DestroyFunc\";\nimport { From, InformationType, Of, OwnerType, TheInformation } from \"../base\";\nimport { All } from \"./All\";\n\n/**\n * A component that receives data from an event and\n * presents it as an information object\n * https://silentium-lab.github.io/silentium/#/en/information/from-event\n */\nexport class FromEvent<T = unknown> extends TheInformation<T> {\n public constructor(\n private emitterSrc: InformationType<any>,\n private eventNameSrc: InformationType<string>,\n private subscribeMethodSrc: InformationType<string>,\n private unsubscribeMethodSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(emitterSrc, eventNameSrc, subscribeMethodSrc, unsubscribeMethodSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const a = new All(\n this.emitterSrc,\n this.eventNameSrc,\n this.subscribeMethodSrc,\n this.unsubscribeMethodSrc,\n );\n const handler = (v: T) => {\n o.give(v);\n };\n a.value(\n new From(([emitter, eventName, subscribe, unsubscribe]) => {\n emitter[subscribe](eventName, handler);\n this.addDep(\n new DestroyFunc(() => {\n emitter[unsubscribe](eventName, handler);\n }),\n );\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\n\n/**\n * Component that gets a value from a promise and\n * presents it as information\n * https://silentium-lab.github.io/silentium/#/en/information/from-promise\n */\nexport class FromPromise<T> extends TheInformation<T> {\n public constructor(\n private p: Promise<T>,\n private errorOwner?: OwnerType,\n ) {\n super(p);\n }\n\n public value(o: OwnerType<T>): this {\n this.p\n .then((v) => {\n o.give(v);\n })\n .catch((e) => {\n this.errorOwner?.give(e);\n });\n return this;\n }\n}\n","import { From, OwnerType, TheInformation } from \"../base\";\nimport { isFilled } from \"../helpers\";\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 class Late<T> extends TheInformation<T> {\n private theOwner?: OwnerType<T>;\n private lateOwner = new From((v: T) => {\n this.theValue = v;\n this.notify();\n });\n\n public constructor(private theValue?: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (this.theOwner) {\n throw new Error(\n \"Late component gets new owner, when another was already connected!\",\n );\n }\n this.theOwner = o;\n this.notify();\n return this;\n }\n\n public owner() {\n return this.lateOwner;\n }\n\n private notify() {\n if (isFilled(this.theValue) && this.theOwner) {\n this.theOwner.give(this.theValue);\n }\n return this;\n }\n}\n","import { InformationType, Lazy } from \"../base\";\n\n/**\n * Lazy with applied function to its results\n */\nexport class LazyApplied<T> extends Lazy<T> {\n public constructor(\n private baseLazy: Lazy,\n private applier: (i: InformationType) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]): InformationType<T> {\n return this.applier(this.baseLazy.get(...args));\n }\n}\n","import { Lazy } from \"../base\";\n\n/**\n * Lazy instance from class constructor\n */\nexport class LazyClass<T> extends Lazy<T> {\n public constructor(constrFn: any) {\n const buildFn = (...args: unknown[]) => new constrFn(...args);\n super(buildFn);\n }\n}\n","import {\n From,\n InformationType,\n Lazy,\n Of,\n OwnerType,\n TheInformation,\n} from \"../base\";\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 * https://silentium-lab.github.io/silentium/#/en/information/map\n */\nexport class Map<T, TG> extends TheInformation<TG[]> {\n public constructor(\n private baseSrc: InformationType<T[]>,\n private targetSrc: Lazy<TG>,\n ) {\n super(baseSrc, targetSrc);\n }\n\n public value(o: OwnerType<TG[]>) {\n this.baseSrc.value(\n new From((v) => {\n const infos: InformationType<TG>[] = [];\n v.forEach((val) => {\n let valInfo: InformationType<T> | T = val;\n if (!(valInfo instanceof TheInformation)) {\n valInfo = new Of(valInfo);\n }\n const info = this.targetSrc.get(valInfo);\n infos.push(info);\n });\n const allI = new All(...infos);\n allI.value(o);\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 * https://silentium-lab.github.io/silentium/#/en/information/once\n */\nexport class Once<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super();\n }\n\n public value(o: OwnerType<T>): this {\n let isFilled = false;\n this.baseSrc.value(\n new From((v) => {\n if (!isFilled) {\n isFilled = true;\n o.give(v);\n }\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * A component that takes one value at a time and returns\n * an array of all previous values\n * https://silentium-lab.github.io/silentium/#/en/information/sequence\n */\nexport class Sequence<T> extends TheInformation<T[]> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T[]>): this {\n const result: T[] = [];\n this.baseSrc.value(\n new From((v) => {\n result.push(v);\n o.give(result);\n }),\n );\n return this;\n }\n}\n","import { isFilled, OwnerPool } from \"../helpers\";\nimport {\n From,\n InformationType,\n OfFunc,\n OwnerType,\n TheInformation,\n} from \"../base\";\n\n/**\n * An information object that helps multiple owners access\n * a single another information object\n * https://silentium-lab.github.io/silentium/#/en/information/pool\n */\nexport class Shared<T> extends TheInformation<T> {\n private lastValue: T | undefined;\n private ownersPool = new OwnerPool<T>();\n\n public constructor(\n private baseSrc: InformationType<T>,\n private stateless = false,\n ) {\n super(baseSrc);\n this.addDep(this.ownersPool);\n this.baseSrc.value(\n new From((v) => {\n this.ownersPool.owner().give(v);\n this.lastValue = v;\n }),\n );\n }\n\n public value(o: OwnerType<T>): this {\n const i = new OfFunc((g: OwnerType<T>) => {\n if (\n !this.stateless &&\n isFilled(this.lastValue) &&\n !this.ownersPool.has(g)\n ) {\n g.give(this.lastValue);\n }\n this.ownersPool.add(g);\n return () => {\n this.ownersPool.remove(g);\n };\n });\n i.value(o);\n this.addDep(i);\n\n return this;\n }\n\n public pool() {\n return this.ownersPool;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * Component that receives a data array and yields values one by one\n * https://silentium-lab.github.io/silentium/#/en/information/stream\n */\nexport class Stream<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T[]>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n v.forEach((cv) => {\n o.give(cv);\n });\n }),\n );\n return this;\n }\n}\n"],"names":["__publicField"],"mappings":"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"}
|