silentium-components 0.0.81 → 0.0.83

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.
Files changed (92) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/silentium-components.cjs +139 -134
  3. package/dist/silentium-components.cjs.map +1 -1
  4. package/dist/silentium-components.d.ts +12 -12
  5. package/dist/silentium-components.js +140 -135
  6. package/dist/silentium-components.js.map +1 -1
  7. package/dist/silentium-components.min.js +1 -1
  8. package/dist/silentium-components.min.mjs +1 -1
  9. package/dist/silentium-components.min.mjs.map +1 -1
  10. package/dist/silentium-components.mjs +140 -135
  11. package/dist/silentium-components.mjs.map +1 -1
  12. package/package.json +2 -2
  13. package/src/behaviors/Branch._main.test.ts +2 -2
  14. package/src/behaviors/Branch._values.test.ts +11 -0
  15. package/src/behaviors/Branch.branchesDontAffectResult.test.ts +2 -2
  16. package/src/behaviors/Branch.dontRespondAfterRespond.test.ts +5 -5
  17. package/src/behaviors/Branch.ts +17 -8
  18. package/src/behaviors/BranchLazy._main.test.ts +4 -4
  19. package/src/behaviors/BranchLazy.ts +8 -8
  20. package/src/behaviors/Const.test.ts +3 -3
  21. package/src/behaviors/Const.ts +5 -5
  22. package/src/behaviors/Deadline._main.test.ts +2 -2
  23. package/src/behaviors/Deadline._value.test.ts +3 -3
  24. package/src/behaviors/Deadline.ts +13 -10
  25. package/src/behaviors/Deferred.test.ts +3 -3
  26. package/src/behaviors/Deferred.ts +5 -11
  27. package/src/behaviors/Detached.test.ts +3 -3
  28. package/src/behaviors/Detached.ts +2 -2
  29. package/src/behaviors/Dirty.test.ts +2 -2
  30. package/src/behaviors/Dirty.ts +5 -5
  31. package/src/behaviors/Loading.test.ts +2 -2
  32. package/src/behaviors/Loading.ts +6 -6
  33. package/src/behaviors/Lock.test.ts +2 -2
  34. package/src/behaviors/Lock.ts +5 -5
  35. package/src/behaviors/Memo.test.ts +4 -4
  36. package/src/behaviors/Memo.ts +5 -5
  37. package/src/behaviors/OnlyChanged.test.ts +3 -3
  38. package/src/behaviors/OnlyChanged.ts +5 -5
  39. package/src/behaviors/Part.test.ts +33 -15
  40. package/src/behaviors/Part.ts +9 -7
  41. package/src/behaviors/Path._keyRaw.test.ts +14 -0
  42. package/src/behaviors/Path._main.test.ts +2 -2
  43. package/src/behaviors/Path.index.test.ts +2 -2
  44. package/src/behaviors/Path.nested.test.ts +2 -2
  45. package/src/behaviors/Path.ts +14 -6
  46. package/src/behaviors/Polling.ts +5 -5
  47. package/src/behaviors/Shot._main.test.ts +3 -3
  48. package/src/behaviors/Shot._onlyChanged.test.ts +3 -3
  49. package/src/behaviors/Shot.ts +5 -11
  50. package/src/behaviors/Task.test.ts +5 -5
  51. package/src/behaviors/Task.ts +2 -2
  52. package/src/behaviors/Tick.test.ts +2 -2
  53. package/src/behaviors/Tick.ts +5 -5
  54. package/src/behaviors/Transaction.ts +6 -6
  55. package/src/boolean/And.test.ts +2 -2
  56. package/src/boolean/And.ts +5 -5
  57. package/src/boolean/Bool.test.ts +2 -2
  58. package/src/boolean/Bool.ts +2 -2
  59. package/src/boolean/Not.test.ts +2 -2
  60. package/src/boolean/Not.ts +5 -5
  61. package/src/boolean/Or.test.ts +2 -2
  62. package/src/boolean/Or.ts +5 -5
  63. package/src/formats/FromJson.ts +6 -6
  64. package/src/formats/ToJson.ts +6 -6
  65. package/src/lists/First.test.ts +2 -2
  66. package/src/lists/First.ts +2 -2
  67. package/src/navigation/Router._destroy.test.ts +7 -7
  68. package/src/navigation/Router._firstMatch.test.ts +7 -7
  69. package/src/navigation/Router._main.test.ts +7 -7
  70. package/src/navigation/Router._nested.test.ts +16 -16
  71. package/src/navigation/Router.ts +11 -11
  72. package/src/strings/Concatenated.test.ts +2 -2
  73. package/src/strings/Concatenated.ts +5 -5
  74. package/src/strings/Template._main.test.ts +3 -3
  75. package/src/strings/Template._place.test.ts +2 -2
  76. package/src/strings/Template.ts +3 -3
  77. package/src/structures/HashTable.test.ts +2 -2
  78. package/src/structures/HashTable.ts +5 -5
  79. package/src/structures/Record._main.test.ts +2 -2
  80. package/src/structures/Record._mixed.test.ts +2 -2
  81. package/src/structures/Record.concatenated.test.ts +4 -4
  82. package/src/structures/Record.nested.test.ts +2 -2
  83. package/src/structures/Record.ts +5 -5
  84. package/src/system/RegexpMatch._group.test.ts +2 -2
  85. package/src/system/RegexpMatch._main.test.ts +2 -2
  86. package/src/system/RegexpMatch.ts +5 -5
  87. package/src/system/RegexpMatched.test.ts +2 -2
  88. package/src/system/RegexpMatched.ts +5 -5
  89. package/src/system/RegexpReplaced.test.ts +2 -2
  90. package/src/system/RegexpReplaced.ts +5 -5
  91. package/src/system/Set.test.ts +2 -2
  92. package/src/system/Set.ts +5 -5
package/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
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.83](https://github.com/silentium-lab/silentium-components/compare/v0.0.82...v0.0.83) (2025-11-17)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **main:** messages refactoring ([89e72d1](https://github.com/silentium-lab/silentium-components/commit/89e72d11a10a51b2ada0536583083f5b6b68164c))
11
+
12
+ ### [0.0.82](https://github.com/silentium-lab/silentium-components/compare/v0.0.81...v0.0.82) (2025-11-16)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * **main:** maybeMessage usage ([c2aa7a7](https://github.com/silentium-lab/silentium-components/commit/c2aa7a72e5587caa349a1e55261e1283a6a4fa95))
18
+
5
19
  ### [0.0.81](https://github.com/silentium-lab/silentium-components/compare/v0.0.80...v0.0.81) (2025-11-15)
6
20
 
7
21
 
@@ -2,15 +2,18 @@
2
2
 
3
3
  var silentium = require('silentium');
4
4
 
5
- function Branch($condition, $left, $right) {
6
- return silentium.Message((transport) => {
5
+ function Branch(_condition, _left, _right) {
6
+ const $condition = silentium.ActualMessage(_condition);
7
+ const $left = silentium.ActualMessage(_left);
8
+ const $right = _right && silentium.ActualMessage(_right);
9
+ return silentium.Message(function() {
7
10
  const left = silentium.Primitive($left);
8
11
  let right;
9
12
  if ($right !== void 0) {
10
13
  right = silentium.Primitive($right);
11
14
  }
12
- $condition.to(
13
- silentium.Transport((v) => {
15
+ $condition.pipe(
16
+ silentium.Tap((v) => {
14
17
  let result = null;
15
18
  if (v) {
16
19
  result = left.primitive();
@@ -18,7 +21,7 @@ function Branch($condition, $left, $right) {
18
21
  result = right.primitive();
19
22
  }
20
23
  if (result !== null) {
21
- transport.use(result);
24
+ this.use(result);
22
25
  }
23
26
  })
24
27
  );
@@ -26,13 +29,13 @@ function Branch($condition, $left, $right) {
26
29
  }
27
30
 
28
31
  function BranchLazy($condition, $left, $right) {
29
- return silentium.Message((transport) => {
32
+ return silentium.Message(function() {
30
33
  const dc = silentium.DestroyContainer();
31
34
  const destructor = () => {
32
35
  dc.destroy();
33
36
  };
34
- $condition.to(
35
- silentium.Transport((v) => {
37
+ $condition.pipe(
38
+ silentium.Tap((v) => {
36
39
  destructor();
37
40
  let instance;
38
41
  if (v) {
@@ -41,7 +44,7 @@ function BranchLazy($condition, $left, $right) {
41
44
  instance = $right.use();
42
45
  }
43
46
  if (instance !== void 0) {
44
- instance.to(transport);
47
+ instance.pipe(this);
45
48
  dc.add(instance);
46
49
  }
47
50
  })
@@ -51,21 +54,22 @@ function BranchLazy($condition, $left, $right) {
51
54
  }
52
55
 
53
56
  function Constant(permanent, $trigger) {
54
- return silentium.Message((transport) => {
55
- $trigger.to(
56
- silentium.Transport(() => {
57
- transport.use(permanent);
57
+ return silentium.Message(function() {
58
+ $trigger.pipe(
59
+ silentium.Tap(() => {
60
+ this.use(permanent);
58
61
  })
59
62
  );
60
63
  });
61
64
  }
62
65
 
63
- function Deadline(error, $base, $timeout) {
64
- return silentium.Message((transport) => {
66
+ function Deadline(error, $base, _timeout) {
67
+ const $timeout = silentium.ActualMessage(_timeout);
68
+ return silentium.Message(function() {
65
69
  let timer = 0;
66
70
  const base = silentium.Shared($base, true);
67
- $timeout.to(
68
- silentium.Transport((timeout) => {
71
+ $timeout.pipe(
72
+ silentium.Tap((timeout) => {
69
73
  if (timer) {
70
74
  clearTimeout(timer);
71
75
  }
@@ -78,9 +82,9 @@ function Deadline(error, $base, $timeout) {
78
82
  error.use(new Error("Timeout reached in Deadline"));
79
83
  }, timeout);
80
84
  const f = silentium.Filtered(base, () => !timeoutReached);
81
- f.to(transport);
82
- base.to(
83
- silentium.Transport(() => {
85
+ f.pipe(this);
86
+ base.pipe(
87
+ silentium.Tap(() => {
84
88
  timeoutReached = true;
85
89
  })
86
90
  );
@@ -90,13 +94,13 @@ function Deadline(error, $base, $timeout) {
90
94
  }
91
95
 
92
96
  function Deferred($base, $trigger) {
93
- return silentium.Message((transport) => {
97
+ return silentium.Message(function() {
94
98
  const base = silentium.Primitive($base);
95
- $trigger.to(
96
- silentium.Transport(() => {
99
+ $trigger.pipe(
100
+ silentium.Tap(() => {
97
101
  const value = base.primitive();
98
102
  if (silentium.isFilled(value)) {
99
- transport.use(value);
103
+ this.use(value);
100
104
  }
101
105
  })
102
106
  );
@@ -104,10 +108,10 @@ function Deferred($base, $trigger) {
104
108
  }
105
109
 
106
110
  function Detached($base) {
107
- return silentium.Message((transport) => {
111
+ return silentium.Message(function() {
108
112
  const v = silentium.Primitive($base).primitive();
109
113
  if (silentium.isFilled(v)) {
110
- transport.use(v);
114
+ this.use(v);
111
115
  }
112
116
  });
113
117
  }
@@ -131,10 +135,10 @@ class DirtySource {
131
135
  this.cloner = cloner;
132
136
  }
133
137
  }
134
- to(transport) {
138
+ pipe(transport) {
135
139
  const $comparing = silentium.Applied(this.$comparing, this.cloner);
136
- silentium.All($comparing, this.$base).to(
137
- silentium.Transport(([comparing, base]) => {
140
+ silentium.All($comparing, this.$base).pipe(
141
+ silentium.Tap(([comparing, base]) => {
138
142
  if (!comparing) {
139
143
  return;
140
144
  }
@@ -161,33 +165,33 @@ class DirtySource {
161
165
  }
162
166
  }
163
167
 
164
- function Loading($loadingStart, $loadingFinish) {
165
- return silentium.Message((transport) => {
166
- $loadingStart.to(silentium.Transport(() => transport.use(true)));
167
- $loadingFinish.to(silentium.Transport(() => transport.use(false)));
168
+ function Loading($start, $finish) {
169
+ return silentium.Message(function() {
170
+ $start.pipe(silentium.Tap(() => this.use(true)));
171
+ $finish.pipe(silentium.Tap(() => this.use(false)));
168
172
  });
169
173
  }
170
174
 
171
175
  function Lock($base, $lock) {
172
- return silentium.Message((transport) => {
176
+ return silentium.Message(function() {
173
177
  let locked = false;
174
- $lock.to(
175
- silentium.Transport((newLock) => {
178
+ $lock.pipe(
179
+ silentium.Tap((newLock) => {
176
180
  locked = newLock;
177
181
  })
178
182
  );
179
183
  const i = silentium.Filtered($base, () => !locked);
180
- i.to(transport);
184
+ i.pipe(this);
181
185
  });
182
186
  }
183
187
 
184
188
  function Memo($base) {
185
- return silentium.Message((transport) => {
189
+ return silentium.Message(function() {
186
190
  let last = null;
187
- $base.to(
188
- silentium.Transport((v) => {
191
+ $base.pipe(
192
+ silentium.Tap((v) => {
189
193
  if (v !== last && silentium.isFilled(v)) {
190
- transport.use(v);
194
+ this.use(v);
191
195
  last = v;
192
196
  }
193
197
  })
@@ -196,14 +200,14 @@ function Memo($base) {
196
200
  }
197
201
 
198
202
  function OnlyChanged($base) {
199
- return silentium.Message((transport) => {
203
+ return silentium.Message(function() {
200
204
  let first = false;
201
- $base.to(
202
- silentium.Transport((v) => {
205
+ $base.pipe(
206
+ silentium.Tap((v) => {
203
207
  if (first === false) {
204
208
  first = true;
205
209
  } else {
206
- transport.use(v);
210
+ this.use(v);
207
211
  }
208
212
  })
209
213
  );
@@ -214,7 +218,7 @@ var __defProp$1 = Object.defineProperty;
214
218
  var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
215
219
  var __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
216
220
  function Part($base, $key) {
217
- return new PartImpl($base, $key);
221
+ return new PartImpl($base, silentium.ActualMessage($key));
218
222
  }
219
223
  class PartImpl {
220
224
  constructor($base, $key) {
@@ -223,9 +227,9 @@ class PartImpl {
223
227
  this.$base = silentium.SharedSource($base);
224
228
  this.$keyed = silentium.Shared($key);
225
229
  }
226
- to(transport) {
227
- silentium.All(this.$base, this.$keyed).to(
228
- silentium.Transport(([base, keyed]) => {
230
+ pipe(transport) {
231
+ silentium.All(this.$base, this.$keyed).pipe(
232
+ silentium.Tap(([base, keyed]) => {
229
233
  const keys = keyed.split(".");
230
234
  let value = base;
231
235
  keys.forEach((key) => {
@@ -251,17 +255,18 @@ class PartImpl {
251
255
  }
252
256
  }
253
257
 
254
- function Path($base, $keyed) {
255
- return silentium.Message((transport) => {
256
- silentium.All($base, $keyed).to(
257
- silentium.Transport(([base, keyed]) => {
258
+ function Path($base, _keyed) {
259
+ const $keyed = silentium.ActualMessage(_keyed);
260
+ return silentium.Message(function() {
261
+ silentium.All($base, $keyed).pipe(
262
+ silentium.Tap(([base, keyed]) => {
258
263
  const keys = keyed.split(".");
259
264
  let value = base;
260
265
  keys.forEach((key) => {
261
266
  value = value[key];
262
267
  });
263
268
  if (value !== void 0 && value !== base) {
264
- transport.use(value);
269
+ this.use(value);
265
270
  }
266
271
  })
267
272
  );
@@ -269,24 +274,24 @@ function Path($base, $keyed) {
269
274
  }
270
275
 
271
276
  function Polling($base, $trigger) {
272
- return silentium.Message((transport) => {
273
- $trigger.to(
274
- silentium.Transport(() => {
275
- $base.to(transport);
277
+ return silentium.Message(function() {
278
+ $trigger.pipe(
279
+ silentium.Tap(() => {
280
+ $base.pipe(this);
276
281
  })
277
282
  );
278
283
  });
279
284
  }
280
285
 
281
286
  function Shot($target, $trigger) {
282
- return silentium.Message((transport) => {
287
+ return silentium.Message(function() {
283
288
  const targetSync = silentium.Primitive($target);
284
289
  targetSync.primitive();
285
- $trigger.to(
286
- silentium.Transport(() => {
290
+ $trigger.pipe(
291
+ silentium.Tap(() => {
287
292
  const value = targetSync.primitive();
288
293
  if (silentium.isFilled(value)) {
289
- transport.use(value);
294
+ this.use(value);
290
295
  }
291
296
  })
292
297
  );
@@ -294,7 +299,7 @@ function Shot($target, $trigger) {
294
299
  }
295
300
 
296
301
  function Task(baseSrc, delay = 0) {
297
- return silentium.Message((transport) => {
302
+ return silentium.Message(function() {
298
303
  let prevTimer = null;
299
304
  silentium.ExecutorApplied(baseSrc, (fn) => {
300
305
  return (v) => {
@@ -305,12 +310,12 @@ function Task(baseSrc, delay = 0) {
305
310
  fn(v);
306
311
  }, delay);
307
312
  };
308
- }).to(transport);
313
+ }).pipe(this);
309
314
  });
310
315
  }
311
316
 
312
317
  function Tick($base) {
313
- return silentium.Message((transport) => {
318
+ return silentium.Message(function() {
314
319
  let microtaskScheduled = false;
315
320
  let lastValue = null;
316
321
  const scheduleMicrotask = () => {
@@ -318,13 +323,13 @@ function Tick($base) {
318
323
  queueMicrotask(() => {
319
324
  microtaskScheduled = false;
320
325
  if (lastValue !== null) {
321
- transport.use(lastValue);
326
+ this.use(lastValue);
322
327
  lastValue = null;
323
328
  }
324
329
  });
325
330
  };
326
- $base.to(
327
- silentium.Transport((v) => {
331
+ $base.pipe(
332
+ silentium.Tap((v) => {
328
333
  lastValue = v;
329
334
  if (!microtaskScheduled) {
330
335
  scheduleMicrotask();
@@ -335,17 +340,17 @@ function Tick($base) {
335
340
  }
336
341
 
337
342
  function Transaction($base, builder, ...args) {
338
- return silentium.Message((transport) => {
343
+ return silentium.Message(function() {
339
344
  const $res = silentium.LateShared();
340
345
  const destructors = [];
341
- $base.to(
342
- silentium.Transport((v) => {
346
+ $base.pipe(
347
+ silentium.Tap((v) => {
343
348
  const $msg = builder(silentium.Of(v), ...args.map((a) => Detached(a)));
344
349
  destructors.push($msg);
345
- $msg.to($res);
350
+ $msg.pipe($res);
346
351
  })
347
352
  );
348
- $res.to(transport);
353
+ $res.pipe(this);
349
354
  return () => {
350
355
  destructors.forEach((d) => d?.destroy());
351
356
  destructors.length = 0;
@@ -354,42 +359,42 @@ function Transaction($base, builder, ...args) {
354
359
  }
355
360
 
356
361
  function HashTable($base) {
357
- return silentium.Message((transport) => {
362
+ return silentium.Message(function() {
358
363
  const record = {};
359
- $base.to(
360
- silentium.Transport(([key, value]) => {
364
+ $base.pipe(
365
+ silentium.Tap(([key, value]) => {
361
366
  record[key] = value;
362
- transport.use(record);
367
+ this.use(record);
363
368
  })
364
369
  );
365
370
  });
366
371
  }
367
372
 
368
373
  function Record(record) {
369
- return silentium.Message((transport) => {
374
+ return silentium.Message(function() {
370
375
  const keys = Object.keys(record);
371
376
  keys.forEach((key) => {
372
377
  if (!silentium.isMessage(record[key])) {
373
378
  record[key] = silentium.Of(record[key]);
374
379
  }
375
380
  });
376
- silentium.All(...Object.values(record)).to(
377
- silentium.Transport((entries) => {
381
+ silentium.All(...Object.values(record)).pipe(
382
+ silentium.Tap((entries) => {
378
383
  const record2 = {};
379
384
  entries.forEach((entry, index) => {
380
385
  record2[keys[index]] = entry;
381
386
  });
382
- transport.use(record2);
387
+ this.use(record2);
383
388
  })
384
389
  );
385
390
  });
386
391
  }
387
392
 
388
393
  function Concatenated(sources, joinPartSrc = silentium.Of("")) {
389
- return silentium.Message((transport) => {
390
- silentium.All(joinPartSrc, ...sources).to(
391
- silentium.Transport(([joinPart, ...strings]) => {
392
- transport.use(strings.join(joinPart));
394
+ return silentium.Message(function() {
395
+ silentium.All(joinPartSrc, ...sources).pipe(
396
+ silentium.Tap(([joinPart, ...strings]) => {
397
+ this.use(strings.join(joinPart));
393
398
  })
394
399
  );
395
400
  });
@@ -410,7 +415,7 @@ class TemplateImpl {
410
415
  $TPL: silentium.Of("$TPL")
411
416
  });
412
417
  }
413
- to(transport) {
418
+ pipe(transport) {
414
419
  const $vars = Record(this.vars);
415
420
  silentium.Applied(silentium.All(this.$src, this.$places, $vars), ([base, rules, vars]) => {
416
421
  Object.entries(rules).forEach(([ph, val]) => {
@@ -420,7 +425,7 @@ class TemplateImpl {
420
425
  base = base.replaceAll(ph, String(val));
421
426
  });
422
427
  return base;
423
- }).to(transport);
428
+ }).pipe(transport);
424
429
  return this;
425
430
  }
426
431
  template(value) {
@@ -446,20 +451,20 @@ class TemplateImpl {
446
451
  }
447
452
 
448
453
  function RegexpMatched(patternSrc, valueSrc, flagsSrc = silentium.Of("")) {
449
- return silentium.Message((transport) => {
450
- silentium.All(patternSrc, valueSrc, flagsSrc).to(
451
- silentium.Transport(([pattern, value, flags]) => {
452
- transport.use(new RegExp(pattern, flags).test(value));
454
+ return silentium.Message(function() {
455
+ silentium.All(patternSrc, valueSrc, flagsSrc).pipe(
456
+ silentium.Tap(([pattern, value, flags]) => {
457
+ this.use(new RegExp(pattern, flags).test(value));
453
458
  })
454
459
  );
455
460
  });
456
461
  }
457
462
 
458
463
  function RegexpReplaced(valueSrc, patternSrc, replaceValueSrc, flagsSrc = silentium.Of("")) {
459
- return silentium.Message((transport) => {
460
- silentium.All(patternSrc, valueSrc, replaceValueSrc, flagsSrc).to(
461
- silentium.Transport(([pattern, value, replaceValue, flags]) => {
462
- transport.use(
464
+ return silentium.Message(function() {
465
+ silentium.All(patternSrc, valueSrc, replaceValueSrc, flagsSrc).pipe(
466
+ silentium.Tap(([pattern, value, replaceValue, flags]) => {
467
+ this.use(
463
468
  String(value).replace(new RegExp(pattern, flags), replaceValue)
464
469
  );
465
470
  })
@@ -468,35 +473,35 @@ function RegexpReplaced(valueSrc, patternSrc, replaceValueSrc, flagsSrc = silent
468
473
  }
469
474
 
470
475
  function RegexpMatch(patternSrc, valueSrc, flagsSrc = silentium.Of("")) {
471
- return silentium.Message((transport) => {
472
- silentium.All(patternSrc, valueSrc, flagsSrc).to(
473
- silentium.Transport(([pattern, value, flags]) => {
476
+ return silentium.Message(function() {
477
+ silentium.All(patternSrc, valueSrc, flagsSrc).pipe(
478
+ silentium.Tap(([pattern, value, flags]) => {
474
479
  const result = new RegExp(pattern, flags).exec(value);
475
- transport.use(result ?? []);
480
+ this.use(result ?? []);
476
481
  })
477
482
  );
478
483
  });
479
484
  }
480
485
 
481
486
  function Set(baseSrc, keySrc, valueSrc) {
482
- return silentium.Message((transport) => {
483
- silentium.All(baseSrc, keySrc, valueSrc).to(
484
- silentium.Transport(([base, key, value]) => {
487
+ return silentium.Message(function() {
488
+ silentium.All(baseSrc, keySrc, valueSrc).pipe(
489
+ silentium.Tap(([base, key, value]) => {
485
490
  base[key] = value;
486
- transport.use(base);
491
+ this.use(base);
487
492
  })
488
493
  );
489
494
  });
490
495
  }
491
496
 
492
497
  function Router($url, $routes, $default) {
493
- return silentium.Message((transport) => {
498
+ return silentium.Message(function() {
494
499
  const dc = silentium.DestroyContainer();
495
500
  const destructor = () => {
496
501
  dc.destroy();
497
502
  };
498
- silentium.All($routes, $url).to(
499
- silentium.Transport(([routes, url]) => {
503
+ silentium.All($routes, $url).pipe(
504
+ silentium.Tap(([routes, url]) => {
500
505
  destructor();
501
506
  const $matches = silentium.All(
502
507
  ...routes.map(
@@ -507,18 +512,18 @@ function Router($url, $routes, $default) {
507
512
  )
508
513
  )
509
514
  );
510
- $matches.to(
511
- silentium.Transport((matches) => {
515
+ $matches.pipe(
516
+ silentium.Tap((matches) => {
512
517
  const index = matches.findIndex((v) => v === true);
513
518
  if (index === -1) {
514
519
  const instance = $default.use();
515
520
  dc.add(instance);
516
- instance.to(transport);
521
+ instance.pipe(this);
517
522
  }
518
523
  if (index > -1) {
519
524
  const instance = routes[index].message.use();
520
525
  dc.add(instance);
521
- instance.to(transport);
526
+ instance.pipe(this);
522
527
  }
523
528
  })
524
529
  );
@@ -529,47 +534,47 @@ function Router($url, $routes, $default) {
529
534
  }
530
535
 
531
536
  function And($one, $two) {
532
- return silentium.Message((transport) => {
533
- silentium.All($one, $two).to(
534
- silentium.Transport(([one, two]) => {
535
- transport.use(one && two);
537
+ return silentium.Message(function() {
538
+ silentium.All($one, $two).pipe(
539
+ silentium.Tap(([one, two]) => {
540
+ this.use(!!(one && two));
536
541
  })
537
542
  );
538
543
  });
539
544
  }
540
545
 
541
546
  function Or($one, $two) {
542
- return silentium.Message((transport) => {
543
- silentium.All($one, $two).to(
544
- silentium.Transport(([one, two]) => {
545
- transport.use(one || two);
547
+ return silentium.Message(function() {
548
+ silentium.All($one, $two).pipe(
549
+ silentium.Tap(([one, two]) => {
550
+ this.use(!!(one || two));
546
551
  })
547
552
  );
548
553
  });
549
554
  }
550
555
 
551
556
  function Not($base) {
552
- return silentium.Message((transport) => {
553
- $base.to(
554
- silentium.Transport((v) => {
555
- transport.use(!v);
557
+ return silentium.Message(function() {
558
+ $base.pipe(
559
+ silentium.Tap((v) => {
560
+ this.use(!v);
556
561
  })
557
562
  );
558
563
  });
559
564
  }
560
565
 
561
566
  function Bool($base) {
562
- return silentium.Message((transport) => {
563
- silentium.Applied($base, Boolean).to(transport);
567
+ return silentium.Message(function() {
568
+ silentium.Applied($base, Boolean).pipe(this);
564
569
  });
565
570
  }
566
571
 
567
572
  function FromJson($json, error) {
568
- return silentium.Message((transport) => {
569
- $json.to(
570
- silentium.Transport((json) => {
573
+ return silentium.Message(function() {
574
+ $json.pipe(
575
+ silentium.Tap((json) => {
571
576
  try {
572
- transport.use(JSON.parse(json));
577
+ this.use(JSON.parse(json));
573
578
  } catch (e) {
574
579
  error?.use(new Error(`Failed to parse JSON: ${e}`));
575
580
  }
@@ -579,11 +584,11 @@ function FromJson($json, error) {
579
584
  }
580
585
 
581
586
  function ToJson($data, error) {
582
- return silentium.Message((transport) => {
583
- $data.to(
584
- silentium.Transport((data) => {
587
+ return silentium.Message(function() {
588
+ $data.pipe(
589
+ silentium.Tap((data) => {
585
590
  try {
586
- transport.use(JSON.stringify(data));
591
+ this.use(JSON.stringify(data));
587
592
  } catch {
588
593
  error?.use(new Error("Failed to convert to JSON"));
589
594
  }
@@ -593,8 +598,8 @@ function ToJson($data, error) {
593
598
  }
594
599
 
595
600
  function First($base) {
596
- return silentium.Message((transport) => {
597
- silentium.Applied($base, (a) => a[0]).to(transport);
601
+ return silentium.Message(function() {
602
+ silentium.Applied($base, (a) => a[0]).pipe(this);
598
603
  });
599
604
  }
600
605