signalium 1.0.2 → 1.1.0

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 (136) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/CHANGELOG.md +12 -0
  3. package/dist/cjs/config.d.ts +2 -2
  4. package/dist/cjs/config.d.ts.map +1 -1
  5. package/dist/cjs/config.js.map +1 -1
  6. package/dist/cjs/hooks.d.ts.map +1 -1
  7. package/dist/cjs/hooks.js +14 -2
  8. package/dist/cjs/hooks.js.map +1 -1
  9. package/dist/cjs/index.d.ts +1 -1
  10. package/dist/cjs/index.d.ts.map +1 -1
  11. package/dist/cjs/index.js +2 -1
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/internals/async.d.ts +1 -1
  14. package/dist/cjs/internals/async.d.ts.map +1 -1
  15. package/dist/cjs/internals/async.js +20 -15
  16. package/dist/cjs/internals/async.js.map +1 -1
  17. package/dist/cjs/internals/connect.d.ts.map +1 -1
  18. package/dist/cjs/internals/connect.js +6 -0
  19. package/dist/cjs/internals/connect.js.map +1 -1
  20. package/dist/cjs/internals/contexts.d.ts +9 -2
  21. package/dist/cjs/internals/contexts.d.ts.map +1 -1
  22. package/dist/cjs/internals/contexts.js +37 -3
  23. package/dist/cjs/internals/contexts.js.map +1 -1
  24. package/dist/cjs/internals/derived.d.ts +15 -5
  25. package/dist/cjs/internals/derived.d.ts.map +1 -1
  26. package/dist/cjs/internals/derived.js +11 -11
  27. package/dist/cjs/internals/derived.js.map +1 -1
  28. package/dist/cjs/internals/get.js +2 -2
  29. package/dist/cjs/internals/get.js.map +1 -1
  30. package/dist/cjs/internals/scheduling.d.ts +2 -0
  31. package/dist/cjs/internals/scheduling.d.ts.map +1 -1
  32. package/dist/cjs/internals/scheduling.js +16 -1
  33. package/dist/cjs/internals/scheduling.js.map +1 -1
  34. package/dist/cjs/internals/state.d.ts +2 -2
  35. package/dist/cjs/internals/state.d.ts.map +1 -1
  36. package/dist/cjs/internals/utils/equals.d.ts +2 -0
  37. package/dist/cjs/internals/utils/equals.d.ts.map +1 -1
  38. package/dist/cjs/internals/utils/equals.js +5 -3
  39. package/dist/cjs/internals/utils/equals.js.map +1 -1
  40. package/dist/cjs/react/context.d.ts.map +1 -1
  41. package/dist/cjs/react/context.js +5 -0
  42. package/dist/cjs/react/context.js.map +1 -1
  43. package/dist/cjs/react/provider.d.ts.map +1 -1
  44. package/dist/cjs/react/provider.js +0 -4
  45. package/dist/cjs/react/provider.js.map +1 -1
  46. package/dist/cjs/react/rendering.d.ts +2 -0
  47. package/dist/cjs/react/rendering.d.ts.map +1 -0
  48. package/dist/cjs/react/rendering.js +25 -0
  49. package/dist/cjs/react/rendering.js.map +1 -0
  50. package/dist/cjs/react/signal-value.d.ts +1 -1
  51. package/dist/cjs/react/signal-value.d.ts.map +1 -1
  52. package/dist/cjs/react/signal-value.js +4 -53
  53. package/dist/cjs/react/signal-value.js.map +1 -1
  54. package/dist/cjs/react/state.d.ts +2 -2
  55. package/dist/cjs/react/state.d.ts.map +1 -1
  56. package/dist/cjs/react/state.js.map +1 -1
  57. package/dist/cjs/types.d.ts +13 -1
  58. package/dist/cjs/types.d.ts.map +1 -1
  59. package/dist/esm/config.d.ts +2 -2
  60. package/dist/esm/config.d.ts.map +1 -1
  61. package/dist/esm/config.js.map +1 -1
  62. package/dist/esm/hooks.d.ts.map +1 -1
  63. package/dist/esm/hooks.js +14 -2
  64. package/dist/esm/hooks.js.map +1 -1
  65. package/dist/esm/index.d.ts +1 -1
  66. package/dist/esm/index.d.ts.map +1 -1
  67. package/dist/esm/index.js +1 -1
  68. package/dist/esm/index.js.map +1 -1
  69. package/dist/esm/internals/async.d.ts +1 -1
  70. package/dist/esm/internals/async.d.ts.map +1 -1
  71. package/dist/esm/internals/async.js +21 -16
  72. package/dist/esm/internals/async.js.map +1 -1
  73. package/dist/esm/internals/connect.d.ts.map +1 -1
  74. package/dist/esm/internals/connect.js +6 -0
  75. package/dist/esm/internals/connect.js.map +1 -1
  76. package/dist/esm/internals/contexts.d.ts +9 -2
  77. package/dist/esm/internals/contexts.d.ts.map +1 -1
  78. package/dist/esm/internals/contexts.js +35 -3
  79. package/dist/esm/internals/contexts.js.map +1 -1
  80. package/dist/esm/internals/derived.d.ts +15 -5
  81. package/dist/esm/internals/derived.d.ts.map +1 -1
  82. package/dist/esm/internals/derived.js +11 -11
  83. package/dist/esm/internals/derived.js.map +1 -1
  84. package/dist/esm/internals/get.js +2 -2
  85. package/dist/esm/internals/get.js.map +1 -1
  86. package/dist/esm/internals/scheduling.d.ts +2 -0
  87. package/dist/esm/internals/scheduling.d.ts.map +1 -1
  88. package/dist/esm/internals/scheduling.js +14 -0
  89. package/dist/esm/internals/scheduling.js.map +1 -1
  90. package/dist/esm/internals/state.d.ts +2 -2
  91. package/dist/esm/internals/state.d.ts.map +1 -1
  92. package/dist/esm/internals/utils/equals.d.ts +2 -0
  93. package/dist/esm/internals/utils/equals.d.ts.map +1 -1
  94. package/dist/esm/internals/utils/equals.js +2 -2
  95. package/dist/esm/internals/utils/equals.js.map +1 -1
  96. package/dist/esm/react/context.d.ts.map +1 -1
  97. package/dist/esm/react/context.js +5 -0
  98. package/dist/esm/react/context.js.map +1 -1
  99. package/dist/esm/react/provider.d.ts.map +1 -1
  100. package/dist/esm/react/provider.js +0 -4
  101. package/dist/esm/react/provider.js.map +1 -1
  102. package/dist/esm/react/rendering.d.ts +2 -0
  103. package/dist/esm/react/rendering.d.ts.map +1 -0
  104. package/dist/esm/react/rendering.js +19 -0
  105. package/dist/esm/react/rendering.js.map +1 -0
  106. package/dist/esm/react/signal-value.d.ts +1 -1
  107. package/dist/esm/react/signal-value.d.ts.map +1 -1
  108. package/dist/esm/react/signal-value.js +2 -18
  109. package/dist/esm/react/signal-value.js.map +1 -1
  110. package/dist/esm/react/state.d.ts +2 -2
  111. package/dist/esm/react/state.d.ts.map +1 -1
  112. package/dist/esm/react/state.js.map +1 -1
  113. package/dist/esm/types.d.ts +13 -1
  114. package/dist/esm/types.d.ts.map +1 -1
  115. package/package.json +1 -1
  116. package/src/__tests__/context.test.ts +55 -1
  117. package/src/__tests__/gc.test.ts +256 -0
  118. package/src/__tests__/utils/instrumented-hooks.ts +8 -11
  119. package/src/config.ts +5 -3
  120. package/src/hooks.ts +17 -3
  121. package/src/index.ts +8 -1
  122. package/src/internals/async.ts +13 -8
  123. package/src/internals/connect.ts +8 -0
  124. package/src/internals/contexts.ts +45 -5
  125. package/src/internals/derived.ts +25 -16
  126. package/src/internals/get.ts +2 -2
  127. package/src/internals/scheduling.ts +20 -0
  128. package/src/internals/state.ts +3 -3
  129. package/src/internals/utils/equals.ts +2 -2
  130. package/src/react/__tests__/contexts.test.tsx +20 -1
  131. package/src/react/context.ts +6 -0
  132. package/src/react/provider.tsx +0 -6
  133. package/src/react/rendering.ts +25 -0
  134. package/src/react/signal-value.ts +3 -26
  135. package/src/react/state.ts +3 -3
  136. package/src/types.ts +15 -1
@@ -1,12 +1,12 @@
1
1
 
2
- > signalium@1.0.2 build
2
+ > signalium@1.1.0 build
3
3
  > npm run build:esm && npm run build:cjs
4
4
 
5
5
 
6
- > signalium@1.0.2 build:esm
6
+ > signalium@1.1.0 build:esm
7
7
  > tsc
8
8
 
9
9
 
10
- > signalium@1.0.2 build:cjs
10
+ > signalium@1.1.0 build:cjs
11
11
  > tsc --module commonjs --outDir dist/cjs --moduleResolution node
12
12
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # signalium
2
2
 
3
+ ## 1.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 1a70550: Add setRootContexts
8
+ - 0f58c51: Add better GC semantics and manual collection API
9
+ - 32fafd4: Add peek and update to StateSignal public API
10
+
11
+ ### Patch Changes
12
+
13
+ - 1fbd19f: Fix useFrameworkScope integration in React
14
+
3
15
  ## 1.0.2
4
16
 
5
17
  ### Patch Changes
@@ -10,12 +10,12 @@ interface SignalHooksConfig {
10
10
  runBatch: BatchFn;
11
11
  getFrameworkScope: () => SignalScope | undefined;
12
12
  useStateSignal: <T>(signal: StateSignal<T>) => T;
13
- useDerivedSignal: <T>(signal: DerivedSignal<T, unknown[]>) => ReactiveValue<T>;
13
+ useDerivedSignal: <T, Args extends unknown[]>(signal: DerivedSignal<T, Args>) => ReactiveValue<T>;
14
14
  }
15
15
  export declare let scheduleFlush: FlushFn;
16
16
  export declare let runBatch: BatchFn;
17
17
  export declare let getFrameworkScope: () => SignalScope | undefined;
18
- export declare function useDerivedSignal<T>(signal: DerivedSignal<T, any[]>): ReactiveValue<T>;
18
+ export declare function useDerivedSignal<T, Args extends unknown[]>(signal: DerivedSignal<T, Args>): ReactiveValue<T>;
19
19
  export declare function useStateSignal<T>(signal: StateSignal<T>): T;
20
20
  export declare function setConfig(cfg: Partial<SignalHooksConfig>): void;
21
21
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,MAAM,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC;AAEvC,MAAM,MAAM,OAAO,GAAG,CAAC,EAAE,EAAE,aAAa,KAAK,IAAI,CAAC;AAClD,MAAM,MAAM,OAAO,GAAG,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;AAE/C,UAAU,iBAAiB;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IACjD,cAAc,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACjD,gBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC;CAChF;AAED,eAAO,IAAI,aAAa,EAAE,OAIzB,CAAC;AAEF,eAAO,IAAI,QAAQ,EAAE,OAAoB,CAAC;AAE1C,eAAO,IAAI,iBAAiB,EAAE,MAAM,WAAW,GAAG,SAA2B,CAAC;AAK9E,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAOrF;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAE3D;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAMxD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,MAAM,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC;AAEvC,MAAM,MAAM,OAAO,GAAG,CAAC,EAAE,EAAE,aAAa,KAAK,IAAI,CAAC;AAClD,MAAM,MAAM,OAAO,GAAG,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;AAE/C,UAAU,iBAAiB;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IACjD,cAAc,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACjD,gBAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC;CACnG;AAED,eAAO,IAAI,aAAa,EAAE,OAIzB,CAAC;AAEF,eAAO,IAAI,QAAQ,EAAE,OAAoB,CAAC;AAE1C,eAAO,IAAI,iBAAiB,EAAE,MAAM,WAAW,GAAG,SAA2B,CAAC;AAO9E,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAO5G;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAE3D;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAMxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";;;AAgCA,4CAOC;AAED,wCAEC;AAED,8BAMC;AA/CD,+CAAsD;AAe/C,IAAI,aAAa,GAAY,aAAa,CAAC,EAAE;IAClD,UAAU,CAAC,GAAG,EAAE;QACd,aAAa,EAAE,CAAC;IAClB,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC,CAAC;AAJS,QAAA,aAAa,iBAItB;AAEK,IAAI,QAAQ,GAAY,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AAA/B,QAAA,QAAQ,YAAuB;AAEnC,IAAI,iBAAiB,GAAkC,GAAG,EAAE,CAAC,SAAS,CAAC;AAAnE,QAAA,iBAAiB,qBAAkD;AAE9E,IAAI,uBAAuB,GAAqC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AACvF,IAAI,yBAAyB,GAAiE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AAErH,SAAgB,gBAAgB,CAAI,MAA+B;IACjE,IAAI,yBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,sDAAsD;QACtD,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,SAAgB,cAAc,CAAI,MAAsB;IACtD,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,SAAS,CAAC,GAA+B;IACvD,qBAAa,GAAG,GAAG,CAAC,aAAa,IAAI,qBAAa,CAAC;IACnD,gBAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,gBAAQ,CAAC;IACpC,yBAAiB,GAAG,GAAG,CAAC,iBAAiB,IAAI,yBAAiB,CAAC;IAC/D,uBAAuB,GAAG,GAAG,CAAC,cAAc,IAAI,uBAAuB,CAAC;IACxE,yBAAyB,GAAG,GAAG,CAAC,gBAAgB,IAAI,yBAAyB,CAAC;AAChF,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";;;AAkCA,4CAOC;AAED,wCAEC;AAED,8BAMC;AAjDD,+CAAsD;AAe/C,IAAI,aAAa,GAAY,aAAa,CAAC,EAAE;IAClD,UAAU,CAAC,GAAG,EAAE;QACd,aAAa,EAAE,CAAC;IAClB,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC,CAAC;AAJS,QAAA,aAAa,iBAItB;AAEK,IAAI,QAAQ,GAAY,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AAA/B,QAAA,QAAQ,YAAuB;AAEnC,IAAI,iBAAiB,GAAkC,GAAG,EAAE,CAAC,SAAS,CAAC;AAAnE,QAAA,iBAAiB,qBAAkD;AAE9E,IAAI,uBAAuB,GAAqC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AACvF,IAAI,yBAAyB,GAEL,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AAE/C,SAAgB,gBAAgB,CAA4B,MAA8B;IACxF,IAAI,yBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,sDAAsD;QACtD,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,SAAgB,cAAc,CAAI,MAAsB;IACtD,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,SAAS,CAAC,GAA+B;IACvD,qBAAa,GAAG,GAAG,CAAC,aAAa,IAAI,qBAAa,CAAC;IACnD,gBAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,gBAAQ,CAAC;IACpC,yBAAiB,GAAG,GAAG,CAAC,iBAAiB,IAAI,yBAAiB,CAAC;IAC/D,uBAAuB,GAAG,GAAG,CAAC,cAAc,IAAI,uBAAuB,CAAC;IACxE,yBAAyB,GAAG,GAAG,CAAC,gBAAgB,IAAI,yBAAyB,CAAC;AAChF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,MAAM,EACN,aAAa,EACb,eAAe,EACf,KAAK,qBAAqB,EAC3B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAmB,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,eAAO,MAAM,KAAK,0BAAoB,CAAC;AAEvC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAChD,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EACxB,IAAI,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAC7C,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC;AACvC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAChD,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EACxB,IAAI,EAAE,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,GACnC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAa5C,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AACvH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,EAC7B,IAAI,EAAE,qBAAqB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GACxC,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAU3B,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,MACxC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAC1B,OAAO,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAC7C,YAAY,CAAC,CAAC,EAAE,IAAI,CAItB,CAAC;AAEF,wBAAgB,OAAO,CAAC,CAAC,EACvB,EAAE,EAAE,MAAM,CAAC,EACX,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5E,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAE1B"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,MAAM,EACN,aAAa,EACb,eAAe,EACf,KAAK,qBAAqB,EAC3B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAmB,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGpC,eAAO,MAAM,KAAK,0BAAoB,CAAC;AAEvC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAChD,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EACxB,IAAI,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAC7C,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC;AACvC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAChD,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EACxB,IAAI,EAAE,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,GACnC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAoB5C,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AACvH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,EAC7B,IAAI,EAAE,qBAAqB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GACxC,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAU3B,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,MACxC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAC1B,OAAO,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAC7C,YAAY,CAAC,CAAC,EAAE,IAAI,CAItB,CAAC;AAEF,wBAAgB,OAAO,CAAC,CAAC,EACvB,EAAE,EAAE,MAAM,CAAC,EACX,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5E,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAQ1B"}
package/dist/cjs/hooks.js CHANGED
@@ -9,11 +9,18 @@ const contexts_js_1 = require("./internals/contexts.js");
9
9
  const state_js_1 = require("./internals/state.js");
10
10
  const derived_js_1 = require("./internals/derived.js");
11
11
  const async_js_1 = require("./internals/async.js");
12
+ const equals_js_1 = require("./internals/utils/equals.js");
12
13
  exports.state = state_js_1.createStateSignal;
13
14
  function reactive(fn, opts) {
15
+ const def = {
16
+ compute: fn,
17
+ equals: (0, equals_js_1.equalsFrom)(opts?.equals),
18
+ shouldGC: opts?.shouldGC,
19
+ isSubscription: false,
20
+ };
14
21
  return (...args) => {
15
22
  const scope = (0, contexts_js_1.getCurrentScope)();
16
- const signal = scope.get(fn, args, opts);
23
+ const signal = scope.get(def, args, opts);
17
24
  return (0, config_js_1.useDerivedSignal)(signal);
18
25
  };
19
26
  }
@@ -27,6 +34,11 @@ const task = (fn, opts) => {
27
34
  };
28
35
  exports.task = task;
29
36
  function watcher(fn, opts) {
30
- return (0, derived_js_1.createDerivedSignal)(fn, undefined, undefined, opts?.scope, opts);
37
+ const def = {
38
+ compute: fn,
39
+ equals: (0, equals_js_1.equalsFrom)(opts?.equals),
40
+ isSubscription: false,
41
+ };
42
+ return (0, derived_js_1.createDerivedSignal)(def, undefined, undefined, opts?.scope, opts);
31
43
  }
32
44
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/hooks.ts"],"names":[],"mappings":";;;AA2BA,4BAUC;AAOD,oCAOC;AAWD,0BAKC;AAzDD,2CAA+C;AAC/C,yDAAuE;AACvE,mDAAyD;AACzD,uDAA6D;AAC7D,mDAAuD;AAG1C,QAAA,KAAK,GAAG,4BAAiB,CAAC;AAUvC,SAAgB,QAAQ,CACtB,EAAwB,EACxB,IAA8C;IAE9C,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,IAAA,6BAAe,GAAE,CAAC;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,EAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAEhD,OAAO,IAAA,4BAAgB,EAAC,MAAM,CAAE,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC;AAOD,SAAgB,YAAY,CAC1B,SAA6B,EAC7B,IAAmD;IAEnD,MAAM,KAAK,GAAG,IAAA,6BAAe,GAAE,CAAC;IAEhC,OAAO,0BAAe,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACpE,CAAC;AAEM,MAAM,IAAI,GAAG,CAClB,EAAiC,EACjC,IAA8C,EACvB,EAAE;IACzB,MAAM,KAAK,GAAG,IAAA,6BAAe,GAAE,CAAC;IAEhC,OAAO,0BAAe,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC,CAAC;AAPW,QAAA,IAAI,QAOf;AAEF,SAAgB,OAAO,CACrB,EAAW,EACX,IAA6E;IAE7E,OAAO,IAAA,gCAAmB,EAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/hooks.ts"],"names":[],"mappings":";;;AA4BA,4BAiBC;AAOD,oCAOC;AAWD,0BAWC;AAvED,2CAA+C;AAC/C,yDAAuE;AACvE,mDAAyD;AACzD,uDAAsF;AACtF,mDAAuD;AAEvD,2DAAyD;AAE5C,QAAA,KAAK,GAAG,4BAAiB,CAAC;AAUvC,SAAgB,QAAQ,CACtB,EAAwB,EACxB,IAA8C;IAE9C,MAAM,GAAG,GAAqC;QAC5C,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,IAAA,sBAAU,EAAC,IAAI,EAAE,MAAM,CAAC;QAChC,QAAQ,EAAE,IAAI,EAAE,QAAQ;QACxB,cAAc,EAAE,KAAK;KACtB,CAAC;IAEF,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,IAAA,6BAAe,GAAE,CAAC;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAE1C,OAAO,IAAA,4BAAgB,EAAC,MAAM,CAAE,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC;AAOD,SAAgB,YAAY,CAC1B,SAA6B,EAC7B,IAAmD;IAEnD,MAAM,KAAK,GAAG,IAAA,6BAAe,GAAE,CAAC;IAEhC,OAAO,0BAAe,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACpE,CAAC;AAEM,MAAM,IAAI,GAAG,CAClB,EAAiC,EACjC,IAA8C,EACvB,EAAE;IACzB,MAAM,KAAK,GAAG,IAAA,6BAAe,GAAE,CAAC;IAEhC,OAAO,0BAAe,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC,CAAC;AAPW,QAAA,IAAI,QAOf;AAEF,SAAgB,OAAO,CACrB,EAAW,EACX,IAA6E;IAE7E,MAAM,GAAG,GAA0C;QACjD,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,IAAA,sBAAU,EAAC,IAAI,EAAE,MAAM,CAAC;QAChC,cAAc,EAAE,KAAK;KACtB,CAAC;IAEF,OAAO,IAAA,gCAAmB,EAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC3E,CAAC"}
@@ -2,7 +2,7 @@ export type * from './types.js';
2
2
  export { state, reactive, subscription, task, watcher } from './hooks.js';
3
3
  export { isReactivePromise, isReactiveTask, isReactiveSubscription } from './internals/async.js';
4
4
  export { callback } from './internals/get.js';
5
- export { createContext, useContext, withContexts, SignalScope, CONTEXT_KEY } from './internals/contexts.js';
5
+ export { createContext, useContext, withContexts, setRootContexts, SignalScope, CONTEXT_KEY, } from './internals/contexts.js';
6
6
  export { setConfig } from './config.js';
7
7
  export { hashValue, registerCustomHash } from './internals/utils/hash.js';
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAC;AAEhC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEjG,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE5G,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAC;AAEhC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEjG,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EACL,aAAa,EACb,UAAU,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerCustomHash = exports.hashValue = exports.setConfig = exports.CONTEXT_KEY = exports.SignalScope = exports.withContexts = exports.useContext = exports.createContext = exports.callback = exports.isReactiveSubscription = exports.isReactiveTask = exports.isReactivePromise = exports.watcher = exports.task = exports.subscription = exports.reactive = exports.state = void 0;
3
+ exports.registerCustomHash = exports.hashValue = exports.setConfig = exports.CONTEXT_KEY = exports.SignalScope = exports.setRootContexts = exports.withContexts = exports.useContext = exports.createContext = exports.callback = exports.isReactiveSubscription = exports.isReactiveTask = exports.isReactivePromise = exports.watcher = exports.task = exports.subscription = exports.reactive = exports.state = void 0;
4
4
  var hooks_js_1 = require("./hooks.js");
5
5
  Object.defineProperty(exports, "state", { enumerable: true, get: function () { return hooks_js_1.state; } });
6
6
  Object.defineProperty(exports, "reactive", { enumerable: true, get: function () { return hooks_js_1.reactive; } });
@@ -17,6 +17,7 @@ var contexts_js_1 = require("./internals/contexts.js");
17
17
  Object.defineProperty(exports, "createContext", { enumerable: true, get: function () { return contexts_js_1.createContext; } });
18
18
  Object.defineProperty(exports, "useContext", { enumerable: true, get: function () { return contexts_js_1.useContext; } });
19
19
  Object.defineProperty(exports, "withContexts", { enumerable: true, get: function () { return contexts_js_1.withContexts; } });
20
+ Object.defineProperty(exports, "setRootContexts", { enumerable: true, get: function () { return contexts_js_1.setRootContexts; } });
20
21
  Object.defineProperty(exports, "SignalScope", { enumerable: true, get: function () { return contexts_js_1.SignalScope; } });
21
22
  Object.defineProperty(exports, "CONTEXT_KEY", { enumerable: true, get: function () { return contexts_js_1.CONTEXT_KEY; } });
22
23
  var config_js_1 = require("./config.js");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAEA,uCAA0E;AAAjE,iGAAA,KAAK,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,gGAAA,IAAI,OAAA;AAAE,mGAAA,OAAO,OAAA;AAErD,iDAAiG;AAAxF,6GAAA,iBAAiB,OAAA;AAAE,0GAAA,cAAc,OAAA;AAAE,kHAAA,sBAAsB,OAAA;AAElE,6CAA8C;AAArC,kGAAA,QAAQ,OAAA;AAEjB,uDAA4G;AAAnG,4GAAA,aAAa,OAAA;AAAE,yGAAA,UAAU,OAAA;AAAE,2GAAA,YAAY,OAAA;AAAE,0GAAA,WAAW,OAAA;AAAE,0GAAA,WAAW,OAAA;AAE1E,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAElB,qDAA0E;AAAjE,oGAAA,SAAS,OAAA;AAAE,6GAAA,kBAAkB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAEA,uCAA0E;AAAjE,iGAAA,KAAK,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,gGAAA,IAAI,OAAA;AAAE,mGAAA,OAAO,OAAA;AAErD,iDAAiG;AAAxF,6GAAA,iBAAiB,OAAA;AAAE,0GAAA,cAAc,OAAA;AAAE,kHAAA,sBAAsB,OAAA;AAElE,6CAA8C;AAArC,kGAAA,QAAQ,OAAA;AAEjB,uDAOiC;AAN/B,4GAAA,aAAa,OAAA;AACb,yGAAA,UAAU,OAAA;AACV,2GAAA,YAAY,OAAA;AACZ,8GAAA,eAAe,OAAA;AACf,0GAAA,WAAW,OAAA;AACX,0GAAA,WAAW,OAAA;AAGb,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAElB,qDAA0E;AAAjE,oGAAA,SAAS,OAAA;AAAE,6GAAA,kBAAkB,OAAA"}
@@ -14,7 +14,7 @@ export declare class ReactivePromise<T, Args extends unknown[] = unknown[]> impl
14
14
  _awaitSubs: Map<WeakRef<DerivedSignal<unknown, unknown[]>>, PromiseEdge>;
15
15
  private _version;
16
16
  private _boundRun;
17
- static createPromise<T>(promise: Promise<T>, signal?: DerivedSignal<T, unknown[]>, initValue?: T | undefined): ReactivePromise<unknown, unknown[]>;
17
+ static createPromise<T>(promise: Promise<T>, signal?: DerivedSignal<T, unknown[]>, initValue?: T | undefined): ReactivePromise<T, unknown[]>;
18
18
  static createSubscription<T>(subscribe: SignalSubscribe<T>, scope: SignalScope, opts?: Partial<SignalOptionsWithInit<T, unknown[]>>): ReactivePromise<T, unknown[]>;
19
19
  static createTask<T, Args extends unknown[]>(task: (...args: Args) => Promise<T>, scope: SignalScope, opts?: Partial<SignalOptionsWithInit<T, Args>>): ReactiveTask<T, Args>;
20
20
  private _initFlags;
@@ -1 +1 @@
1
- {"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../../src/internals/async.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../../src/internals/async.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,7 @@ class ReactivePromise {
32
32
  static createPromise(promise, signal, initValue) {
33
33
  const p = new ReactivePromise();
34
34
  p._signal = signal;
35
- p._equals = signal?.equals ?? ((a, b) => a === b);
35
+ p._equals = signal?.def.equals ?? equals_js_1.DEFAULT_EQUALS;
36
36
  p._initFlags(1 /* AsyncFlags.Pending */, initValue);
37
37
  if (promise) {
38
38
  p._setPromise(promise);
@@ -73,20 +73,25 @@ class ReactivePromise {
73
73
  p._setError(error);
74
74
  },
75
75
  };
76
- p._signal = (0, derived_js_1.createDerivedSignal)(() => {
77
- if (active === false) {
78
- currentSub = subscribe(state);
79
- active = true;
80
- }
81
- else if (typeof currentSub === 'function' || currentSub === undefined) {
82
- currentSub?.();
83
- currentSub = subscribe(state);
84
- }
85
- else {
86
- currentSub.update?.();
87
- }
88
- return unsubscribe;
89
- }, [], undefined, scope, opts, true);
76
+ const def = {
77
+ compute: () => {
78
+ if (active === false) {
79
+ currentSub = subscribe(state);
80
+ active = true;
81
+ }
82
+ else if (typeof currentSub === 'function' || currentSub === undefined) {
83
+ currentSub?.();
84
+ currentSub = subscribe(state);
85
+ }
86
+ else {
87
+ currentSub.update?.();
88
+ }
89
+ return unsubscribe;
90
+ },
91
+ equals: equals_js_1.DEFAULT_EQUALS,
92
+ isSubscription: true,
93
+ };
94
+ p._signal = (0, derived_js_1.createDerivedSignal)(def, [], undefined, scope, opts);
90
95
  p._equals = (0, equals_js_1.equalsFrom)(opts?.equals);
91
96
  p._initFlags(128 /* AsyncFlags.isSubscription */ | 1 /* AsyncFlags.Pending */, initValue);
92
97
  return p;
@@ -1 +1 @@
1
- {"version":3,"file":"async.js","sourceRoot":"","sources":["../../../src/internals/async.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"async.js","sourceRoot":"","sources":["../../../src/internals/async.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../src/internals/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,cAAc,CAAC;AAG7D,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAiBjE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,SAAI,QAkBvE"}
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../src/internals/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,cAAc,CAAC;AAG7D,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAoBjE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,SAAI,QAuBvE"}
@@ -11,6 +11,8 @@ function watchSignal(signal) {
11
11
  // If > 0, already watching, return
12
12
  if (watchCount > 0)
13
13
  return;
14
+ // If signal is being watched again, remove from GC candidates
15
+ signal.scope?.removeFromGc(signal);
14
16
  for (const dep of signal.deps.keys()) {
15
17
  watchSignal(dep);
16
18
  }
@@ -33,5 +35,9 @@ function unwatchSignal(signal, count = 1) {
33
35
  // teardown the subscription
34
36
  signal.value?.();
35
37
  }
38
+ // If watchCount is now zero, mark the signal for GC
39
+ if (newWatchCount === 0 && signal.scope) {
40
+ signal.scope.markForGc(signal);
41
+ }
36
42
  }
37
43
  //# sourceMappingURL=connect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/internals/connect.ts"],"names":[],"mappings":";;AAGA,kCAiBC;AAED,sCAkBC;AAxCD,6CAA6D;AAC7D,qCAAuC;AAEvC,SAAgB,WAAW,CAAC,MAA+B;IACzD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAC9B,MAAM,aAAa,GAAG,UAAU,GAAG,CAAC,CAAC;IAErC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC;IAElC,mCAAmC;IACnC,IAAI,UAAU,GAAG,CAAC;QAAE,OAAO;IAE3B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACrC,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,IAAA,2BAAc,EAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,6BAA6B;QAC7B,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAAC,MAA+B,EAAE,KAAK,GAAG,CAAC;IACtE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;IAEtD,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC;IAElC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACrC,aAAa,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,IAAA,2BAAc,EAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,4BAA4B;QAC5B,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/internals/connect.ts"],"names":[],"mappings":";;AAGA,kCAoBC;AAED,sCAuBC;AAhDD,6CAA6D;AAC7D,qCAAuC;AAEvC,SAAgB,WAAW,CAAC,MAA+B;IACzD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAC9B,MAAM,aAAa,GAAG,UAAU,GAAG,CAAC,CAAC;IAErC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC;IAElC,mCAAmC;IACnC,IAAI,UAAU,GAAG,CAAC;QAAE,OAAO;IAE3B,8DAA8D;IAC9D,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAEnC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACrC,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,IAAA,2BAAc,EAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,6BAA6B;QAC7B,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAAC,MAA+B,EAAE,KAAK,GAAG,CAAC;IACtE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;IAEtD,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC;IAElC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACrC,aAAa,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,IAAA,2BAAc,EAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,4BAA4B;QAC5B,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;IACnB,CAAC;IAED,oDAAoD;IACpD,IAAI,aAAa,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { SignalOptionsWithInit } from '../types.js';
2
- import { DerivedSignal } from './derived.js';
2
+ import { DerivedSignal, DerivedSignalDefinition } from './derived.js';
3
3
  export declare const CONTEXT_KEY: unique symbol;
4
4
  export type Context<T> = {
5
5
  defaultValue: T;
@@ -20,14 +20,21 @@ export declare class SignalScope {
20
20
  private contexts;
21
21
  private children;
22
22
  private signals;
23
+ private gcCandidates;
23
24
  getChild(contexts: [ContextImpl<unknown>, unknown][]): SignalScope;
24
25
  getContext<T>(_context: Context<T>): T | undefined;
25
- get<T, Args extends unknown[]>(fn: (...args: Args) => T, args: Args, opts?: Partial<SignalOptionsWithInit<T, Args>>): DerivedSignal<T, Args>;
26
+ get<T, Args extends unknown[]>(def: DerivedSignalDefinition<T, Args>, args: Args, opts?: Partial<SignalOptionsWithInit<T, Args>>): DerivedSignal<T, Args>;
27
+ markForGc(signal: DerivedSignal<any, any>): void;
28
+ removeFromGc(signal: DerivedSignal<any, any>): void;
29
+ forceGc(signal: DerivedSignal<any, any>): void;
30
+ sweepGc(): void;
26
31
  }
27
32
  export declare let ROOT_SCOPE: SignalScope;
33
+ export declare function setRootContexts<C extends unknown[], U>(contexts: [...ContextPair<C>]): void;
28
34
  export declare const clearRootScope: () => void;
29
35
  export declare const getCurrentScope: () => SignalScope;
30
36
  export declare function withContexts<C extends unknown[], U>(contexts: [...ContextPair<C>], fn: () => U): U;
31
37
  export declare const withScope: <T>(scope: SignalScope, fn: () => T) => T;
32
38
  export declare const useContext: <T>(context: Context<T>) => T;
39
+ export declare function forceGc(_signal: object): void;
33
40
  //# sourceMappingURL=contexts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contexts.d.ts","sourceRoot":"","sources":["../../../src/internals/contexts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,aAAa,EAAuB,MAAM,cAAc,CAAC;AAIlE,eAAO,MAAM,WAAW,eAA8B,CAAC;AAEvD,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACvB,YAAY,EAAE,CAAC,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI;KAC5C,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/C,CAAC;AAIF,qBAAa,WAAW,CAAC,CAAC;aAKN,YAAY,EAAE,CAAC;IAJjC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;gBAGH,YAAY,EAAE,CAAC,EAC/B,IAAI,CAAC,EAAE,MAAM;CAKhB;AAED,eAAO,MAAM,aAAa,GAAI,CAAC,gBAAgB,CAAC,gBAAgB,MAAM,KAAG,OAAO,CAAC,CAAC,CAEjF,CAAC;AAEF,qBAAa,WAAW;gBACV,QAAQ,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW;IAS7E,OAAO,CAAC,WAAW,CAAC,CAA0B;IAC9C,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,OAAO,CAAgD;IAE/D,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE;IAapD,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS;IAMlD,GAAG,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAC3B,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EACxB,IAAI,EAAE,IAAI,EACV,IAAI,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAC7C,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC;CAY1B;AAED,eAAO,IAAI,UAAU,aAAsB,CAAC;AAE5C,eAAO,MAAM,cAAc,YAE1B,CAAC;AAIF,eAAO,MAAM,eAAe,QAAO,WAElC,CAAC;AAEF,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAUlG;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,WAAW,MAAM,MAAM,CAAC,MAS3D,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,KAAG,CAUnD,CAAC"}
1
+ {"version":3,"file":"contexts.d.ts","sourceRoot":"","sources":["../../../src/internals/contexts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAuB,MAAM,cAAc,CAAC;AAK3F,eAAO,MAAM,WAAW,eAA8B,CAAC;AAEvD,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACvB,YAAY,EAAE,CAAC,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI;KAC5C,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/C,CAAC;AAIF,qBAAa,WAAW,CAAC,CAAC;aAKN,YAAY,EAAE,CAAC;IAJjC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;gBAGH,YAAY,EAAE,CAAC,EAC/B,IAAI,CAAC,EAAE,MAAM;CAKhB;AAED,eAAO,MAAM,aAAa,GAAI,CAAC,gBAAgB,CAAC,gBAAgB,MAAM,KAAG,OAAO,CAAC,CAAC,CAEjF,CAAC;AAEF,qBAAa,WAAW;gBACV,QAAQ,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW;IAS7E,OAAO,CAAC,WAAW,CAAC,CAA0B;IAC9C,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,OAAO,CAA8C;IAC7D,OAAO,CAAC,YAAY,CAAsC;IAE1D,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE;IAapD,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS;IAMlD,GAAG,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAC3B,GAAG,EAAE,uBAAuB,CAAC,CAAC,EAAE,IAAI,CAAC,EACrC,IAAI,EAAE,IAAI,EACV,IAAI,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAC7C,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC;IAazB,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;IAOzC,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;IAI5C,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;IAIvC,OAAO;CAaR;AAED,eAAO,IAAI,UAAU,aAAsB,CAAC;AAE5C,wBAAgB,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAE3F;AAED,eAAO,MAAM,cAAc,YAE1B,CAAC;AAIF,eAAO,MAAM,eAAe,QAAO,WAElC,CAAC;AAEF,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAUlG;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,WAAW,MAAM,MAAM,CAAC,MAS3D,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,KAAG,CAUnD,CAAC;AAEF,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,QAGtC"}
@@ -1,11 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useContext = exports.withScope = exports.getCurrentScope = exports.clearRootScope = exports.ROOT_SCOPE = exports.SignalScope = exports.createContext = exports.ContextImpl = exports.CONTEXT_KEY = void 0;
4
+ exports.setRootContexts = setRootContexts;
4
5
  exports.withContexts = withContexts;
6
+ exports.forceGc = forceGc;
5
7
  const config_js_1 = require("../config.js");
6
8
  const derived_js_1 = require("./derived.js");
7
9
  const get_js_1 = require("./get.js");
8
10
  const hash_js_1 = require("./utils/hash.js");
11
+ const scheduling_js_1 = require("./scheduling.js");
9
12
  exports.CONTEXT_KEY = Symbol('signalium:context');
10
13
  let CONTEXT_ID = 0;
11
14
  class ContextImpl {
@@ -35,6 +38,7 @@ class SignalScope {
35
38
  contexts;
36
39
  children = new Map();
37
40
  signals = new Map();
41
+ gcCandidates = new Set();
38
42
  getChild(contexts) {
39
43
  const key = (0, hash_js_1.hashValue)(contexts);
40
44
  let child = this.children.get(key);
@@ -48,19 +52,45 @@ class SignalScope {
48
52
  const context = _context;
49
53
  return this.contexts[context._key];
50
54
  }
51
- get(fn, args, opts) {
55
+ get(def, args, opts) {
52
56
  const paramKey = opts?.paramKey?.(...args);
53
- const key = (0, hash_js_1.hashReactiveFn)(fn, paramKey ? [paramKey] : args);
57
+ const key = (0, hash_js_1.hashReactiveFn)(def.compute, paramKey ? [paramKey] : args);
54
58
  let signal = this.signals.get(key);
55
59
  if (signal === undefined) {
56
- signal = (0, derived_js_1.createDerivedSignal)(fn, args, key, this, opts);
60
+ signal = (0, derived_js_1.createDerivedSignal)(def, args, key, this, opts);
57
61
  this.signals.set(key, signal);
58
62
  }
59
63
  return signal;
60
64
  }
65
+ markForGc(signal) {
66
+ if (!this.gcCandidates.has(signal)) {
67
+ this.gcCandidates.add(signal);
68
+ (0, scheduling_js_1.scheduleGcSweep)(this);
69
+ }
70
+ }
71
+ removeFromGc(signal) {
72
+ this.gcCandidates.delete(signal);
73
+ }
74
+ forceGc(signal) {
75
+ this.signals.delete(signal.key);
76
+ }
77
+ sweepGc() {
78
+ for (const signal of this.gcCandidates) {
79
+ if (signal.watchCount === 0) {
80
+ const { shouldGC } = signal.def;
81
+ if (!shouldGC || shouldGC(signal, signal.value, signal.args)) {
82
+ this.signals.delete(signal.key);
83
+ }
84
+ }
85
+ }
86
+ this.gcCandidates = new Set();
87
+ }
61
88
  }
62
89
  exports.SignalScope = SignalScope;
63
90
  exports.ROOT_SCOPE = new SignalScope([]);
91
+ function setRootContexts(contexts) {
92
+ exports.ROOT_SCOPE = new SignalScope(contexts, exports.ROOT_SCOPE);
93
+ }
64
94
  const clearRootScope = () => {
65
95
  exports.ROOT_SCOPE = new SignalScope([]);
66
96
  };
@@ -100,4 +130,8 @@ const useContext = (context) => {
100
130
  return scope.getContext(context) ?? context.defaultValue;
101
131
  };
102
132
  exports.useContext = useContext;
133
+ function forceGc(_signal) {
134
+ const signal = _signal;
135
+ signal.scope?.forceGc(signal);
136
+ }
103
137
  //# sourceMappingURL=contexts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contexts.js","sourceRoot":"","sources":["../../../src/internals/contexts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contexts.js","sourceRoot":"","sources":["../../../src/internals/contexts.ts"],"names":[],"mappings":"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"}
@@ -29,23 +29,33 @@ interface ListenerMeta {
29
29
  current: Set<SignalListener>;
30
30
  cachedBoundAdd: (listener: SignalListener) => () => void;
31
31
  }
32
+ /**
33
+ * Shared definition for derived signals to reduce memory usage.
34
+ * Contains configuration that's common across all instances of a reactive function.
35
+ */
36
+ export interface DerivedSignalDefinition<T, Args extends unknown[]> {
37
+ compute: (...args: Args) => T;
38
+ equals: SignalEquals<T>;
39
+ shouldGC?: (signal: object, value: T, args: Args) => boolean;
40
+ isSubscription: boolean;
41
+ }
32
42
  export declare class DerivedSignal<T, Args extends unknown[]> implements Signal<ReactiveValue<T>> {
33
43
  private flags;
34
44
  scope: SignalScope | undefined;
35
45
  subs: Map<WeakRef<DerivedSignal<any, any>>, Edge>;
36
46
  deps: Map<DerivedSignal<any, any>, Edge>;
37
47
  ref: WeakRef<DerivedSignal<T, Args>>;
38
- equals: SignalEquals<any>;
39
48
  dirtyHead: Edge | undefined;
40
49
  updatedCount: number;
41
50
  computedCount: number;
42
51
  watchCount: number;
43
52
  _listeners: ListenerMeta | null;
44
- compute: (...args: Args) => T;
53
+ key: SignalId | undefined;
45
54
  args: Args;
46
55
  value: ReactiveValue<T> | undefined;
47
56
  tracerMeta?: TracerMeta;
48
- constructor(isSubscription: boolean, compute: (...args: Args) => T, args: Args, key?: SignalId, scope?: SignalScope, opts?: Partial<SignalOptionsWithInit<T, Args>> & {
57
+ def: DerivedSignalDefinition<T, Args>;
58
+ constructor(definition: DerivedSignalDefinition<T, Args>, args: Args, key?: SignalId, scope?: SignalScope, opts?: Partial<SignalOptionsWithInit<T, Args>> & {
49
59
  tracer?: Tracer;
50
60
  });
51
61
  get _state(): SignalState;
@@ -59,8 +69,8 @@ export declare class DerivedSignal<T, Args extends unknown[]> implements Signal<
59
69
  }
60
70
  export declare const runListeners: (signal: DerivedSignal<any, any>) => void;
61
71
  export declare const isSubscription: (signal: unknown) => boolean;
62
- export declare function createDerivedSignal<T, Args extends unknown[]>(compute: (...args: Args) => T, args?: Args, key?: SignalId, scope?: SignalScope, opts?: Partial<SignalOptionsWithInit<T, Args>> & {
72
+ export declare function createDerivedSignal<T, Args extends unknown[]>(def: DerivedSignalDefinition<T, Args>, args?: Args, key?: SignalId, scope?: SignalScope, opts?: Partial<SignalOptionsWithInit<T, Args>> & {
63
73
  tracer?: Tracer;
64
- }, isSubscription?: boolean): DerivedSignal<T, Args>;
74
+ }): DerivedSignal<T, Args>;
65
75
  export {};
66
76
  //# sourceMappingURL=derived.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"derived.d.ts","sourceRoot":"","sources":["../../../src/internals/derived.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"derived.d.ts","sourceRoot":"","sources":["../../../src/internals/derived.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,6 @@ const get_js_1 = require("./get.js");
12
12
  const scheduling_js_1 = require("./scheduling.js");
13
13
  const hash_js_1 = require("./utils/hash.js");
14
14
  const stringify_js_1 = require("./utils/stringify.js");
15
- const equals_js_1 = require("./utils/equals.js");
16
15
  let ID = 0;
17
16
  class DerivedSignal {
18
17
  // Bitmask containing state in the first 2 bits and boolean properties in the remaining bits
@@ -21,27 +20,28 @@ class DerivedSignal {
21
20
  subs = new Map();
22
21
  deps = new Map();
23
22
  ref = new weakref_js_1.default(this);
24
- equals;
25
23
  dirtyHead = undefined;
26
24
  updatedCount = 0;
27
25
  computedCount = 0;
28
26
  watchCount = 0;
29
27
  _listeners = null;
30
- compute;
28
+ key;
31
29
  args;
32
30
  value;
33
31
  tracerMeta;
34
- constructor(isSubscription, compute, args, key, scope, opts) {
35
- this.flags = (isSubscription ? 4 /* SignalFlags.isSubscription */ : 0) | 2 /* SignalState.Dirty */;
32
+ // Reference to the shared definition
33
+ def;
34
+ constructor(definition, args, key, scope, opts) {
35
+ this.flags = (definition.isSubscription ? 4 /* SignalFlags.isSubscription */ : 0) | 2 /* SignalState.Dirty */;
36
36
  this.scope = scope;
37
- this.compute = compute;
37
+ this.key = key;
38
38
  this.args = args;
39
- this.equals = (0, equals_js_1.equalsFrom)(opts?.equals);
39
+ this.def = definition;
40
40
  this.value = opts?.initValue;
41
41
  if (trace_js_1.TRACER) {
42
42
  this.tracerMeta = {
43
- id: opts?.id ?? key ?? (0, hash_js_1.hashValue)([compute, ID++]),
44
- desc: opts?.desc ?? compute.name ?? (0, debug_name_js_1.getUnknownSignalFnName)(compute),
43
+ id: opts?.id ?? key ?? (0, hash_js_1.hashValue)([definition.compute, ID++]),
44
+ desc: opts?.desc ?? definition.compute.name ?? (0, debug_name_js_1.getUnknownSignalFnName)(definition.compute),
45
45
  params: args.map(arg => (0, stringify_js_1.stringifyValue)(arg)).join(', '),
46
46
  tracer: opts?.tracer,
47
47
  };
@@ -122,7 +122,7 @@ const isSubscription = (signal) => {
122
122
  return (signal.flags & 4 /* SignalFlags.isSubscription */) !== 0;
123
123
  };
124
124
  exports.isSubscription = isSubscription;
125
- function createDerivedSignal(compute, args = [], key, scope, opts, isSubscription = false) {
126
- return new DerivedSignal(isSubscription, compute, args, key, scope, opts);
125
+ function createDerivedSignal(def, args = [], key, scope, opts) {
126
+ return new DerivedSignal(def, args, key, scope, opts);
127
127
  }
128
128
  //# sourceMappingURL=derived.js.map