silentium 0.0.39 → 0.0.41

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 (46) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/silentium.cjs +18 -12
  3. package/dist/silentium.cjs.map +1 -1
  4. package/dist/silentium.d.ts +1 -1
  5. package/dist/silentium.js +18 -12
  6. package/dist/silentium.js.map +1 -1
  7. package/dist/silentium.min.js +1 -1
  8. package/dist/silentium.min.mjs +1 -1
  9. package/dist/silentium.min.mjs.map +1 -1
  10. package/dist/silentium.mjs +18 -12
  11. package/dist/silentium.mjs.map +1 -1
  12. package/docs/routes.json +1 -1
  13. package/package.json +1 -1
  14. package/src/Guest/Guest.stateEventScheme.json +1 -0
  15. package/src/Guest/GuestApplied.stateEventScheme.json +1 -0
  16. package/src/Guest/GuestCast.stateEventScheme.json +1 -0
  17. package/src/Guest/GuestDisposable.stateEventScheme.json +1 -0
  18. package/src/Guest/GuestExecutorApplied.stateEventScheme.json +1 -0
  19. package/src/Guest/GuestSync.stateEventScheme.json +1 -0
  20. package/src/Patron/Patron.stateEventScheme.json +1 -0
  21. package/src/Patron/PatronApplied.stateEventScheme.json +1 -0
  22. package/src/Patron/PatronExecutorApplied.stateEventScheme.json +1 -0
  23. package/src/Patron/PatronOnce.stateEventScheme.json +1 -0
  24. package/src/Patron/PatronPool.stateEventScheme.json +1 -0
  25. package/src/Source/Source.stateEventScheme.json +1 -0
  26. package/src/Source/SourceAll.stateEventScheme.json +1 -0
  27. package/src/Source/SourceAny.stateEventScheme.json +1 -0
  28. package/src/Source/SourceApplied.stateEventScheme.json +1 -0
  29. package/src/Source/SourceChain.stateEventScheme.json +1 -0
  30. package/src/Source/SourceChain.test.ts +5 -0
  31. package/src/Source/SourceChain.ts +10 -13
  32. package/src/Source/SourceChangeable.stateEventScheme.json +1 -0
  33. package/src/Source/SourceCombined.stateEventScheme.json +1 -0
  34. package/src/Source/SourceDestroyable.stateEventScheme.json +1 -0
  35. package/src/Source/SourceDynamic.stateEventScheme.json +1 -0
  36. package/src/Source/SourceExecutorApplied.stateEventScheme.json +1 -0
  37. package/src/Source/SourceExecutorApplied.test.ts +11 -10
  38. package/src/Source/SourceExecutorApplied.ts +15 -5
  39. package/src/Source/SourceFiltered.stateEventScheme.json +1 -0
  40. package/src/Source/SourceLazy.stateEventScheme.json +1 -0
  41. package/src/Source/SourceMap.stateEventScheme.json +1 -0
  42. package/src/Source/SourceOnce.stateEventScheme.json +1 -0
  43. package/src/Source/SourceRace.stateEventScheme.json +1 -0
  44. package/src/Source/SourceResettable.stateEventScheme.json +1 -0
  45. package/src/Source/SourceSequence.stateEventScheme.json +1 -0
  46. package/src/Source/SourceSync.stateEventScheme.json +1 -0
@@ -0,0 +1 @@
1
+ {"current":{"progress":0,"settings":{"colored":false,"title":"SourceExecutorApplied state change"},"objects":{},"types":{"State":{"name":"State","svg":"<style>.svg-type-state{display:block;color:black;overflow:auto;padding:9px;border:solid 2px #ccc;background:#ffffee;width:auto;}</style><div class=\"svg-type-state\" style=\"width:${width}px\">\n<div style=\"font-weight: bold;border-bottom: solid 1px #333; padding-bottom: 5px; margin-bottom; 5px\">STATE</div>\n${text}\n</div>","width":"190","height":"70"},"Event":{"name":"Event","svg":"<style>.svg-type-event{display:block;color:black;overflow:auto;padding:9px;border:solid 2px #ccc;background:#ffeeee;width:auto;}</style><div class=\"svg-type-event\" style=\"width:${width}px\">\n<div style=\"font-weight: bold;border-bottom: solid 1px #333; padding-bottom: 5px; margin-bottom; 5px\">EVENT</div>\n<div>\n${text}\n</div>\n</div>","width":"190","height":"60"}},"url":"/current","parent":""}}
@@ -1,17 +1,20 @@
1
- import { expect, test, vi } from "vitest";
2
- import { debounce } from "../../test-utils/debounce";
1
+ import { expect, test } from "vitest";
2
+ import { give } from "../Guest/Guest";
3
3
  import { patron } from "../Patron/Patron";
4
4
  import { sourceExecutorApplied } from "../Source/SourceExecutorApplied";
5
5
  import { sourceOf } from "./SourceChangeable";
6
6
 
7
7
  test("SourceExecutorApplied.test", () => {
8
- vi.useFakeTimers({ shouldAdvanceTime: true });
9
-
10
8
  const source = sourceOf<number>();
11
- const sourceDebounced = sourceExecutorApplied(
12
- source,
13
- debounce.bind(null, 100),
14
- );
9
+ let applierWasCalled = false;
10
+ const sourceDebounced = sourceExecutorApplied(source, (guest) => {
11
+ return (v) => {
12
+ if (!applierWasCalled) {
13
+ give(v, guest);
14
+ }
15
+ applierWasCalled = true;
16
+ };
17
+ });
15
18
 
16
19
  let counter = 0;
17
20
  sourceDebounced(
@@ -24,7 +27,5 @@ test("SourceExecutorApplied.test", () => {
24
27
  source.give(1);
25
28
  source.give(1);
26
29
 
27
- vi.runOnlyPendingTimers();
28
-
29
30
  expect(counter).toBe(1);
30
31
  });
@@ -1,4 +1,6 @@
1
- import { SourceExecutorType, SourceType, value } from "../Source/Source";
1
+ import { give, GuestType } from "../Guest/Guest";
2
+ import { guestCast } from "../Guest/GuestCast";
3
+ import { SourceType, value } from "../Source/Source";
2
4
 
3
5
  /**
4
6
  * Ability to apply function to source executor, helpful when need to apply throttling or debounce
@@ -6,9 +8,17 @@ import { SourceExecutorType, SourceType, value } from "../Source/Source";
6
8
  */
7
9
  export const sourceExecutorApplied = <T>(
8
10
  source: SourceType<T>,
9
- applier: (executor: SourceExecutorType<T>) => SourceExecutorType<T>,
11
+ applier: (executor: GuestType<T>) => GuestType<T>,
10
12
  ) => {
11
- return applier((g) => {
12
- value(source, g);
13
- });
13
+ return (g: GuestType<T>) => {
14
+ value(
15
+ source,
16
+ guestCast(
17
+ g,
18
+ applier((v) => {
19
+ give(v, g);
20
+ }),
21
+ ),
22
+ );
23
+ };
14
24
  };
@@ -0,0 +1 @@
1
+ {"current":{"progress":0,"settings":{"colored":false,"title":"SourceFiltered state change"},"objects":{},"types":{"State":{"name":"State","svg":"<style>.svg-type-state{display:block;color:black;overflow:auto;padding:9px;border:solid 2px #ccc;background:#ffffee;width:auto;}</style><div class=\"svg-type-state\" style=\"width:${width}px\">\n<div style=\"font-weight: bold;border-bottom: solid 1px #333; padding-bottom: 5px; margin-bottom; 5px\">STATE</div>\n${text}\n</div>","width":"190","height":"70"},"Event":{"name":"Event","svg":"<style>.svg-type-event{display:block;color:black;overflow:auto;padding:9px;border:solid 2px #ccc;background:#ffeeee;width:auto;}</style><div class=\"svg-type-event\" style=\"width:${width}px\">\n<div style=\"font-weight: bold;border-bottom: solid 1px #333; padding-bottom: 5px; margin-bottom; 5px\">EVENT</div>\n<div>\n${text}\n</div>\n</div>","width":"190","height":"60"}},"url":"/current","parent":""}}
@@ -0,0 +1 @@
1
+ {"current":{"progress":0,"settings":{"colored":false,"title":"SourceLazy state change"},"objects":{},"types":{"State":{"name":"State","svg":"<style>.svg-type-state{display:block;color:black;overflow:auto;padding:9px;border:solid 2px #ccc;background:#ffffee;width:auto;}</style><div class=\"svg-type-state\" style=\"width:${width}px\">\n<div style=\"font-weight: bold;border-bottom: solid 1px #333; padding-bottom: 5px; margin-bottom; 5px\">STATE</div>\n${text}\n</div>","width":"190","height":"70"},"Event":{"name":"Event","svg":"<style>.svg-type-event{display:block;color:black;overflow:auto;padding:9px;border:solid 2px #ccc;background:#ffeeee;width:auto;}</style><div class=\"svg-type-event\" style=\"width:${width}px\">\n<div style=\"font-weight: bold;border-bottom: solid 1px #333; padding-bottom: 5px; margin-bottom; 5px\">EVENT</div>\n<div>\n${text}\n</div>\n</div>","width":"190","height":"60"}},"url":"/current","parent":""}}
@@ -0,0 +1 @@
1
+ {"current":{"progress":0,"settings":{"colored":false,"title":"SourceMap state change"},"objects":{},"types":{"State":{"name":"State","svg":"<style>.svg-type-state{display:block;color:black;overflow:auto;padding:9px;border:solid 2px #ccc;background:#ffffee;width:auto;}</style><div class=\"svg-type-state\" style=\"width:${width}px\">\n<div style=\"font-weight: bold;border-bottom: solid 1px #333; padding-bottom: 5px; margin-bottom; 5px\">STATE</div>\n${text}\n</div>","width":"190","height":"70"},"Event":{"name":"Event","svg":"<style>.svg-type-event{display:block;color:black;overflow:auto;padding:9px;border:solid 2px #ccc;background:#ffeeee;width:auto;}</style><div class=\"svg-type-event\" style=\"width:${width}px\">\n<div style=\"font-weight: bold;border-bottom: solid 1px #333; padding-bottom: 5px; margin-bottom; 5px\">EVENT</div>\n<div>\n${text}\n</div>\n</div>","width":"190","height":"60"}},"url":"/current","parent":""}}
@@ -0,0 +1 @@
1
+ {"current":{"progress":0,"settings":{"colored":false,"title":"SourceOnce state change"},"objects":{},"types":{"State":{"name":"State","svg":"<style>.svg-type-state{display:block;color:black;overflow:auto;padding:9px;border:solid 2px #ccc;background:#ffffee;width:auto;}</style><div class=\"svg-type-state\" style=\"width:${width}px\">\n<div style=\"font-weight: bold;border-bottom: solid 1px #333; padding-bottom: 5px; margin-bottom; 5px\">STATE</div>\n${text}\n</div>","width":"190","height":"70"},"Event":{"name":"Event","svg":"<style>.svg-type-event{display:block;color:black;overflow:auto;padding:9px;border:solid 2px #ccc;background:#ffeeee;width:auto;}</style><div class=\"svg-type-event\" style=\"width:${width}px\">\n<div style=\"font-weight: bold;border-bottom: solid 1px #333; padding-bottom: 5px; margin-bottom; 5px\">EVENT</div>\n<div>\n${text}\n</div>\n</div>","width":"190","height":"60"}},"url":"/current","parent":""}}
@@ -0,0 +1 @@
1
+ {"current":{"progress":0,"settings":{"colored":false,"title":"SourceRace state change"},"objects":{},"types":{"State":{"name":"State","svg":"<style>.svg-type-state{display:block;color:black;overflow:auto;padding:9px;border:solid 2px #ccc;background:#ffffee;width:auto;}</style><div class=\"svg-type-state\" style=\"width:${width}px\">\n<div style=\"font-weight: bold;border-bottom: solid 1px #333; padding-bottom: 5px; margin-bottom; 5px\">STATE</div>\n${text}\n</div>","width":"190","height":"70"},"Event":{"name":"Event","svg":"<style>.svg-type-event{display:block;color:black;overflow:auto;padding:9px;border:solid 2px #ccc;background:#ffeeee;width:auto;}</style><div class=\"svg-type-event\" style=\"width:${width}px\">\n<div style=\"font-weight: bold;border-bottom: solid 1px #333; padding-bottom: 5px; margin-bottom; 5px\">EVENT</div>\n<div>\n${text}\n</div>\n</div>","width":"190","height":"60"}},"url":"/current","parent":""}}
@@ -0,0 +1 @@
1
+ {"current":{"progress":0,"settings":{"colored":false,"title":"SourceResettable state change"},"objects":{},"types":{"State":{"name":"State","svg":"<style>.svg-type-state{display:block;color:black;overflow:auto;padding:9px;border:solid 2px #ccc;background:#ffffee;width:auto;}</style><div class=\"svg-type-state\" style=\"width:${width}px\">\n<div style=\"font-weight: bold;border-bottom: solid 1px #333; padding-bottom: 5px; margin-bottom; 5px\">STATE</div>\n${text}\n</div>","width":"190","height":"70"},"Event":{"name":"Event","svg":"<style>.svg-type-event{display:block;color:black;overflow:auto;padding:9px;border:solid 2px #ccc;background:#ffeeee;width:auto;}</style><div class=\"svg-type-event\" style=\"width:${width}px\">\n<div style=\"font-weight: bold;border-bottom: solid 1px #333; padding-bottom: 5px; margin-bottom; 5px\">EVENT</div>\n<div>\n${text}\n</div>\n</div>","width":"190","height":"60"}},"url":"/current","parent":""}}
@@ -0,0 +1 @@
1
+ {"current":{"progress":0,"settings":{"colored":false,"title":"SourceSequence state change"},"objects":{},"types":{"State":{"name":"State","svg":"<style>.svg-type-state{display:block;color:black;overflow:auto;padding:9px;border:solid 2px #ccc;background:#ffffee;width:auto;}</style><div class=\"svg-type-state\" style=\"width:${width}px\">\n<div style=\"font-weight: bold;border-bottom: solid 1px #333; padding-bottom: 5px; margin-bottom; 5px\">STATE</div>\n${text}\n</div>","width":"190","height":"70"},"Event":{"name":"Event","svg":"<style>.svg-type-event{display:block;color:black;overflow:auto;padding:9px;border:solid 2px #ccc;background:#ffeeee;width:auto;}</style><div class=\"svg-type-event\" style=\"width:${width}px\">\n<div style=\"font-weight: bold;border-bottom: solid 1px #333; padding-bottom: 5px; margin-bottom; 5px\">EVENT</div>\n<div>\n${text}\n</div>\n</div>","width":"190","height":"60"}},"url":"/current","parent":""}}
@@ -0,0 +1 @@
1
+ {"current":{"progress":0,"settings":{"colored":false,"title":"SourceSync state change"},"objects":{},"types":{"State":{"name":"State","svg":"<style>.svg-type-state{display:block;color:black;overflow:auto;padding:9px;border:solid 2px #ccc;background:#ffffee;width:auto;}</style><div class=\"svg-type-state\" style=\"width:${width}px\">\n<div style=\"font-weight: bold;border-bottom: solid 1px #333; padding-bottom: 5px; margin-bottom; 5px\">STATE</div>\n${text}\n</div>","width":"190","height":"70"},"Event":{"name":"Event","svg":"<style>.svg-type-event{display:block;color:black;overflow:auto;padding:9px;border:solid 2px #ccc;background:#ffeeee;width:auto;}</style><div class=\"svg-type-event\" style=\"width:${width}px\">\n<div style=\"font-weight: bold;border-bottom: solid 1px #333; padding-bottom: 5px; margin-bottom; 5px\">EVENT</div>\n<div>\n${text}\n</div>\n</div>","width":"190","height":"60"}},"url":"/current","parent":""}}