silentium-components 0.0.123 → 0.0.124
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-components.cjs +7 -7
- package/dist/silentium-components.cjs.map +1 -1
- package/dist/silentium-components.js +7 -7
- package/dist/silentium-components.js.map +1 -1
- package/dist/silentium-components.min.js +1 -1
- package/dist/silentium-components.min.mjs +1 -1
- package/dist/silentium-components.min.mjs.map +1 -1
- package/dist/silentium-components.mjs +7 -7
- package/dist/silentium-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/behaviors/Part.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.124](https://github.com/silentium-lab/silentium-components/compare/v0.0.123...v0.0.124) (2026-04-03)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **main:** part component primitive move out of source ([ae14dbc](https://github.com/silentium-lab/silentium-components/commit/ae14dbc73c94c0d3d4f1c3233e285d8fc4d803bd))
|
|
11
|
+
|
|
5
12
|
### [0.0.123](https://github.com/silentium-lab/silentium-components/compare/v0.0.122...v0.0.123) (2026-04-02)
|
|
6
13
|
|
|
7
14
|
|
|
@@ -234,15 +234,17 @@ function OnlyChanged($base) {
|
|
|
234
234
|
function Part($base, key, defaultValue) {
|
|
235
235
|
const $baseShared = silentium.Shared($base);
|
|
236
236
|
const $keyedShared = silentium.Shared(silentium.Actual(key));
|
|
237
|
+
const keyPrimitive = silentium.Primitive($keyedShared);
|
|
238
|
+
const base = silentium.Primitive($baseShared);
|
|
237
239
|
return silentium.Source(
|
|
238
240
|
function PartImpl(r) {
|
|
239
|
-
silentium.All($baseShared, $keyedShared).then(function partAllSub([
|
|
241
|
+
silentium.All($baseShared, $keyedShared).then(function partAllSub([base2, keyed]) {
|
|
240
242
|
const keys = keyed.split(".");
|
|
241
|
-
let value =
|
|
243
|
+
let value = base2;
|
|
242
244
|
keys.forEach(function partsAllKeysForEach(key2) {
|
|
243
245
|
value = value[key2];
|
|
244
246
|
});
|
|
245
|
-
if (value !== void 0 && value !==
|
|
247
|
+
if (value !== void 0 && value !== base2) {
|
|
246
248
|
r(value);
|
|
247
249
|
} else if (defaultValue !== void 0) {
|
|
248
250
|
r(defaultValue);
|
|
@@ -250,12 +252,10 @@ function Part($base, key, defaultValue) {
|
|
|
250
252
|
});
|
|
251
253
|
},
|
|
252
254
|
function PartSourceImpl(value) {
|
|
253
|
-
|
|
254
|
-
if (silentium.isFilled(key2)) {
|
|
255
|
-
const base = silentium.Primitive($base);
|
|
255
|
+
if (silentium.isFilled(key)) {
|
|
256
256
|
$base.use({
|
|
257
257
|
...base.primitiveWithException(),
|
|
258
|
-
[
|
|
258
|
+
[keyPrimitive.primitiveWithException()]: value
|
|
259
259
|
});
|
|
260
260
|
}
|
|
261
261
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentium-components.cjs","sources":["../src/behaviors/Branch.ts","../src/behaviors/BranchLazy.ts","../src/behaviors/Const.ts","../src/behaviors/Deadline.ts","../src/behaviors/Deferred.ts","../src/behaviors/Detached.ts","../src/behaviors/Dirty.ts","../src/behaviors/Loading.ts","../src/behaviors/Lock.ts","../src/behaviors/Memo.ts","../src/behaviors/MergeAccumulation.ts","../src/behaviors/OnlyChanged.ts","../src/behaviors/Part.ts","../src/behaviors/Path.ts","../src/behaviors/Polling.ts","../src/behaviors/RecordTruncated.ts","../src/behaviors/StateRecord.ts","../src/behaviors/Switch.ts","../src/behaviors/Task.ts","../src/behaviors/Tick.ts","../src/structures/HashTable.ts","../src/structures/Record.ts","../src/behaviors/Transformed.ts","../src/behaviors/TransformedList.ts","../src/boolean/And.ts","../src/boolean/Bool.ts","../src/boolean/Not.ts","../src/boolean/Or.ts","../src/formats/FromJson.ts","../src/formats/ToJson.ts","../src/lists/First.ts","../src/system/RegexpMatch.ts","../src/system/RegexpMatched.ts","../src/system/RegexpReplaced.ts","../src/system/Set.ts","../src/navigation/Router.ts","../src/strings/Concatenated.ts","../src/strings/Template.ts"],"sourcesContent":["import {\n Actual,\n MaybeMessage,\n Message,\n MessageType,\n Primitive,\n} from \"silentium\";\n\n/**\n * Allows switching between left and right messages depending on condition\n * https://silentium.pw/article/branch/view\n */\nexport function Branch<Then, Else>(\n _condition: MaybeMessage<boolean>,\n _left: MaybeMessage<Then>,\n _right?: MaybeMessage<Else>,\n) {\n const $condition = Actual(_condition);\n const $left = Actual(_left);\n const $right = Actual(_right);\n return Message<Then | Else>(function BranchImpl(r) {\n const left = Primitive($left);\n let right: ReturnType<typeof Primitive<Else>>;\n if (_right !== undefined) {\n right = Primitive($right as MessageType<Else>);\n }\n $condition.then(function branchSub(v) {\n if (typeof v !== \"boolean\") {\n throw new Error(\"Branch received not boolean value\");\n }\n let result: Then | Else | null = null;\n if (v === true) {\n result = left.primitive();\n } else if (right) {\n result = right.primitive();\n }\n if (result !== null) {\n r(result);\n }\n });\n });\n}\n","import {\n ConstructorType,\n DestroyableType,\n DestroyContainer,\n Message,\n MessageType,\n} from \"silentium\";\n\n/**\n * Depending on the $condition message,\n * creates a new left or right message.\n * When condition changes, old messages are destroyed\n * and new ones are created.\n */\nexport function BranchLazy<Then, Else>(\n $condition: MessageType<boolean>,\n $left: ConstructorType<[], MessageType<Then>>,\n $right?: ConstructorType<[], MessageType<Else>>,\n): MessageType<Then | Else> & DestroyableType {\n return Message(function BranchLazyImpl(r) {\n const dc = DestroyContainer();\n const destructor = () => {\n dc.destroy();\n };\n $condition.then(function branchLazySub(v) {\n destructor();\n let instance: MessageType<Then | Else> | undefined;\n if (v) {\n instance = $left();\n } else if ($right) {\n instance = $right();\n }\n if (instance !== undefined) {\n instance.then(r);\n dc.add(instance);\n }\n });\n return destructor;\n });\n}\n","import { Message, MessageType, ResetSilenceCache } from \"silentium\";\n\n/**\n * Constant value that will be\n * returned on each value from\n * the $trigger message\n */\nexport function Constant<T>(\n permanent: T,\n $trigger: MessageType,\n): MessageType<T> {\n return Message<T>(function ConstantImpl(resolve, reject) {\n $trigger.catch(reject).then(function constantSub() {\n resolve(permanent);\n // Do cache reset, it gives ability to send constant of same value many times\n resolve(ResetSilenceCache as T);\n });\n });\n}\n","import {\n Actual,\n Filtered,\n MaybeMessage,\n Message,\n MessageType,\n Shared,\n} from \"silentium\";\n\n/**\n * Will return an error via error transport if\n * time runs out from $timeout; if $base manages to\n * respond before $timeout then the value from base will be returned\n */\nexport function Deadline<T>(\n $base: MessageType<T>,\n _timeout: MaybeMessage<number>,\n) {\n const $timeout = Actual(_timeout);\n return Message<T>(function DeadlineImpl(resolve, reject) {\n let timer: ReturnType<typeof setTimeout> | number = 0;\n const base = Shared($base);\n $timeout.then(function deadlineTimeoutSub(timeout) {\n if (timer) {\n clearTimeout(timer);\n }\n let timeoutReached = false;\n\n timer = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n reject(new Error(\"Timeout reached in Deadline\"));\n }, timeout);\n\n const f = Filtered(base, () => !timeoutReached);\n f.then(resolve);\n\n base.then(function deadlineBaseSub() {\n timeoutReached = true;\n });\n });\n });\n}\n","import { isFilled, Message, MessageType, Primitive } from \"silentium\";\n\n/**\n * Defer one source after another, gives values Of baseSrc only when triggerSrc responds\n * https://silentium-lab.github.io/silentium-components/#/behaviors/deferred\n */\nexport function Deferred<T>(\n $base: MessageType<T>,\n $trigger: MessageType<unknown>,\n) {\n return Message<T>(function DeferredImpl(r) {\n const base = Primitive($base);\n $trigger.then(function deferredTriggerSub() {\n const value = base.primitive();\n if (isFilled(value)) {\n r(value);\n }\n });\n });\n}\n","import { isFilled, Message, MessageType, Primitive } from \"silentium\";\n\n/**\n * Message separate from the base\n * allows to take one value from the base\n * but not react to new values of the base message\n */\nexport function Detached<T>($base: MessageType<T>): MessageType<T> {\n return Message<T>(function DetachedImpl(r) {\n const v = Primitive($base).primitive();\n if (isFilled(v)) {\n r(v);\n }\n });\n}\n","import { All, Applied, Late, MessageType, Source } from \"silentium\";\n\n/**\n * Takes source and remember it first value\n * returns new record, what will contain only fields what was changed\n * https://silentium-lab.github.io/silentium-components/#/behaviors/dirty\n */\nexport function Dirty<T extends Record<string, unknown>>(\n $base: MessageType<T>,\n keep: string[] = [],\n exclude: string[] = [],\n cloner?: (v: T) => T,\n) {\n const $comparing = Late<T>({} as T);\n if (cloner === undefined) {\n cloner = (value) => JSON.parse(JSON.stringify(value));\n }\n return Source<T>(\n function DirtyImpl(r) {\n const $comparingClone = Applied($comparing, cloner);\n All($comparingClone, $base).then(function dirtyAllSub([comparing, base]) {\n if (!comparing) {\n return;\n }\n r(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (keep.includes(key)) {\n return true;\n }\n if (exclude.includes(key)) {\n return false;\n }\n return value !== (base as Record<string, unknown>)[key];\n }),\n ) as T,\n );\n });\n },\n (v) => {\n $comparing.use(v);\n },\n );\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * Representation Of loading process\n * first message begins loading\n * second message stops loading\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport function Loading(\n $start: MessageType<unknown>,\n $finish: MessageType<unknown>,\n) {\n return Message<boolean>(function LoadingImpl(r) {\n $start.then(function loadingStartSub() {\n r(true);\n });\n $finish.then(function loadingFinishSub() {\n r(false);\n });\n });\n}\n","import { Filtered, Message, MessageType } from \"silentium\";\n\n/**\n * Allows locking messages\n * if a $lock message arrives\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport function Lock<T>($base: MessageType<T>, $lock: MessageType<boolean>) {\n return Message<T>(function LockImpl(r) {\n let locked = false;\n $lock.then(function lockLockSub(newLock) {\n locked = newLock;\n });\n const i = Filtered($base, () => !locked);\n i.then(function lockBaseSub(v) {\n r(v);\n });\n });\n}\n","import { isFilled, Message, MessageType } from \"silentium\";\n\n/**\n * Didn't respond if new value Of baseSrc equals to old value\n * https://silentium-lab.github.io/silentium-components/#/behaviors/memo\n */\nexport function Memo<T>($base: MessageType<T>) {\n return Message<T>(function MemoImpl(r) {\n let last: T | null = null;\n $base.then(function memoBaseSub(v) {\n if (v !== last && isFilled(v)) {\n r(v);\n last = v;\n }\n });\n });\n}\n","import { Late, MessageType } from \"silentium\";\n\n/**\n * Есть объект и каждое новое его значение нужно мержить с прошлым\n * чтобы накопить общие изменения\n */\nexport function MergeAccumulation<T extends object>(\n $base: MessageType<T>,\n $reset?: MessageType<T>,\n): MessageType<T> {\n const accumulation = Late<T>();\n const lastAccumulated = {};\n $base.then(function mergeAccumulationBaseSub(nextValue) {\n accumulation.use(\n mergeWith(lastAccumulated, nextValue, (value1: any, value2: any) => {\n if (Array.isArray(value1)) {\n return value1.concat(value2);\n }\n }),\n );\n });\n if ($reset) {\n $reset.then(function mergeAccumulationResetSub(resetValue) {\n accumulation.use(resetValue);\n });\n }\n return accumulation;\n}\n\nfunction mergeWith<TObject, TSource>(\n target: TObject,\n source: TSource,\n customizer: (\n objValue: any,\n srcValue: any,\n key: string,\n object: any,\n source: any,\n ) => any,\n): TObject & TSource {\n if (source == null) {\n return target as TObject & TSource;\n }\n Object.keys(source).forEach((key) => {\n const srcValue = (source as any)[key];\n const objValue = (target as any)[key];\n const result = customizer(objValue, srcValue, key, target, source);\n\n if (result !== undefined) {\n (target as any)[key] = result;\n } else if (isObject(srcValue) && isObject(objValue)) {\n mergeWith(objValue, srcValue, customizer);\n } else {\n (target as any)[key] = srcValue;\n }\n });\n return target as TObject & TSource;\n}\n\nfunction isObject(value: any): value is \"object\" {\n return value != null && typeof value === \"object\";\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * Represents source what was changed at least once\n * @url https://silentium.pw/article/only-changed/view\n */\nexport function OnlyChanged<T>($base: MessageType<T>) {\n return Message<T>(function OnlyChangedImpl(r) {\n let first = false;\n $base.then(function onlyChangedBaseSub(v) {\n if (first === false) {\n first = true;\n } else {\n r(v);\n }\n });\n });\n}\n","import {\n Actual,\n All,\n isFilled,\n MaybeMessage,\n MessageSourceType,\n Primitive,\n Shared,\n Source,\n} from \"silentium\";\n\n/**\n * Return source Of record path\n * @url https://silentium.pw/article/part/view\n */\nexport function Part<\n R,\n T extends object | Array<any> = any,\n K extends string = any,\n>(\n $base: MessageSourceType<T>,\n key: MaybeMessage<K>,\n defaultValue?: R,\n): MessageSourceType<R> {\n const $baseShared = Shared($base);\n const $keyedShared = Shared(Actual(key));\n return Source(\n function PartImpl(r) {\n All($baseShared, $keyedShared).then(function partAllSub([base, keyed]) {\n const keys = keyed.split(\".\");\n let value: unknown = base;\n keys.forEach(function partsAllKeysForEach(key: string) {\n value = (value as Record<string, unknown>)[key];\n });\n if (value !== undefined && value !== base) {\n r(value as R);\n } else if (defaultValue !== undefined) {\n r(defaultValue);\n }\n });\n },\n function PartSourceImpl(value) {\n const key = Primitive($keyedShared);\n if (isFilled(key)) {\n const base = Primitive($base);\n $base.use({\n ...base.primitiveWithException(),\n [key.primitiveWithException()]: value,\n } as T);\n }\n },\n );\n}\n","import { Actual, All, Applied, MaybeMessage, MessageType } from \"silentium\";\n\nconst NotSet = Symbol(\"not-set\");\n\n/**\n * Return source Of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport function Path<\n R,\n T extends object | Array<any> = any,\n K extends string = any,\n>(_base: MaybeMessage<T>, _keyed: MaybeMessage<K>, def?: MaybeMessage<R>) {\n const $base = Actual(_base);\n const $keyed = Actual(_keyed);\n const $def = Actual((def as any) ?? NotSet);\n return Applied(All($base, $keyed, $def), ([base, keyed, d]) => {\n const keys = keyed.split(\".\");\n let value: unknown = base;\n keys.forEach((key) => {\n value = (value as Record<string, unknown>)[key];\n });\n if (value !== undefined && value !== base) {\n return value as R;\n } else if (d !== NotSet) {\n return d as R;\n }\n }) as MessageType<R>;\n}\n","import {\n DestroyContainer,\n Message,\n MessageType,\n ResetSilenceCache,\n} from \"silentium\";\n\n/**\n * Active polling of $base message\n * synchronized with $trigger message\n * can return same values\n */\nexport function Polling<T>(\n $base: MessageType<T>,\n $trigger: MessageType<unknown>,\n) {\n return Message<T>(function PollingImpl(resolve, reject) {\n const dc = DestroyContainer();\n $trigger\n .then(function pollingTriggerSub() {\n dc.destroy();\n resolve(ResetSilenceCache as T);\n dc.add($base.then(resolve).catch(reject));\n })\n .catch(reject);\n });\n}\n","import { Actual, Computed, MaybeMessage } from \"silentium\";\n\n/**\n * Helps eliminate unwanted values\n * that shouldn't exist in object fields\n */\nexport function RecordTruncated(\n _record: MaybeMessage<Record<string, unknown>>,\n _badValues: MaybeMessage<unknown[]>,\n) {\n const $record = Actual(_record);\n const $badValues = Actual(_badValues);\n const processRecord = (obj: any, badValues: unknown[]) => {\n if (obj === null || typeof obj !== \"object\" || Array.isArray(obj)) {\n return obj;\n }\n\n const result: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(obj)) {\n if (badValues.includes(value)) continue;\n\n const processedValue = processRecord(value, badValues);\n\n if (\n processedValue !== undefined &&\n !(\n typeof processedValue === \"object\" &&\n processedValue !== null &&\n !Array.isArray(processedValue) &&\n Object.keys(processedValue).length === 0\n )\n ) {\n result[key] = processedValue;\n }\n }\n\n return result;\n };\n\n return Computed(processRecord, $record, $badValues);\n}\n","import {\n Actual,\n DestroyContainer,\n MaybeMessage,\n Message,\n MessageType,\n Value,\n} from \"silentium\";\n\nexport function StateRecord(\n state$: MessageType,\n values$: MessageType,\n sequence: MaybeMessage<unknown[]>,\n) {\n const dc = DestroyContainer();\n let stateIndex = -1;\n let latestState: string | null = null;\n let result: Record<string, unknown> = {};\n const sequence$ = Value(Actual(sequence));\n return Message(function StateRecordImpl(resolve, reject) {\n dc.add(\n state$\n .then(function stateRecordStateSub(state) {\n if (state === sequence$.value?.[stateIndex + 1]) {\n stateIndex += 1;\n latestState = state as string;\n } else {\n stateIndex = -1;\n latestState = null;\n result = {};\n }\n })\n .catch(reject),\n );\n dc.add(\n values$\n .then(function stateRecordValuesSub(value) {\n if (latestState !== null) {\n result[latestState] = value;\n }\n if (stateIndex + 1 === sequence$.value?.length) {\n resolve(result);\n stateIndex = -1;\n latestState = null;\n result = {};\n }\n })\n .catch(reject),\n );\n return function StateRecordDestroy() {\n dc.destroy();\n };\n });\n}\n","import {\n Actual,\n DestroyContainer,\n MaybeMessage,\n Message,\n MessageType,\n} from \"silentium\";\n\n/**\n * Switch between many messages by known value\n */\nexport function Switch<T, K>(\n _base: MaybeMessage,\n options: [K | K[], MessageType<T>][],\n) {\n const $base = Actual(_base);\n return Message<T>(function SwitchImpl(resolve, reject) {\n const dc = DestroyContainer();\n dc.add(\n $base\n .then(function switchBaseSub(v) {\n const msg = options.find(function switchBaseFind(entry) {\n return Array.isArray(entry[0])\n ? entry[0].includes(v as K)\n : entry[0] === v;\n });\n if (msg) {\n dc.add(msg[1].then(resolve).catch(reject));\n }\n })\n .catch(reject),\n );\n return dc.destructor();\n });\n}\n","import { Actual, ExecutorApplied, MaybeMessage, Message } from \"silentium\";\n\n/**\n * Defer a message to the event loop\n * so that it executes once within\n * a certain timer firing interval\n *\n * @url https://silentium.pw/article/task/view\n */\nexport function Task<T>(baseSrc: MaybeMessage<T>, delay: number = 0) {\n const $base = Actual(baseSrc);\n return Message<T>(function TaskImpl(r) {\n let prevTimer: unknown | null = null;\n ExecutorApplied($base, (fn) => {\n return (v) => {\n if (prevTimer) {\n clearTimeout(prevTimer as number);\n }\n prevTimer = setTimeout(() => {\n fn(v);\n }, delay);\n };\n }).then(r);\n });\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * Accumulates the last value Of the source and returns one result once per tick\n *\n * @url https://silentium.pw/article/tick/view\n */\nexport function Tick<T>($base: MessageType<T>) {\n return Message<T>(function TickImpl(r) {\n let microtaskScheduled = false;\n let lastValue: T | null = null;\n const scheduleMicrotask = () => {\n microtaskScheduled = true;\n queueMicrotask(function tickQueueMicrotask() {\n microtaskScheduled = false;\n if (lastValue !== null) {\n r(lastValue);\n lastValue = null;\n }\n });\n };\n $base.then(function tickBaseSub(v) {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n });\n });\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * By receiving a message with a key and value, collects a table\n * of all previously received messages in the form of a structure\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport function HashTable<T>($base: MessageType<[string, unknown]>) {\n return Message<T>(function HashTableImpl(r) {\n const record: Record<string, unknown> = {};\n $base.then(function hashTableBaseSub([key, value]) {\n record[key] = value;\n r({ ...record } as T);\n });\n });\n}\n","import { Actual, All, Message, MessageType } from \"silentium\";\n\ntype UnWrap<T> = T extends MessageType<infer U> ? U : T;\n\n/**\n * Returns record Of data from record Of sources\n * https://silentium-lab.github.io/silentium-components/#/structures/record\n */\nexport function Record<T>(record: Record<string, T>) {\n return Message<Record<string, UnWrap<T>>>(function RecordImpl(r) {\n const keys = Object.keys(record);\n keys.forEach(function recordKeys(key) {\n record[key] = Actual(record[key]) as any;\n });\n All(...(Object.values(record) as any)).then(function recordAllSub(entries) {\n const record: Record<string, any> = {};\n entries.forEach(function recordAllForEach(entry, index) {\n record[keys[index]] = entry;\n });\n r(record);\n });\n });\n}\n","import {\n Actual,\n ConstructorType,\n MaybeMessage,\n Message,\n Of,\n Once,\n} from \"silentium\";\n\nimport { Record } from \"../structures\";\n\n/**\n * Modify the object structure\n * with the ability to create new fields based on\n * existing ones in the object\n *\n * @url https://silentium.pw/article/transformed/view\n */\nexport function Transformed<T extends Record<string, any>>(\n _base: MaybeMessage<T>,\n transformRules: Record<string, ConstructorType<[MaybeMessage<any>]>>,\n) {\n const $base = Actual(_base);\n return Message(function TransformedImpl(resolve) {\n $base.then(function transformedBaseSub(v) {\n const existedKeysMap: Record<string, number> = {};\n const sourceObject = Object.fromEntries(\n Object.entries(v).map(function transformedBaseEntries(entry) {\n if (transformRules[entry[0]]) {\n existedKeysMap[entry[0]] = 1;\n return [entry[0], transformRules[entry[0]](v)];\n }\n\n return [entry[0], Of(entry[1])];\n }),\n );\n Object.keys(transformRules).forEach(function transformedRulesKeys(key) {\n if (!existedKeysMap[key]) {\n sourceObject[key] = transformRules[key](v);\n }\n });\n const record = Once(Record(sourceObject));\n record.then(resolve);\n });\n });\n}\n","import { Actual, ConstructorType, Map, MaybeMessage } from \"silentium\";\n\nimport { Transformed } from \"../behaviors/Transformed\";\n\nexport function TransformedList<T extends any[]>(\n _base: MaybeMessage<T>,\n transformRules: Record<string, ConstructorType<[MaybeMessage<any>]>>,\n) {\n return Map(Actual(_base), (v) => Transformed(v, transformRules));\n}\n","import { All, Message, MessageType } from \"silentium\";\n\n/**\n * Logical AND over two messages\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport function And($one: MessageType<boolean>, $two: MessageType<boolean>) {\n return Message<boolean>(function AndImpl(r) {\n All($one, $two).then(function andAllSub([one, two]) {\n r(!!(one && two));\n });\n });\n}\n","import { Applied, Message, MessageType } from \"silentium\";\n\n/**\n * Convert Any source to boolean source\n * https://silentium-lab.github.io/silentium-components/#/boolean/bool\n */\nexport function Bool($base: MessageType) {\n return Message<boolean>(function BoolImpl(r) {\n Applied($base, Boolean).then(r);\n });\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * Logical negation of message\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport function Not($base: MessageType<boolean>) {\n return Message<boolean>(function NotImpl(r) {\n $base.then(function notBaseSub(v) {\n r(!v);\n });\n });\n}\n","import { All, Message, MessageType } from \"silentium\";\n\n/**\n * Logical OR over two messages\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport function Or($one: MessageType<boolean>, $two: MessageType<boolean>) {\n return Message<boolean>(function OrImpl(r) {\n All($one, $two).then(function orAllSub([one, two]) {\n r(!!(one || two));\n });\n });\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * Represents object from json\n */\nexport function FromJson<T = Record<string, unknown>>(\n $json: MessageType<string>,\n) {\n return Message<T>(function FromJsonImpl(resolve, reject) {\n $json.then(function fromJsonSub(json) {\n try {\n resolve(JSON.parse(json));\n } catch (e) {\n reject(new Error(`Failed to parse JSON: ${e}`));\n }\n });\n });\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * Represents json from object\n */\nexport function ToJson($data: MessageType) {\n return Message<string>(function ToJsonImpl(resolve, reject) {\n $data.then(function toJsonSub(data: unknown) {\n try {\n resolve(JSON.stringify(data));\n } catch {\n reject(new Error(\"Failed to convert to JSON\"));\n }\n });\n });\n}\n","import { Applied, Message, MessageType } from \"silentium\";\n\n/**\n * Represents the first element Of an array.\n */\nexport function First<T extends Array<unknown>>($base: MessageType<T>) {\n return Message<T[0]>(function FirstImpl(r) {\n Applied($base, (a) => a[0]).then(r);\n });\n}\n","import { Actual, All, MaybeMessage, Message, Of } from \"silentium\";\n\n/**\n * First match Of regexp\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport function RegexpMatch(\n patternSrc: MaybeMessage<string>,\n valueSrc: MaybeMessage<string>,\n flagsSrc: MaybeMessage<string> = Of(\"\"),\n) {\n const $pattern = Actual(patternSrc);\n const $value = Actual(valueSrc);\n const $flags = Actual(flagsSrc);\n return Message<string[]>(function RegexpMatchImpl(r) {\n All($pattern, $value, $flags).then(function regexpMatchAllSub([\n pattern,\n value,\n flags,\n ]) {\n const result = new RegExp(pattern, flags).exec(value);\n r(result ?? []);\n });\n });\n}\n","import { Actual, All, MaybeMessage, Message, Of } from \"silentium\";\n\n/**\n * Boolean source what checks what string matches pattern\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport function RegexpMatched(\n patternSrc: MaybeMessage<string>,\n valueSrc: MaybeMessage<string>,\n flagsSrc: MaybeMessage<string> = Of(\"\"),\n) {\n const $pattern = Actual(patternSrc);\n const $value = Actual(valueSrc);\n const $flags = Actual(flagsSrc);\n return Message<boolean>(function RegexpMatchedImpl(r) {\n All($pattern, $value, $flags).then(function regexpMatchedAllSub([\n pattern,\n value,\n flags,\n ]) {\n r(new RegExp(pattern, flags).test(value));\n });\n });\n}\n","import { Actual, All, Applied, MaybeMessage } from \"silentium\";\n\n/**\n * Returns string replaced by regular expression pattern\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-replaced\n */\nexport function RegexpReplaced(\n valueSrc: MaybeMessage<string>,\n patternSrc: MaybeMessage<string>,\n replaceValueSrc: MaybeMessage<string>,\n flagsSrc: MaybeMessage<string> = \"\",\n) {\n const $value = Actual(valueSrc);\n const $pattern = Actual(patternSrc);\n const $replaceValue = Actual(replaceValueSrc);\n const $flags = Actual(flagsSrc);\n return Applied(\n All($pattern, $value, $replaceValue, $flags),\n ([pattern, value, replaceValue, flags]) => {\n return String(value).replace(new RegExp(pattern, flags), replaceValue);\n },\n );\n}\n","import { Actual, All, Message, MessageType } from \"silentium\";\n\n/**\n * Ability to mutate some object, helpful when integrate to procedure systems\n * https://silentium-lab.github.io/silentium-components/#/system/set\n */\nexport function Set<T extends Record<string, unknown>>(\n baseSrc: MessageType<T>,\n keySrc: MessageType<string>,\n valueSrc: MessageType<unknown>,\n) {\n const $base = Actual(baseSrc);\n const $key = Actual(keySrc);\n const $value = Actual(valueSrc);\n return Message<T>(function SetImpl(r) {\n All($base, $key, $value).then(function setAllSub([base, key, value]) {\n (base as Record<string, unknown>)[key] = value;\n r(base);\n });\n });\n}\n","import {\n Actual,\n All,\n ConstructorType,\n DestroyableType,\n DestroyContainer,\n MaybeMessage,\n Message,\n MessageType,\n Of,\n} from \"silentium\";\n\nimport { RegexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern?: string;\n patternFlags?: string;\n condition?: (v: unknown) => boolean;\n message: ConstructorType<[], MaybeMessage<T>>;\n}\n\nconst isTrue = (v: unknown) => v === true;\n\n/**\n * Router component what will return template if url matches pattern\n *\n * @url https://silentium.pw/article/router/view\n */\nexport function Router<T = string>(\n _url: MaybeMessage<string>,\n routes: MaybeMessage<Route<T>[]>,\n $default: ConstructorType<[], MaybeMessage<T>>,\n): MessageType<T> & DestroyableType {\n const $routes = Actual(routes);\n const $url = Actual(_url);\n return Message<T>(function RouterImpl(r) {\n const dc = DestroyContainer();\n const destructor = () => {\n dc.destroy();\n };\n All($routes, $url).then(function routerAllSub([routes, url]) {\n destructor();\n const $matches = All(\n ...routes.map(function routerRoutesMap(r) {\n return r.pattern\n ? RegexpMatched(\n Of(r.pattern),\n Of(url),\n r.patternFlags ? Of(r.patternFlags) : undefined,\n )\n : r?.condition?.(url);\n }),\n );\n $matches.then(function routerMatchesSub(matches) {\n const index = matches.findIndex(isTrue);\n if (index === -1) {\n const instance = Actual($default());\n dc.add(instance);\n instance.then(r);\n }\n if (index > -1) {\n const instance = Actual(routes[index].message());\n dc.add(instance);\n instance.then(r);\n }\n });\n });\n return destructor;\n });\n}\n","import { All, Message, MessageType, Of } from \"silentium\";\n\n/**\n * Join sources Of strings to one source\n * https://silentium-lab.github.io/silentium-components/#/string/concatenated\n */\nexport function Concatenated(\n sources: MessageType<string>[],\n joinPartSrc: MessageType<string> = Of(\"\"),\n) {\n return Message<string>(function ConcatenatedImpl(r) {\n All(joinPartSrc, ...sources).then(function concatenatedAllSub([\n joinPart,\n ...strings\n ]) {\n r(strings.join(joinPart));\n });\n });\n}\n","import {\n Actual,\n All,\n Applied,\n ConstructorType,\n DestroyableType,\n DestroyContainer,\n isDestroyable,\n isMessage,\n Late,\n MaybeMessage,\n Message,\n MessageType,\n Of,\n Rejections,\n} from \"silentium\";\n\nimport { Record } from \"../structures\";\n\n/**\n * Allows creating a string template with\n * variables inserted into it; when variables change,\n * the template value will change\n *\n * @url https://silentium.pw/article/template/view\n */\nexport function Template(\n src: MaybeMessage<string> | ((t: TemplateImpl) => string) = \"\",\n $places: MaybeMessage<Record<string, unknown>> = Of({}),\n) {\n const $src = Late<string>();\n if (typeof src === \"string\" || isMessage(src)) {\n $src.chain(Actual(src));\n }\n\n const t = new TemplateImpl($src, $places ? Actual($places) : undefined);\n\n if (typeof src === \"function\") {\n $src.chain(\n Message((r) => {\n r(src(t));\n }),\n );\n }\n\n return t;\n}\n\nexport class TemplateImpl implements MessageType<string>, DestroyableType {\n private dc = DestroyContainer();\n private rejections = Rejections();\n private vars: Record<string, MessageType> = {\n $TPL: Of(\"$TPL\"),\n };\n\n public constructor(\n private $src: MessageType<string> = Of(\"\"),\n private $places: MessageType<Record<string, unknown>> = Of({}),\n private escapeFn = escaped,\n ) {}\n\n public then(transport: ConstructorType<[string]>): this {\n const $vars = Record(this.vars);\n Applied(All(this.$src, this.$places, $vars), ([base, rules, vars]) => {\n try {\n Object.entries(rules).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n Object.entries(vars).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n } catch (e) {\n this.rejections.reject(e);\n }\n\n return base;\n }).then(transport);\n return this;\n }\n\n public template(value: string) {\n this.$src = Of(value);\n }\n\n /**\n * Register raw unsafe variable\n */\n public raw(src: MessageType<unknown>) {\n const hash =\n Date.now().toString(36) + Math.random().toString(36).substring(2);\n const varName = `$var${hash}`;\n if (isDestroyable(src)) {\n this.dc.add(src);\n }\n this.vars[varName] = src;\n return varName;\n }\n\n /**\n * Register variable what will be safe in HTML by default\n * or with your custom escape logic\n */\n public escaped(src: MessageType<any>) {\n if (isDestroyable(src)) {\n this.dc.add(src);\n }\n return this.raw(Applied(src, this.escapeFn));\n }\n\n public catch(rejected: ConstructorType<[unknown]>): this {\n this.rejections.catch(rejected);\n return this;\n }\n\n public destroy(): this {\n this.dc.destroy();\n return this;\n }\n}\n\nconst escapeMap = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\",\n \"/\": \"/\",\n} as const;\n\n/**\n * String with html escaped\n */\nexport function escaped(base: string) {\n if (typeof base !== \"string\") {\n base = String(base);\n }\n return base.replace(\n /[&<>\"'/]/g,\n (match) => escapeMap[match as keyof typeof escapeMap],\n );\n}\n"],"names":["Actual","Message","Primitive","DestroyContainer","ResetSilenceCache","Shared","Filtered","isFilled","Late","Source","Applied","All","key","Computed","Value","ExecutorApplied","record","Of","Once","Map","routes","r","isMessage","Rejections","isDestroyable"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"silentium-components.cjs","sources":["../src/behaviors/Branch.ts","../src/behaviors/BranchLazy.ts","../src/behaviors/Const.ts","../src/behaviors/Deadline.ts","../src/behaviors/Deferred.ts","../src/behaviors/Detached.ts","../src/behaviors/Dirty.ts","../src/behaviors/Loading.ts","../src/behaviors/Lock.ts","../src/behaviors/Memo.ts","../src/behaviors/MergeAccumulation.ts","../src/behaviors/OnlyChanged.ts","../src/behaviors/Part.ts","../src/behaviors/Path.ts","../src/behaviors/Polling.ts","../src/behaviors/RecordTruncated.ts","../src/behaviors/StateRecord.ts","../src/behaviors/Switch.ts","../src/behaviors/Task.ts","../src/behaviors/Tick.ts","../src/structures/HashTable.ts","../src/structures/Record.ts","../src/behaviors/Transformed.ts","../src/behaviors/TransformedList.ts","../src/boolean/And.ts","../src/boolean/Bool.ts","../src/boolean/Not.ts","../src/boolean/Or.ts","../src/formats/FromJson.ts","../src/formats/ToJson.ts","../src/lists/First.ts","../src/system/RegexpMatch.ts","../src/system/RegexpMatched.ts","../src/system/RegexpReplaced.ts","../src/system/Set.ts","../src/navigation/Router.ts","../src/strings/Concatenated.ts","../src/strings/Template.ts"],"sourcesContent":["import {\n Actual,\n MaybeMessage,\n Message,\n MessageType,\n Primitive,\n} from \"silentium\";\n\n/**\n * Allows switching between left and right messages depending on condition\n * https://silentium.pw/article/branch/view\n */\nexport function Branch<Then, Else>(\n _condition: MaybeMessage<boolean>,\n _left: MaybeMessage<Then>,\n _right?: MaybeMessage<Else>,\n) {\n const $condition = Actual(_condition);\n const $left = Actual(_left);\n const $right = Actual(_right);\n return Message<Then | Else>(function BranchImpl(r) {\n const left = Primitive($left);\n let right: ReturnType<typeof Primitive<Else>>;\n if (_right !== undefined) {\n right = Primitive($right as MessageType<Else>);\n }\n $condition.then(function branchSub(v) {\n if (typeof v !== \"boolean\") {\n throw new Error(\"Branch received not boolean value\");\n }\n let result: Then | Else | null = null;\n if (v === true) {\n result = left.primitive();\n } else if (right) {\n result = right.primitive();\n }\n if (result !== null) {\n r(result);\n }\n });\n });\n}\n","import {\n ConstructorType,\n DestroyableType,\n DestroyContainer,\n Message,\n MessageType,\n} from \"silentium\";\n\n/**\n * Depending on the $condition message,\n * creates a new left or right message.\n * When condition changes, old messages are destroyed\n * and new ones are created.\n */\nexport function BranchLazy<Then, Else>(\n $condition: MessageType<boolean>,\n $left: ConstructorType<[], MessageType<Then>>,\n $right?: ConstructorType<[], MessageType<Else>>,\n): MessageType<Then | Else> & DestroyableType {\n return Message(function BranchLazyImpl(r) {\n const dc = DestroyContainer();\n const destructor = () => {\n dc.destroy();\n };\n $condition.then(function branchLazySub(v) {\n destructor();\n let instance: MessageType<Then | Else> | undefined;\n if (v) {\n instance = $left();\n } else if ($right) {\n instance = $right();\n }\n if (instance !== undefined) {\n instance.then(r);\n dc.add(instance);\n }\n });\n return destructor;\n });\n}\n","import { Message, MessageType, ResetSilenceCache } from \"silentium\";\n\n/**\n * Constant value that will be\n * returned on each value from\n * the $trigger message\n */\nexport function Constant<T>(\n permanent: T,\n $trigger: MessageType,\n): MessageType<T> {\n return Message<T>(function ConstantImpl(resolve, reject) {\n $trigger.catch(reject).then(function constantSub() {\n resolve(permanent);\n // Do cache reset, it gives ability to send constant of same value many times\n resolve(ResetSilenceCache as T);\n });\n });\n}\n","import {\n Actual,\n Filtered,\n MaybeMessage,\n Message,\n MessageType,\n Shared,\n} from \"silentium\";\n\n/**\n * Will return an error via error transport if\n * time runs out from $timeout; if $base manages to\n * respond before $timeout then the value from base will be returned\n */\nexport function Deadline<T>(\n $base: MessageType<T>,\n _timeout: MaybeMessage<number>,\n) {\n const $timeout = Actual(_timeout);\n return Message<T>(function DeadlineImpl(resolve, reject) {\n let timer: ReturnType<typeof setTimeout> | number = 0;\n const base = Shared($base);\n $timeout.then(function deadlineTimeoutSub(timeout) {\n if (timer) {\n clearTimeout(timer);\n }\n let timeoutReached = false;\n\n timer = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n reject(new Error(\"Timeout reached in Deadline\"));\n }, timeout);\n\n const f = Filtered(base, () => !timeoutReached);\n f.then(resolve);\n\n base.then(function deadlineBaseSub() {\n timeoutReached = true;\n });\n });\n });\n}\n","import { isFilled, Message, MessageType, Primitive } from \"silentium\";\n\n/**\n * Defer one source after another, gives values Of baseSrc only when triggerSrc responds\n * https://silentium-lab.github.io/silentium-components/#/behaviors/deferred\n */\nexport function Deferred<T>(\n $base: MessageType<T>,\n $trigger: MessageType<unknown>,\n) {\n return Message<T>(function DeferredImpl(r) {\n const base = Primitive($base);\n $trigger.then(function deferredTriggerSub() {\n const value = base.primitive();\n if (isFilled(value)) {\n r(value);\n }\n });\n });\n}\n","import { isFilled, Message, MessageType, Primitive } from \"silentium\";\n\n/**\n * Message separate from the base\n * allows to take one value from the base\n * but not react to new values of the base message\n */\nexport function Detached<T>($base: MessageType<T>): MessageType<T> {\n return Message<T>(function DetachedImpl(r) {\n const v = Primitive($base).primitive();\n if (isFilled(v)) {\n r(v);\n }\n });\n}\n","import { All, Applied, Late, MessageType, Source } from \"silentium\";\n\n/**\n * Takes source and remember it first value\n * returns new record, what will contain only fields what was changed\n * https://silentium-lab.github.io/silentium-components/#/behaviors/dirty\n */\nexport function Dirty<T extends Record<string, unknown>>(\n $base: MessageType<T>,\n keep: string[] = [],\n exclude: string[] = [],\n cloner?: (v: T) => T,\n) {\n const $comparing = Late<T>({} as T);\n if (cloner === undefined) {\n cloner = (value) => JSON.parse(JSON.stringify(value));\n }\n return Source<T>(\n function DirtyImpl(r) {\n const $comparingClone = Applied($comparing, cloner);\n All($comparingClone, $base).then(function dirtyAllSub([comparing, base]) {\n if (!comparing) {\n return;\n }\n r(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (keep.includes(key)) {\n return true;\n }\n if (exclude.includes(key)) {\n return false;\n }\n return value !== (base as Record<string, unknown>)[key];\n }),\n ) as T,\n );\n });\n },\n (v) => {\n $comparing.use(v);\n },\n );\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * Representation Of loading process\n * first message begins loading\n * second message stops loading\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport function Loading(\n $start: MessageType<unknown>,\n $finish: MessageType<unknown>,\n) {\n return Message<boolean>(function LoadingImpl(r) {\n $start.then(function loadingStartSub() {\n r(true);\n });\n $finish.then(function loadingFinishSub() {\n r(false);\n });\n });\n}\n","import { Filtered, Message, MessageType } from \"silentium\";\n\n/**\n * Allows locking messages\n * if a $lock message arrives\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport function Lock<T>($base: MessageType<T>, $lock: MessageType<boolean>) {\n return Message<T>(function LockImpl(r) {\n let locked = false;\n $lock.then(function lockLockSub(newLock) {\n locked = newLock;\n });\n const i = Filtered($base, () => !locked);\n i.then(function lockBaseSub(v) {\n r(v);\n });\n });\n}\n","import { isFilled, Message, MessageType } from \"silentium\";\n\n/**\n * Didn't respond if new value Of baseSrc equals to old value\n * https://silentium-lab.github.io/silentium-components/#/behaviors/memo\n */\nexport function Memo<T>($base: MessageType<T>) {\n return Message<T>(function MemoImpl(r) {\n let last: T | null = null;\n $base.then(function memoBaseSub(v) {\n if (v !== last && isFilled(v)) {\n r(v);\n last = v;\n }\n });\n });\n}\n","import { Late, MessageType } from \"silentium\";\n\n/**\n * Есть объект и каждое новое его значение нужно мержить с прошлым\n * чтобы накопить общие изменения\n */\nexport function MergeAccumulation<T extends object>(\n $base: MessageType<T>,\n $reset?: MessageType<T>,\n): MessageType<T> {\n const accumulation = Late<T>();\n const lastAccumulated = {};\n $base.then(function mergeAccumulationBaseSub(nextValue) {\n accumulation.use(\n mergeWith(lastAccumulated, nextValue, (value1: any, value2: any) => {\n if (Array.isArray(value1)) {\n return value1.concat(value2);\n }\n }),\n );\n });\n if ($reset) {\n $reset.then(function mergeAccumulationResetSub(resetValue) {\n accumulation.use(resetValue);\n });\n }\n return accumulation;\n}\n\nfunction mergeWith<TObject, TSource>(\n target: TObject,\n source: TSource,\n customizer: (\n objValue: any,\n srcValue: any,\n key: string,\n object: any,\n source: any,\n ) => any,\n): TObject & TSource {\n if (source == null) {\n return target as TObject & TSource;\n }\n Object.keys(source).forEach((key) => {\n const srcValue = (source as any)[key];\n const objValue = (target as any)[key];\n const result = customizer(objValue, srcValue, key, target, source);\n\n if (result !== undefined) {\n (target as any)[key] = result;\n } else if (isObject(srcValue) && isObject(objValue)) {\n mergeWith(objValue, srcValue, customizer);\n } else {\n (target as any)[key] = srcValue;\n }\n });\n return target as TObject & TSource;\n}\n\nfunction isObject(value: any): value is \"object\" {\n return value != null && typeof value === \"object\";\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * Represents source what was changed at least once\n * @url https://silentium.pw/article/only-changed/view\n */\nexport function OnlyChanged<T>($base: MessageType<T>) {\n return Message<T>(function OnlyChangedImpl(r) {\n let first = false;\n $base.then(function onlyChangedBaseSub(v) {\n if (first === false) {\n first = true;\n } else {\n r(v);\n }\n });\n });\n}\n","import {\n Actual,\n All,\n isFilled,\n MaybeMessage,\n MessageSourceType,\n Primitive,\n Shared,\n Source,\n} from \"silentium\";\n\n/**\n * Return source Of record path\n * @url https://silentium.pw/article/part/view\n */\nexport function Part<\n R,\n T extends object | Array<any> = any,\n K extends string = any,\n>(\n $base: MessageSourceType<T>,\n key: MaybeMessage<K>,\n defaultValue?: R,\n): MessageSourceType<R> {\n const $baseShared = Shared($base);\n const $keyedShared = Shared(Actual(key));\n const keyPrimitive = Primitive($keyedShared);\n const base = Primitive($baseShared);\n return Source(\n function PartImpl(r) {\n All($baseShared, $keyedShared).then(function partAllSub([base, keyed]) {\n const keys = keyed.split(\".\");\n let value: unknown = base;\n keys.forEach(function partsAllKeysForEach(key: string) {\n value = (value as Record<string, unknown>)[key];\n });\n if (value !== undefined && value !== base) {\n r(value as R);\n } else if (defaultValue !== undefined) {\n r(defaultValue);\n }\n });\n },\n function PartSourceImpl(value) {\n if (isFilled(key)) {\n $base.use({\n ...base.primitiveWithException(),\n [keyPrimitive.primitiveWithException()]: value,\n } as T);\n }\n },\n );\n}\n","import { Actual, All, Applied, MaybeMessage, MessageType } from \"silentium\";\n\nconst NotSet = Symbol(\"not-set\");\n\n/**\n * Return source Of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport function Path<\n R,\n T extends object | Array<any> = any,\n K extends string = any,\n>(_base: MaybeMessage<T>, _keyed: MaybeMessage<K>, def?: MaybeMessage<R>) {\n const $base = Actual(_base);\n const $keyed = Actual(_keyed);\n const $def = Actual((def as any) ?? NotSet);\n return Applied(All($base, $keyed, $def), ([base, keyed, d]) => {\n const keys = keyed.split(\".\");\n let value: unknown = base;\n keys.forEach((key) => {\n value = (value as Record<string, unknown>)[key];\n });\n if (value !== undefined && value !== base) {\n return value as R;\n } else if (d !== NotSet) {\n return d as R;\n }\n }) as MessageType<R>;\n}\n","import {\n DestroyContainer,\n Message,\n MessageType,\n ResetSilenceCache,\n} from \"silentium\";\n\n/**\n * Active polling of $base message\n * synchronized with $trigger message\n * can return same values\n */\nexport function Polling<T>(\n $base: MessageType<T>,\n $trigger: MessageType<unknown>,\n) {\n return Message<T>(function PollingImpl(resolve, reject) {\n const dc = DestroyContainer();\n $trigger\n .then(function pollingTriggerSub() {\n dc.destroy();\n resolve(ResetSilenceCache as T);\n dc.add($base.then(resolve).catch(reject));\n })\n .catch(reject);\n });\n}\n","import { Actual, Computed, MaybeMessage } from \"silentium\";\n\n/**\n * Helps eliminate unwanted values\n * that shouldn't exist in object fields\n */\nexport function RecordTruncated(\n _record: MaybeMessage<Record<string, unknown>>,\n _badValues: MaybeMessage<unknown[]>,\n) {\n const $record = Actual(_record);\n const $badValues = Actual(_badValues);\n const processRecord = (obj: any, badValues: unknown[]) => {\n if (obj === null || typeof obj !== \"object\" || Array.isArray(obj)) {\n return obj;\n }\n\n const result: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(obj)) {\n if (badValues.includes(value)) continue;\n\n const processedValue = processRecord(value, badValues);\n\n if (\n processedValue !== undefined &&\n !(\n typeof processedValue === \"object\" &&\n processedValue !== null &&\n !Array.isArray(processedValue) &&\n Object.keys(processedValue).length === 0\n )\n ) {\n result[key] = processedValue;\n }\n }\n\n return result;\n };\n\n return Computed(processRecord, $record, $badValues);\n}\n","import {\n Actual,\n DestroyContainer,\n MaybeMessage,\n Message,\n MessageType,\n Value,\n} from \"silentium\";\n\nexport function StateRecord(\n state$: MessageType,\n values$: MessageType,\n sequence: MaybeMessage<unknown[]>,\n) {\n const dc = DestroyContainer();\n let stateIndex = -1;\n let latestState: string | null = null;\n let result: Record<string, unknown> = {};\n const sequence$ = Value(Actual(sequence));\n return Message(function StateRecordImpl(resolve, reject) {\n dc.add(\n state$\n .then(function stateRecordStateSub(state) {\n if (state === sequence$.value?.[stateIndex + 1]) {\n stateIndex += 1;\n latestState = state as string;\n } else {\n stateIndex = -1;\n latestState = null;\n result = {};\n }\n })\n .catch(reject),\n );\n dc.add(\n values$\n .then(function stateRecordValuesSub(value) {\n if (latestState !== null) {\n result[latestState] = value;\n }\n if (stateIndex + 1 === sequence$.value?.length) {\n resolve(result);\n stateIndex = -1;\n latestState = null;\n result = {};\n }\n })\n .catch(reject),\n );\n return function StateRecordDestroy() {\n dc.destroy();\n };\n });\n}\n","import {\n Actual,\n DestroyContainer,\n MaybeMessage,\n Message,\n MessageType,\n} from \"silentium\";\n\n/**\n * Switch between many messages by known value\n */\nexport function Switch<T, K>(\n _base: MaybeMessage,\n options: [K | K[], MessageType<T>][],\n) {\n const $base = Actual(_base);\n return Message<T>(function SwitchImpl(resolve, reject) {\n const dc = DestroyContainer();\n dc.add(\n $base\n .then(function switchBaseSub(v) {\n const msg = options.find(function switchBaseFind(entry) {\n return Array.isArray(entry[0])\n ? entry[0].includes(v as K)\n : entry[0] === v;\n });\n if (msg) {\n dc.add(msg[1].then(resolve).catch(reject));\n }\n })\n .catch(reject),\n );\n return dc.destructor();\n });\n}\n","import { Actual, ExecutorApplied, MaybeMessage, Message } from \"silentium\";\n\n/**\n * Defer a message to the event loop\n * so that it executes once within\n * a certain timer firing interval\n *\n * @url https://silentium.pw/article/task/view\n */\nexport function Task<T>(baseSrc: MaybeMessage<T>, delay: number = 0) {\n const $base = Actual(baseSrc);\n return Message<T>(function TaskImpl(r) {\n let prevTimer: unknown | null = null;\n ExecutorApplied($base, (fn) => {\n return (v) => {\n if (prevTimer) {\n clearTimeout(prevTimer as number);\n }\n prevTimer = setTimeout(() => {\n fn(v);\n }, delay);\n };\n }).then(r);\n });\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * Accumulates the last value Of the source and returns one result once per tick\n *\n * @url https://silentium.pw/article/tick/view\n */\nexport function Tick<T>($base: MessageType<T>) {\n return Message<T>(function TickImpl(r) {\n let microtaskScheduled = false;\n let lastValue: T | null = null;\n const scheduleMicrotask = () => {\n microtaskScheduled = true;\n queueMicrotask(function tickQueueMicrotask() {\n microtaskScheduled = false;\n if (lastValue !== null) {\n r(lastValue);\n lastValue = null;\n }\n });\n };\n $base.then(function tickBaseSub(v) {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n });\n });\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * By receiving a message with a key and value, collects a table\n * of all previously received messages in the form of a structure\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport function HashTable<T>($base: MessageType<[string, unknown]>) {\n return Message<T>(function HashTableImpl(r) {\n const record: Record<string, unknown> = {};\n $base.then(function hashTableBaseSub([key, value]) {\n record[key] = value;\n r({ ...record } as T);\n });\n });\n}\n","import { Actual, All, Message, MessageType } from \"silentium\";\n\ntype UnWrap<T> = T extends MessageType<infer U> ? U : T;\n\n/**\n * Returns record Of data from record Of sources\n * https://silentium-lab.github.io/silentium-components/#/structures/record\n */\nexport function Record<T>(record: Record<string, T>) {\n return Message<Record<string, UnWrap<T>>>(function RecordImpl(r) {\n const keys = Object.keys(record);\n keys.forEach(function recordKeys(key) {\n record[key] = Actual(record[key]) as any;\n });\n All(...(Object.values(record) as any)).then(function recordAllSub(entries) {\n const record: Record<string, any> = {};\n entries.forEach(function recordAllForEach(entry, index) {\n record[keys[index]] = entry;\n });\n r(record);\n });\n });\n}\n","import {\n Actual,\n ConstructorType,\n MaybeMessage,\n Message,\n Of,\n Once,\n} from \"silentium\";\n\nimport { Record } from \"../structures\";\n\n/**\n * Modify the object structure\n * with the ability to create new fields based on\n * existing ones in the object\n *\n * @url https://silentium.pw/article/transformed/view\n */\nexport function Transformed<T extends Record<string, any>>(\n _base: MaybeMessage<T>,\n transformRules: Record<string, ConstructorType<[MaybeMessage<any>]>>,\n) {\n const $base = Actual(_base);\n return Message(function TransformedImpl(resolve) {\n $base.then(function transformedBaseSub(v) {\n const existedKeysMap: Record<string, number> = {};\n const sourceObject = Object.fromEntries(\n Object.entries(v).map(function transformedBaseEntries(entry) {\n if (transformRules[entry[0]]) {\n existedKeysMap[entry[0]] = 1;\n return [entry[0], transformRules[entry[0]](v)];\n }\n\n return [entry[0], Of(entry[1])];\n }),\n );\n Object.keys(transformRules).forEach(function transformedRulesKeys(key) {\n if (!existedKeysMap[key]) {\n sourceObject[key] = transformRules[key](v);\n }\n });\n const record = Once(Record(sourceObject));\n record.then(resolve);\n });\n });\n}\n","import { Actual, ConstructorType, Map, MaybeMessage } from \"silentium\";\n\nimport { Transformed } from \"../behaviors/Transformed\";\n\nexport function TransformedList<T extends any[]>(\n _base: MaybeMessage<T>,\n transformRules: Record<string, ConstructorType<[MaybeMessage<any>]>>,\n) {\n return Map(Actual(_base), (v) => Transformed(v, transformRules));\n}\n","import { All, Message, MessageType } from \"silentium\";\n\n/**\n * Logical AND over two messages\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport function And($one: MessageType<boolean>, $two: MessageType<boolean>) {\n return Message<boolean>(function AndImpl(r) {\n All($one, $two).then(function andAllSub([one, two]) {\n r(!!(one && two));\n });\n });\n}\n","import { Applied, Message, MessageType } from \"silentium\";\n\n/**\n * Convert Any source to boolean source\n * https://silentium-lab.github.io/silentium-components/#/boolean/bool\n */\nexport function Bool($base: MessageType) {\n return Message<boolean>(function BoolImpl(r) {\n Applied($base, Boolean).then(r);\n });\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * Logical negation of message\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport function Not($base: MessageType<boolean>) {\n return Message<boolean>(function NotImpl(r) {\n $base.then(function notBaseSub(v) {\n r(!v);\n });\n });\n}\n","import { All, Message, MessageType } from \"silentium\";\n\n/**\n * Logical OR over two messages\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport function Or($one: MessageType<boolean>, $two: MessageType<boolean>) {\n return Message<boolean>(function OrImpl(r) {\n All($one, $two).then(function orAllSub([one, two]) {\n r(!!(one || two));\n });\n });\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * Represents object from json\n */\nexport function FromJson<T = Record<string, unknown>>(\n $json: MessageType<string>,\n) {\n return Message<T>(function FromJsonImpl(resolve, reject) {\n $json.then(function fromJsonSub(json) {\n try {\n resolve(JSON.parse(json));\n } catch (e) {\n reject(new Error(`Failed to parse JSON: ${e}`));\n }\n });\n });\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * Represents json from object\n */\nexport function ToJson($data: MessageType) {\n return Message<string>(function ToJsonImpl(resolve, reject) {\n $data.then(function toJsonSub(data: unknown) {\n try {\n resolve(JSON.stringify(data));\n } catch {\n reject(new Error(\"Failed to convert to JSON\"));\n }\n });\n });\n}\n","import { Applied, Message, MessageType } from \"silentium\";\n\n/**\n * Represents the first element Of an array.\n */\nexport function First<T extends Array<unknown>>($base: MessageType<T>) {\n return Message<T[0]>(function FirstImpl(r) {\n Applied($base, (a) => a[0]).then(r);\n });\n}\n","import { Actual, All, MaybeMessage, Message, Of } from \"silentium\";\n\n/**\n * First match Of regexp\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport function RegexpMatch(\n patternSrc: MaybeMessage<string>,\n valueSrc: MaybeMessage<string>,\n flagsSrc: MaybeMessage<string> = Of(\"\"),\n) {\n const $pattern = Actual(patternSrc);\n const $value = Actual(valueSrc);\n const $flags = Actual(flagsSrc);\n return Message<string[]>(function RegexpMatchImpl(r) {\n All($pattern, $value, $flags).then(function regexpMatchAllSub([\n pattern,\n value,\n flags,\n ]) {\n const result = new RegExp(pattern, flags).exec(value);\n r(result ?? []);\n });\n });\n}\n","import { Actual, All, MaybeMessage, Message, Of } from \"silentium\";\n\n/**\n * Boolean source what checks what string matches pattern\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport function RegexpMatched(\n patternSrc: MaybeMessage<string>,\n valueSrc: MaybeMessage<string>,\n flagsSrc: MaybeMessage<string> = Of(\"\"),\n) {\n const $pattern = Actual(patternSrc);\n const $value = Actual(valueSrc);\n const $flags = Actual(flagsSrc);\n return Message<boolean>(function RegexpMatchedImpl(r) {\n All($pattern, $value, $flags).then(function regexpMatchedAllSub([\n pattern,\n value,\n flags,\n ]) {\n r(new RegExp(pattern, flags).test(value));\n });\n });\n}\n","import { Actual, All, Applied, MaybeMessage } from \"silentium\";\n\n/**\n * Returns string replaced by regular expression pattern\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-replaced\n */\nexport function RegexpReplaced(\n valueSrc: MaybeMessage<string>,\n patternSrc: MaybeMessage<string>,\n replaceValueSrc: MaybeMessage<string>,\n flagsSrc: MaybeMessage<string> = \"\",\n) {\n const $value = Actual(valueSrc);\n const $pattern = Actual(patternSrc);\n const $replaceValue = Actual(replaceValueSrc);\n const $flags = Actual(flagsSrc);\n return Applied(\n All($pattern, $value, $replaceValue, $flags),\n ([pattern, value, replaceValue, flags]) => {\n return String(value).replace(new RegExp(pattern, flags), replaceValue);\n },\n );\n}\n","import { Actual, All, Message, MessageType } from \"silentium\";\n\n/**\n * Ability to mutate some object, helpful when integrate to procedure systems\n * https://silentium-lab.github.io/silentium-components/#/system/set\n */\nexport function Set<T extends Record<string, unknown>>(\n baseSrc: MessageType<T>,\n keySrc: MessageType<string>,\n valueSrc: MessageType<unknown>,\n) {\n const $base = Actual(baseSrc);\n const $key = Actual(keySrc);\n const $value = Actual(valueSrc);\n return Message<T>(function SetImpl(r) {\n All($base, $key, $value).then(function setAllSub([base, key, value]) {\n (base as Record<string, unknown>)[key] = value;\n r(base);\n });\n });\n}\n","import {\n Actual,\n All,\n ConstructorType,\n DestroyableType,\n DestroyContainer,\n MaybeMessage,\n Message,\n MessageType,\n Of,\n} from \"silentium\";\n\nimport { RegexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern?: string;\n patternFlags?: string;\n condition?: (v: unknown) => boolean;\n message: ConstructorType<[], MaybeMessage<T>>;\n}\n\nconst isTrue = (v: unknown) => v === true;\n\n/**\n * Router component what will return template if url matches pattern\n *\n * @url https://silentium.pw/article/router/view\n */\nexport function Router<T = string>(\n _url: MaybeMessage<string>,\n routes: MaybeMessage<Route<T>[]>,\n $default: ConstructorType<[], MaybeMessage<T>>,\n): MessageType<T> & DestroyableType {\n const $routes = Actual(routes);\n const $url = Actual(_url);\n return Message<T>(function RouterImpl(r) {\n const dc = DestroyContainer();\n const destructor = () => {\n dc.destroy();\n };\n All($routes, $url).then(function routerAllSub([routes, url]) {\n destructor();\n const $matches = All(\n ...routes.map(function routerRoutesMap(r) {\n return r.pattern\n ? RegexpMatched(\n Of(r.pattern),\n Of(url),\n r.patternFlags ? Of(r.patternFlags) : undefined,\n )\n : r?.condition?.(url);\n }),\n );\n $matches.then(function routerMatchesSub(matches) {\n const index = matches.findIndex(isTrue);\n if (index === -1) {\n const instance = Actual($default());\n dc.add(instance);\n instance.then(r);\n }\n if (index > -1) {\n const instance = Actual(routes[index].message());\n dc.add(instance);\n instance.then(r);\n }\n });\n });\n return destructor;\n });\n}\n","import { All, Message, MessageType, Of } from \"silentium\";\n\n/**\n * Join sources Of strings to one source\n * https://silentium-lab.github.io/silentium-components/#/string/concatenated\n */\nexport function Concatenated(\n sources: MessageType<string>[],\n joinPartSrc: MessageType<string> = Of(\"\"),\n) {\n return Message<string>(function ConcatenatedImpl(r) {\n All(joinPartSrc, ...sources).then(function concatenatedAllSub([\n joinPart,\n ...strings\n ]) {\n r(strings.join(joinPart));\n });\n });\n}\n","import {\n Actual,\n All,\n Applied,\n ConstructorType,\n DestroyableType,\n DestroyContainer,\n isDestroyable,\n isMessage,\n Late,\n MaybeMessage,\n Message,\n MessageType,\n Of,\n Rejections,\n} from \"silentium\";\n\nimport { Record } from \"../structures\";\n\n/**\n * Allows creating a string template with\n * variables inserted into it; when variables change,\n * the template value will change\n *\n * @url https://silentium.pw/article/template/view\n */\nexport function Template(\n src: MaybeMessage<string> | ((t: TemplateImpl) => string) = \"\",\n $places: MaybeMessage<Record<string, unknown>> = Of({}),\n) {\n const $src = Late<string>();\n if (typeof src === \"string\" || isMessage(src)) {\n $src.chain(Actual(src));\n }\n\n const t = new TemplateImpl($src, $places ? Actual($places) : undefined);\n\n if (typeof src === \"function\") {\n $src.chain(\n Message((r) => {\n r(src(t));\n }),\n );\n }\n\n return t;\n}\n\nexport class TemplateImpl implements MessageType<string>, DestroyableType {\n private dc = DestroyContainer();\n private rejections = Rejections();\n private vars: Record<string, MessageType> = {\n $TPL: Of(\"$TPL\"),\n };\n\n public constructor(\n private $src: MessageType<string> = Of(\"\"),\n private $places: MessageType<Record<string, unknown>> = Of({}),\n private escapeFn = escaped,\n ) {}\n\n public then(transport: ConstructorType<[string]>): this {\n const $vars = Record(this.vars);\n Applied(All(this.$src, this.$places, $vars), ([base, rules, vars]) => {\n try {\n Object.entries(rules).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n Object.entries(vars).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n } catch (e) {\n this.rejections.reject(e);\n }\n\n return base;\n }).then(transport);\n return this;\n }\n\n public template(value: string) {\n this.$src = Of(value);\n }\n\n /**\n * Register raw unsafe variable\n */\n public raw(src: MessageType<unknown>) {\n const hash =\n Date.now().toString(36) + Math.random().toString(36).substring(2);\n const varName = `$var${hash}`;\n if (isDestroyable(src)) {\n this.dc.add(src);\n }\n this.vars[varName] = src;\n return varName;\n }\n\n /**\n * Register variable what will be safe in HTML by default\n * or with your custom escape logic\n */\n public escaped(src: MessageType<any>) {\n if (isDestroyable(src)) {\n this.dc.add(src);\n }\n return this.raw(Applied(src, this.escapeFn));\n }\n\n public catch(rejected: ConstructorType<[unknown]>): this {\n this.rejections.catch(rejected);\n return this;\n }\n\n public destroy(): this {\n this.dc.destroy();\n return this;\n }\n}\n\nconst escapeMap = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\",\n \"/\": \"/\",\n} as const;\n\n/**\n * String with html escaped\n */\nexport function escaped(base: string) {\n if (typeof base !== \"string\") {\n base = String(base);\n }\n return base.replace(\n /[&<>\"'/]/g,\n (match) => escapeMap[match as keyof typeof escapeMap],\n );\n}\n"],"names":["Actual","Message","Primitive","DestroyContainer","ResetSilenceCache","Shared","Filtered","isFilled","Late","Source","Applied","All","base","key","Computed","Value","ExecutorApplied","record","Of","Once","Map","routes","r","isMessage","Rejections","isDestroyable"],"mappings":"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"}
|
|
@@ -232,15 +232,17 @@ function OnlyChanged($base) {
|
|
|
232
232
|
function Part($base, key, defaultValue) {
|
|
233
233
|
const $baseShared = Shared($base);
|
|
234
234
|
const $keyedShared = Shared(Actual(key));
|
|
235
|
+
const keyPrimitive = Primitive($keyedShared);
|
|
236
|
+
const base = Primitive($baseShared);
|
|
235
237
|
return Source(
|
|
236
238
|
function PartImpl(r) {
|
|
237
|
-
All($baseShared, $keyedShared).then(function partAllSub([
|
|
239
|
+
All($baseShared, $keyedShared).then(function partAllSub([base2, keyed]) {
|
|
238
240
|
const keys = keyed.split(".");
|
|
239
|
-
let value =
|
|
241
|
+
let value = base2;
|
|
240
242
|
keys.forEach(function partsAllKeysForEach(key2) {
|
|
241
243
|
value = value[key2];
|
|
242
244
|
});
|
|
243
|
-
if (value !== void 0 && value !==
|
|
245
|
+
if (value !== void 0 && value !== base2) {
|
|
244
246
|
r(value);
|
|
245
247
|
} else if (defaultValue !== void 0) {
|
|
246
248
|
r(defaultValue);
|
|
@@ -248,12 +250,10 @@ function Part($base, key, defaultValue) {
|
|
|
248
250
|
});
|
|
249
251
|
},
|
|
250
252
|
function PartSourceImpl(value) {
|
|
251
|
-
|
|
252
|
-
if (isFilled(key2)) {
|
|
253
|
-
const base = Primitive($base);
|
|
253
|
+
if (isFilled(key)) {
|
|
254
254
|
$base.use({
|
|
255
255
|
...base.primitiveWithException(),
|
|
256
|
-
[
|
|
256
|
+
[keyPrimitive.primitiveWithException()]: value
|
|
257
257
|
});
|
|
258
258
|
}
|
|
259
259
|
}
|