signalium 0.3.8 → 1.0.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.
- package/.turbo/turbo-build.log +3 -3
- package/CHANGELOG.md +15 -0
- package/build/react.js +19 -0
- package/build/transform.js +19 -0
- package/dist/cjs/config.d.ts +8 -3
- package/dist/cjs/config.d.ts.map +1 -1
- package/dist/cjs/config.js +14 -8
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/debug.d.ts +2 -2
- package/dist/cjs/debug.d.ts.map +1 -1
- package/dist/cjs/debug.js +3 -3
- package/dist/cjs/debug.js.map +1 -1
- package/dist/cjs/hooks.d.ts +14 -42
- package/dist/cjs/hooks.d.ts.map +1 -1
- package/dist/cjs/hooks.js +19 -240
- package/dist/cjs/hooks.js.map +1 -1
- package/dist/cjs/index.d.ts +5 -3
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +18 -18
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internals/async.d.ts +50 -0
- package/dist/cjs/internals/async.d.ts.map +1 -0
- package/dist/cjs/internals/async.js +390 -0
- package/dist/cjs/internals/async.js.map +1 -0
- package/dist/cjs/internals/connect.d.ts +4 -0
- package/dist/cjs/internals/connect.d.ts.map +1 -0
- package/dist/cjs/internals/connect.js +37 -0
- package/dist/cjs/internals/connect.js.map +1 -0
- package/dist/cjs/internals/consumer.d.ts +6 -0
- package/dist/cjs/internals/consumer.d.ts.map +1 -0
- package/dist/cjs/internals/consumer.js +13 -0
- package/dist/cjs/internals/consumer.js.map +1 -0
- package/dist/cjs/internals/contexts.d.ts +33 -0
- package/dist/cjs/internals/contexts.d.ts.map +1 -0
- package/dist/cjs/internals/contexts.js +103 -0
- package/dist/cjs/internals/contexts.js.map +1 -0
- package/dist/cjs/internals/derived.d.ts +66 -0
- package/dist/cjs/internals/derived.d.ts.map +1 -0
- package/dist/cjs/internals/derived.js +128 -0
- package/dist/cjs/internals/derived.js.map +1 -0
- package/dist/cjs/internals/dirty.d.ts +5 -0
- package/dist/cjs/internals/dirty.d.ts.map +1 -0
- package/dist/cjs/internals/dirty.js +79 -0
- package/dist/cjs/internals/dirty.js.map +1 -0
- package/dist/cjs/internals/edge.d.ts +32 -0
- package/dist/cjs/internals/edge.d.ts.map +1 -0
- package/dist/cjs/internals/edge.js +59 -0
- package/dist/cjs/internals/edge.js.map +1 -0
- package/dist/cjs/internals/get.d.ts +10 -0
- package/dist/cjs/internals/get.d.ts.map +1 -0
- package/dist/cjs/internals/get.js +255 -0
- package/dist/cjs/internals/get.js.map +1 -0
- package/dist/cjs/internals/scheduling.d.ts +12 -0
- package/dist/cjs/internals/scheduling.d.ts.map +1 -0
- package/dist/cjs/internals/scheduling.js +117 -0
- package/dist/cjs/internals/scheduling.js.map +1 -0
- package/dist/cjs/internals/state.d.ts +18 -0
- package/dist/cjs/internals/state.d.ts.map +1 -0
- package/dist/cjs/internals/state.js +88 -0
- package/dist/cjs/internals/state.js.map +1 -0
- package/dist/cjs/internals/utils/debug-name.d.ts +2 -0
- package/dist/cjs/internals/utils/debug-name.d.ts.map +1 -0
- package/dist/cjs/internals/utils/debug-name.js +14 -0
- package/dist/cjs/internals/utils/debug-name.js.map +1 -0
- package/dist/cjs/internals/utils/equals.d.ts +3 -0
- package/dist/cjs/internals/utils/equals.d.ts.map +1 -0
- package/dist/cjs/internals/utils/equals.js +13 -0
- package/dist/cjs/internals/utils/equals.js.map +1 -0
- package/dist/cjs/internals/utils/hash.d.ts +7 -0
- package/dist/cjs/internals/utils/hash.d.ts.map +1 -0
- package/dist/cjs/internals/utils/hash.js +181 -0
- package/dist/cjs/internals/utils/hash.js.map +1 -0
- package/dist/cjs/internals/utils/stringify.d.ts +3 -0
- package/dist/cjs/internals/utils/stringify.d.ts.map +1 -0
- package/dist/cjs/{utils.js → internals/utils/stringify.js} +5 -27
- package/dist/cjs/internals/utils/stringify.js.map +1 -0
- package/dist/cjs/internals/utils/type-utils.d.ts +6 -0
- package/dist/cjs/internals/utils/type-utils.d.ts.map +1 -0
- package/dist/cjs/internals/utils/type-utils.js +22 -0
- package/dist/cjs/internals/utils/type-utils.js.map +1 -0
- package/dist/cjs/react/context.d.ts +1 -1
- package/dist/cjs/react/context.d.ts.map +1 -1
- package/dist/cjs/react/provider.d.ts +4 -3
- package/dist/cjs/react/provider.d.ts.map +1 -1
- package/dist/cjs/react/provider.js +7 -3
- package/dist/cjs/react/provider.js.map +1 -1
- package/dist/cjs/react/setup.d.ts.map +1 -1
- package/dist/cjs/react/setup.js +2 -1
- package/dist/cjs/react/setup.js.map +1 -1
- package/dist/cjs/react/signal-value.d.ts +5 -1
- package/dist/cjs/react/signal-value.d.ts.map +1 -1
- package/dist/cjs/react/signal-value.js +35 -45
- package/dist/cjs/react/signal-value.js.map +1 -1
- package/dist/cjs/trace.d.ts +32 -28
- package/dist/cjs/trace.d.ts.map +1 -1
- package/dist/cjs/trace.js +14 -16
- package/dist/cjs/trace.js.map +1 -1
- package/dist/cjs/transform.d.ts +6 -0
- package/dist/cjs/transform.d.ts.map +1 -0
- package/dist/cjs/transform.js +92 -0
- package/dist/cjs/transform.js.map +1 -0
- package/dist/cjs/types.d.ts +32 -40
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/config.d.ts +8 -3
- package/dist/esm/config.d.ts.map +1 -1
- package/dist/esm/config.js +12 -7
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/debug.d.ts +2 -2
- package/dist/esm/debug.d.ts.map +1 -1
- package/dist/esm/debug.js +2 -2
- package/dist/esm/debug.js.map +1 -1
- package/dist/esm/hooks.d.ts +14 -42
- package/dist/esm/hooks.d.ts.map +1 -1
- package/dist/esm/hooks.js +17 -226
- package/dist/esm/hooks.js.map +1 -1
- package/dist/esm/index.d.ts +5 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +5 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internals/async.d.ts +50 -0
- package/dist/esm/internals/async.d.ts.map +1 -0
- package/dist/esm/internals/async.js +383 -0
- package/dist/esm/internals/async.js.map +1 -0
- package/dist/esm/internals/connect.d.ts +4 -0
- package/dist/esm/internals/connect.d.ts.map +1 -0
- package/dist/esm/internals/connect.js +33 -0
- package/dist/esm/internals/connect.js.map +1 -0
- package/dist/esm/internals/consumer.d.ts +6 -0
- package/dist/esm/internals/consumer.d.ts.map +1 -0
- package/dist/esm/internals/consumer.js +9 -0
- package/dist/esm/internals/consumer.js.map +1 -0
- package/dist/esm/internals/contexts.d.ts +33 -0
- package/dist/esm/internals/contexts.d.ts.map +1 -0
- package/dist/esm/internals/contexts.js +92 -0
- package/dist/esm/internals/contexts.js.map +1 -0
- package/dist/esm/internals/derived.d.ts +66 -0
- package/dist/esm/internals/derived.d.ts.map +1 -0
- package/dist/esm/internals/derived.js +118 -0
- package/dist/esm/internals/derived.js.map +1 -0
- package/dist/esm/internals/dirty.d.ts +5 -0
- package/dist/esm/internals/dirty.d.ts.map +1 -0
- package/dist/esm/internals/dirty.js +75 -0
- package/dist/esm/internals/dirty.js.map +1 -0
- package/dist/esm/internals/edge.d.ts +32 -0
- package/dist/esm/internals/edge.d.ts.map +1 -0
- package/dist/esm/internals/edge.js +54 -0
- package/dist/esm/internals/edge.js.map +1 -0
- package/dist/esm/internals/get.d.ts +10 -0
- package/dist/esm/internals/get.d.ts.map +1 -0
- package/dist/esm/internals/get.js +247 -0
- package/dist/esm/internals/get.js.map +1 -0
- package/dist/esm/internals/scheduling.d.ts +12 -0
- package/dist/esm/internals/scheduling.d.ts.map +1 -0
- package/dist/esm/internals/scheduling.js +106 -0
- package/dist/esm/internals/scheduling.js.map +1 -0
- package/dist/esm/internals/state.d.ts +18 -0
- package/dist/esm/internals/state.d.ts.map +1 -0
- package/dist/esm/internals/state.js +82 -0
- package/dist/esm/internals/state.js.map +1 -0
- package/dist/esm/internals/utils/debug-name.d.ts +2 -0
- package/dist/esm/internals/utils/debug-name.d.ts.map +1 -0
- package/dist/esm/internals/utils/debug-name.js +11 -0
- package/dist/esm/internals/utils/debug-name.js.map +1 -0
- package/dist/esm/internals/utils/equals.d.ts +3 -0
- package/dist/esm/internals/utils/equals.d.ts.map +1 -0
- package/dist/esm/internals/utils/equals.js +9 -0
- package/dist/esm/internals/utils/equals.js.map +1 -0
- package/dist/esm/internals/utils/hash.d.ts +7 -0
- package/dist/esm/internals/utils/hash.d.ts.map +1 -0
- package/dist/esm/internals/utils/hash.js +174 -0
- package/dist/esm/internals/utils/hash.js.map +1 -0
- package/dist/esm/internals/utils/stringify.d.ts +3 -0
- package/dist/esm/internals/utils/stringify.d.ts.map +1 -0
- package/dist/esm/{utils.js → internals/utils/stringify.js} +4 -25
- package/dist/esm/internals/utils/stringify.js.map +1 -0
- package/dist/esm/internals/utils/type-utils.d.ts +6 -0
- package/dist/esm/internals/utils/type-utils.d.ts.map +1 -0
- package/dist/esm/internals/utils/type-utils.js +15 -0
- package/dist/esm/internals/utils/type-utils.js.map +1 -0
- package/dist/esm/react/context.d.ts +1 -1
- package/dist/esm/react/context.d.ts.map +1 -1
- package/dist/esm/react/provider.d.ts +4 -3
- package/dist/esm/react/provider.d.ts.map +1 -1
- package/dist/esm/react/provider.js +6 -2
- package/dist/esm/react/provider.js.map +1 -1
- package/dist/esm/react/setup.d.ts.map +1 -1
- package/dist/esm/react/setup.js +3 -2
- package/dist/esm/react/setup.js.map +1 -1
- package/dist/esm/react/signal-value.d.ts +5 -1
- package/dist/esm/react/signal-value.d.ts.map +1 -1
- package/dist/esm/react/signal-value.js +34 -45
- package/dist/esm/react/signal-value.js.map +1 -1
- package/dist/esm/trace.d.ts +32 -28
- package/dist/esm/trace.d.ts.map +1 -1
- package/dist/esm/trace.js +13 -15
- package/dist/esm/trace.js.map +1 -1
- package/dist/esm/transform.d.ts +6 -0
- package/dist/esm/transform.d.ts.map +1 -0
- package/dist/esm/transform.js +89 -0
- package/dist/esm/transform.js.map +1 -0
- package/dist/esm/types.d.ts +32 -40
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +23 -4
- package/src/__tests__/__snapshots__/context.test.ts.snap +2101 -0
- package/src/__tests__/__snapshots__/nesting.test.ts.snap +16201 -0
- package/src/__tests__/__snapshots__/params-and-state.test.ts.snap +1879 -0
- package/src/__tests__/async-task.test.ts +327 -0
- package/src/__tests__/context.test.ts +517 -0
- package/src/__tests__/nesting.test.ts +298 -0
- package/src/__tests__/params-and-state.test.ts +230 -0
- package/src/__tests__/reactive-async.test.ts +548 -0
- package/src/__tests__/reactive-sync.test.ts +130 -0
- package/src/__tests__/subscription.test.ts +510 -0
- package/src/__tests__/utils/async.ts +1 -1
- package/src/__tests__/utils/instrumented-hooks.ts +229 -124
- package/src/__tests__/utils/permute.ts +25 -14
- package/src/config.ts +19 -9
- package/src/debug.ts +2 -2
- package/src/hooks.ts +46 -380
- package/src/index.ts +7 -24
- package/src/internals/async.ts +556 -0
- package/src/internals/connect.ts +41 -0
- package/src/internals/consumer.ts +13 -0
- package/src/internals/contexts.ts +133 -0
- package/src/internals/derived.ts +208 -0
- package/src/internals/dirty.ts +91 -0
- package/src/internals/edge.ts +109 -0
- package/src/internals/get.ts +298 -0
- package/src/internals/scheduling.ts +140 -0
- package/src/internals/state.ts +111 -0
- package/src/internals/utils/debug-name.ts +14 -0
- package/src/internals/utils/equals.ts +12 -0
- package/src/internals/utils/hash.ts +221 -0
- package/src/{utils.ts → internals/utils/stringify.ts} +3 -29
- package/src/internals/utils/type-utils.ts +19 -0
- package/src/react/__tests__/async.test.tsx +704 -0
- package/src/react/__tests__/basic.test.tsx +95 -0
- package/src/react/__tests__/contexts.test.tsx +99 -0
- package/src/react/__tests__/subscriptions.test.tsx +49 -0
- package/src/react/__tests__/utils.tsx +40 -0
- package/src/react/context.ts +1 -1
- package/src/react/provider.tsx +12 -4
- package/src/react/setup.ts +3 -2
- package/src/react/signal-value.ts +47 -67
- package/src/trace.ts +43 -38
- package/src/transform.ts +113 -0
- package/src/types.ts +56 -46
- package/transform.js +19 -0
- package/vitest.workspace.ts +38 -2
- package/dist/cjs/scheduling.d.ts +0 -11
- package/dist/cjs/scheduling.d.ts.map +0 -1
- package/dist/cjs/scheduling.js +0 -108
- package/dist/cjs/scheduling.js.map +0 -1
- package/dist/cjs/signals.d.ts +0 -73
- package/dist/cjs/signals.d.ts.map +0 -1
- package/dist/cjs/signals.js +0 -632
- package/dist/cjs/signals.js.map +0 -1
- package/dist/cjs/utils.d.ts +0 -4
- package/dist/cjs/utils.d.ts.map +0 -1
- package/dist/cjs/utils.js.map +0 -1
- package/dist/esm/scheduling.d.ts +0 -11
- package/dist/esm/scheduling.d.ts.map +0 -1
- package/dist/esm/scheduling.js +0 -97
- package/dist/esm/scheduling.js.map +0 -1
- package/dist/esm/signals.d.ts +0 -73
- package/dist/esm/signals.d.ts.map +0 -1
- package/dist/esm/signals.js +0 -614
- package/dist/esm/signals.js.map +0 -1
- package/dist/esm/utils.d.ts +0 -4
- package/dist/esm/utils.d.ts.map +0 -1
- package/dist/esm/utils.js.map +0 -1
- package/src/__tests__/hooks/async-computed.test.ts +0 -190
- package/src/__tests__/hooks/async-task.test.ts +0 -334
- package/src/__tests__/hooks/computed.test.ts +0 -126
- package/src/__tests__/hooks/context.test.ts +0 -527
- package/src/__tests__/hooks/nesting.test.ts +0 -303
- package/src/__tests__/hooks/params-and-state.test.ts +0 -168
- package/src/__tests__/hooks/subscription.test.ts +0 -97
- package/src/__tests__/signals/async.test.ts +0 -416
- package/src/__tests__/signals/basic.test.ts +0 -399
- package/src/__tests__/signals/subscription.test.ts +0 -632
- package/src/__tests__/signals/watcher.test.ts +0 -253
- package/src/__tests__/utils/builders.ts +0 -22
- package/src/__tests__/utils/instrumented-signals.ts +0 -291
- package/src/react/__tests__/react.test.tsx +0 -227
- package/src/scheduling.ts +0 -130
- package/src/signals.ts +0 -824
package/.turbo/turbo-build.log
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
|
2
|
-
> signalium@0.
|
2
|
+
> signalium@1.0.0 build
|
3
3
|
> npm run build:esm && npm run build:cjs
|
4
4
|
|
5
5
|
|
6
|
-
> signalium@0.
|
6
|
+
> signalium@1.0.0 build:esm
|
7
7
|
> tsc
|
8
8
|
|
9
9
|
|
10
|
-
> signalium@0.
|
10
|
+
> signalium@1.0.0 build:cjs
|
11
11
|
> tsc --module commonjs --outDir dist/cjs --moduleResolution node
|
12
12
|
|
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,20 @@
|
|
1
1
|
# signalium
|
2
2
|
|
3
|
+
## 1.0.0
|
4
|
+
|
5
|
+
### Major Changes
|
6
|
+
|
7
|
+
- 069c458: Finalize API and release v1
|
8
|
+
|
9
|
+
Breaking changes:
|
10
|
+
|
11
|
+
- `reactive` replaces `computed` and `asyncComputed`
|
12
|
+
- Async has been unified around the ReactivePromise interface
|
13
|
+
- Simplified the forking behavior of contexts
|
14
|
+
- `subscription` now returns a subscription instance, not a factory function
|
15
|
+
- `task` now returns a ReactiveTask instance, not a factory function
|
16
|
+
- `ContextProvider` receives an array of context/value tuples, rather than a map
|
17
|
+
|
3
18
|
## 0.3.8
|
4
19
|
|
5
20
|
### Patch Changes
|
package/build/react.js
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
// This file is for backwards compatibility with non-module build systems
|
2
|
+
//
|
3
|
+
// TODO: Generate this automatically on build/publish
|
4
|
+
|
5
|
+
'use strict';
|
6
|
+
Object.defineProperty(exports, '__esModule', {
|
7
|
+
value: true,
|
8
|
+
});
|
9
|
+
var _index = require('./dist/cjs/react/index.js');
|
10
|
+
Object.keys(_index).forEach(function (key) {
|
11
|
+
if (key === 'default' || key === '__esModule') return;
|
12
|
+
if (key in exports && exports[key] === _index[key]) return;
|
13
|
+
Object.defineProperty(exports, key, {
|
14
|
+
enumerable: true,
|
15
|
+
get: function () {
|
16
|
+
return _index[key];
|
17
|
+
},
|
18
|
+
});
|
19
|
+
});
|
@@ -0,0 +1,19 @@
|
|
1
|
+
// This file is for backwards compatibility with non-module build systems
|
2
|
+
//
|
3
|
+
// TODO: Generate this automatically on build/publish
|
4
|
+
|
5
|
+
'use strict';
|
6
|
+
Object.defineProperty(exports, '__esModule', {
|
7
|
+
value: true,
|
8
|
+
});
|
9
|
+
var _index = require('./dist/cjs/transform.js');
|
10
|
+
Object.keys(_index).forEach(function (key) {
|
11
|
+
if (key === 'default' || key === '__esModule') return;
|
12
|
+
if (key in exports && exports[key] === _index[key]) return;
|
13
|
+
Object.defineProperty(exports, key, {
|
14
|
+
enumerable: true,
|
15
|
+
get: function () {
|
16
|
+
return _index[key];
|
17
|
+
},
|
18
|
+
});
|
19
|
+
});
|
package/dist/cjs/config.d.ts
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
-
import {
|
1
|
+
import { DerivedSignal } from './internals/derived.js';
|
2
|
+
import { SignalScope } from './internals/contexts.js';
|
3
|
+
import { ReactiveValue } from './types.js';
|
4
|
+
import { StateSignal } from './internals/state.js';
|
2
5
|
export type FlushCallback = () => void;
|
3
6
|
export type FlushFn = (fn: FlushCallback) => void;
|
4
7
|
export type BatchFn = (fn: () => void) => void;
|
@@ -6,12 +9,14 @@ interface SignalHooksConfig {
|
|
6
9
|
scheduleFlush: FlushFn;
|
7
10
|
runBatch: BatchFn;
|
8
11
|
getFrameworkScope: () => SignalScope | undefined;
|
9
|
-
|
12
|
+
useStateSignal: <T>(signal: StateSignal<T>) => T;
|
13
|
+
useDerivedSignal: <T>(signal: DerivedSignal<T, unknown[]>) => ReactiveValue<T>;
|
10
14
|
}
|
11
15
|
export declare let scheduleFlush: FlushFn;
|
12
16
|
export declare let runBatch: BatchFn;
|
13
17
|
export declare let getFrameworkScope: () => SignalScope | undefined;
|
14
|
-
export declare function
|
18
|
+
export declare function useDerivedSignal<T>(signal: DerivedSignal<T, any[]>): ReactiveValue<T>;
|
19
|
+
export declare function useStateSignal<T>(signal: StateSignal<T>): T;
|
15
20
|
export declare function setConfig(cfg: Partial<SignalHooksConfig>): void;
|
16
21
|
export {};
|
17
22
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/cjs/config.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
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"}
|
package/dist/cjs/config.js
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.getFrameworkScope = exports.runBatch = exports.scheduleFlush = void 0;
|
4
|
-
exports.
|
4
|
+
exports.useDerivedSignal = useDerivedSignal;
|
5
|
+
exports.useStateSignal = useStateSignal;
|
5
6
|
exports.setConfig = setConfig;
|
6
|
-
const
|
7
|
+
const get_js_1 = require("./internals/get.js");
|
7
8
|
let scheduleFlush = flushWatchers => {
|
8
9
|
setTimeout(() => {
|
9
10
|
flushWatchers();
|
@@ -14,20 +15,25 @@ let runBatch = fn => fn();
|
|
14
15
|
exports.runBatch = runBatch;
|
15
16
|
let getFrameworkScope = () => undefined;
|
16
17
|
exports.getFrameworkScope = getFrameworkScope;
|
17
|
-
let
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
let useFrameworkStateSignal = signal => signal.get();
|
19
|
+
let useFrameworkDerivedSignal = signal => signal.get();
|
20
|
+
function useDerivedSignal(signal) {
|
21
|
+
if (get_js_1.CURRENT_CONSUMER !== undefined) {
|
22
|
+
return signal.get();
|
21
23
|
}
|
22
24
|
else {
|
23
25
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
24
|
-
return
|
26
|
+
return useFrameworkDerivedSignal(signal);
|
25
27
|
}
|
26
28
|
}
|
29
|
+
function useStateSignal(signal) {
|
30
|
+
return useFrameworkStateSignal(signal);
|
31
|
+
}
|
27
32
|
function setConfig(cfg) {
|
28
33
|
exports.scheduleFlush = cfg.scheduleFlush ?? exports.scheduleFlush;
|
29
34
|
exports.runBatch = cfg.runBatch ?? exports.runBatch;
|
30
35
|
exports.getFrameworkScope = cfg.getFrameworkScope ?? exports.getFrameworkScope;
|
31
|
-
|
36
|
+
useFrameworkStateSignal = cfg.useStateSignal ?? useFrameworkStateSignal;
|
37
|
+
useFrameworkDerivedSignal = cfg.useDerivedSignal ?? useFrameworkDerivedSignal;
|
32
38
|
}
|
33
39
|
//# sourceMappingURL=config.js.map
|
package/dist/cjs/config.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";;;
|
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"}
|
package/dist/cjs/debug.d.ts
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
export { setTracing, createTracer, createTracerFromId, removeTracer, VisualizerNode, type VisualizerLink,
|
2
|
-
export { scheduleTracer } from './scheduling.js';
|
1
|
+
export { setTracing, createTracer, createTracerFromId, removeTracer, VisualizerNode, type VisualizerLink, TracerEventType, Tracer, TRACER, SignalType, } from './trace.js';
|
2
|
+
export { scheduleTracer } from './internals/scheduling.js';
|
3
3
|
//# sourceMappingURL=debug.d.ts.map
|
package/dist/cjs/debug.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/debug.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,KAAK,cAAc,EACnB,
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/debug.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,KAAK,cAAc,EACnB,eAAe,EACf,MAAM,EACN,MAAM,EACN,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/cjs/debug.js
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.scheduleTracer = exports.
|
3
|
+
exports.scheduleTracer = exports.SignalType = exports.TRACER = exports.Tracer = exports.TracerEventType = exports.VisualizerNode = exports.removeTracer = exports.createTracerFromId = exports.createTracer = exports.setTracing = void 0;
|
4
4
|
var trace_js_1 = require("./trace.js");
|
5
5
|
Object.defineProperty(exports, "setTracing", { enumerable: true, get: function () { return trace_js_1.setTracing; } });
|
6
6
|
Object.defineProperty(exports, "createTracer", { enumerable: true, get: function () { return trace_js_1.createTracer; } });
|
7
7
|
Object.defineProperty(exports, "createTracerFromId", { enumerable: true, get: function () { return trace_js_1.createTracerFromId; } });
|
8
8
|
Object.defineProperty(exports, "removeTracer", { enumerable: true, get: function () { return trace_js_1.removeTracer; } });
|
9
9
|
Object.defineProperty(exports, "VisualizerNode", { enumerable: true, get: function () { return trace_js_1.VisualizerNode; } });
|
10
|
-
Object.defineProperty(exports, "VisualizerNodeType", { enumerable: true, get: function () { return trace_js_1.VisualizerNodeType; } });
|
11
10
|
Object.defineProperty(exports, "TracerEventType", { enumerable: true, get: function () { return trace_js_1.TracerEventType; } });
|
12
11
|
Object.defineProperty(exports, "Tracer", { enumerable: true, get: function () { return trace_js_1.Tracer; } });
|
13
12
|
Object.defineProperty(exports, "TRACER", { enumerable: true, get: function () { return trace_js_1.TRACER; } });
|
14
|
-
|
13
|
+
Object.defineProperty(exports, "SignalType", { enumerable: true, get: function () { return trace_js_1.SignalType; } });
|
14
|
+
var scheduling_js_1 = require("./internals/scheduling.js");
|
15
15
|
Object.defineProperty(exports, "scheduleTracer", { enumerable: true, get: function () { return scheduling_js_1.scheduleTracer; } });
|
16
16
|
//# sourceMappingURL=debug.js.map
|
package/dist/cjs/debug.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/debug.ts"],"names":[],"mappings":";;;AAAA,uCAWoB;AAVlB,sGAAA,UAAU,OAAA;AACV,wGAAA,YAAY,OAAA;AACZ,8GAAA,kBAAkB,OAAA;AAClB,wGAAA,YAAY,OAAA;AACZ,0GAAA,cAAc,OAAA;AAEd,
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/debug.ts"],"names":[],"mappings":";;;AAAA,uCAWoB;AAVlB,sGAAA,UAAU,OAAA;AACV,wGAAA,YAAY,OAAA;AACZ,8GAAA,kBAAkB,OAAA;AAClB,wGAAA,YAAY,OAAA;AACZ,0GAAA,cAAc,OAAA;AAEd,2GAAA,eAAe,OAAA;AACf,kGAAA,MAAM,OAAA;AACN,kGAAA,MAAM,OAAA;AACN,sGAAA,UAAU,OAAA;AAGZ,2DAA2D;AAAlD,+GAAA,cAAc,OAAA"}
|
package/dist/cjs/hooks.d.ts
CHANGED
@@ -1,44 +1,16 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
export declare
|
8
|
-
export declare
|
9
|
-
export declare
|
10
|
-
export
|
11
|
-
|
12
|
-
|
13
|
-
export declare class SignalScope {
|
14
|
-
private parent?;
|
15
|
-
constructor(contexts: SignalStoreMap, parent?: SignalScope | undefined);
|
16
|
-
private contexts;
|
17
|
-
private children;
|
18
|
-
private contextMask;
|
19
|
-
private signals;
|
20
|
-
getChild(contexts: SignalStoreMap): SignalScope;
|
21
|
-
getContext<T>(context: Context<T>): T | undefined;
|
22
|
-
private getSignal;
|
23
|
-
private setSignal;
|
24
|
-
private deleteSignal;
|
25
|
-
run(fn: (...args: any[]) => any, args: any[], key: string, signal: Signal<unknown>, initialized: boolean): any;
|
26
|
-
get(makeSignal: (fn: (...args: any[]) => any, opts?: Partial<SignalOptionsWithInit<unknown, unknown[]>>) => Signal<unknown>, fn: (...args: any[]) => any, key: string, params: string, args: unknown[], opts?: Partial<SignalOptions<unknown, unknown[]>>): unknown;
|
27
|
-
}
|
28
|
-
export declare let ROOT_SCOPE: SignalScope;
|
29
|
-
export declare const clearRootScope: () => void;
|
30
|
-
export declare const getOverrideScope: () => SignalScope | undefined;
|
31
|
-
export declare const setOverrideScope: (scope: SignalScope | undefined) => void;
|
32
|
-
export declare const withContext: <T>(contexts: SignalStoreMap, fn: () => T) => T;
|
33
|
-
export declare const useContext: <T>(context: Context<T>) => T;
|
34
|
-
export declare function computed<T, Args extends unknown[]>(fn: (...args: Args) => T, opts?: Partial<SignalOptions<T, Args>>): (...args: Args) => T;
|
35
|
-
export type AsyncAwaitableResult<T> = T | Promise<T>;
|
36
|
-
export declare function asyncComputed<T, Args extends unknown[]>(fn: (...args: Args) => T | Promise<T>, opts?: SignalOptions<T, Args>): (...args: Args) => AsyncResult<T>;
|
37
|
-
export declare function asyncComputed<T, Args extends unknown[]>(fn: (...args: Args) => T | Promise<T>, opts: SignalOptionsWithInit<T, Args>): (...args: Args) => AsyncReady<T>;
|
38
|
-
export declare function subscription<T, Args extends unknown[]>(fn: SignalSubscribe<T, Args>, opts?: Partial<SignalOptionsWithInit<T, Args>>): (...args: Args) => T;
|
39
|
-
export declare const asyncTask: <T, Args extends unknown[]>(fn: (...args: Args) => Promise<T>, opts?: Partial<SignalOptionsWithInit<T, Args>>) => (<BuildArgs extends unknown[], RunArgs extends Args extends [...BuildArgs, ...infer _Rest] ? _Rest : Args>(...args: Args extends [...BuildArgs, ...infer _Rest] ? BuildArgs : Args) => AsyncTask<T, RunArgs>);
|
40
|
-
export declare function watcher<T>(fn: (prev: T | undefined) => T, opts?: SignalOptions<T, unknown[]> & {
|
1
|
+
import { ReactiveTask, ReactiveValue, ReadyReactivePromise, ReadyReactiveValue, Signal, SignalOptions, SignalSubscribe, type SignalOptionsWithInit } from './types.js';
|
2
|
+
import { SignalScope } from './internals/contexts.js';
|
3
|
+
import { createStateSignal } from './internals/state.js';
|
4
|
+
import { ReactivePromise } from './internals/async.js';
|
5
|
+
import { Tracer } from './trace.js';
|
6
|
+
export declare const state: typeof createStateSignal;
|
7
|
+
export declare function reactive<T, Args extends unknown[]>(fn: (...args: Args) => T, opts?: Partial<SignalOptionsWithInit<T, Args>>): (...args: Args) => ReactiveValue<T>;
|
8
|
+
export declare function reactive<T, Args extends unknown[]>(fn: (...args: Args) => T, opts: SignalOptionsWithInit<T, Args>): (...args: Args) => ReadyReactiveValue<T>;
|
9
|
+
export declare function subscription<T>(subscribe: SignalSubscribe<T>, opts?: SignalOptions<T, unknown[]>): ReactivePromise<T>;
|
10
|
+
export declare function subscription<T>(subscribe: SignalSubscribe<T>, opts: SignalOptionsWithInit<T, unknown[]>): ReadyReactivePromise<T>;
|
11
|
+
export declare const task: <T, Args extends unknown[]>(fn: (...args: Args) => Promise<T>, opts?: Partial<SignalOptionsWithInit<T, Args>>) => ReactiveTask<T, Args>;
|
12
|
+
export declare function watcher<T>(fn: () => T, opts?: SignalOptions<T, unknown[]> & {
|
41
13
|
scope?: SignalScope;
|
42
|
-
|
43
|
-
|
14
|
+
tracer?: Tracer;
|
15
|
+
}): Signal<ReactiveValue<T>>;
|
44
16
|
//# sourceMappingURL=hooks.d.ts.map
|
package/dist/cjs/hooks.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,
|
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"}
|
package/dist/cjs/hooks.js
CHANGED
@@ -1,253 +1,32 @@
|
|
1
1
|
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.
|
7
|
-
exports.
|
8
|
-
exports.asyncComputed = asyncComputed;
|
3
|
+
exports.task = exports.state = void 0;
|
4
|
+
exports.reactive = reactive;
|
9
5
|
exports.subscription = subscription;
|
10
6
|
exports.watcher = watcher;
|
11
|
-
const signals_js_1 = require("./signals.js");
|
12
|
-
const utils_js_1 = require("./utils.js");
|
13
7
|
const config_js_1 = require("./config.js");
|
14
|
-
const
|
15
|
-
const
|
16
|
-
const
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
let CURRENT_MASK = null;
|
21
|
-
const state = (value, opts) => {
|
22
|
-
const signal = (0, signals_js_1.createStateSignal)(value, opts);
|
23
|
-
return {
|
24
|
-
set(v) {
|
25
|
-
signal.set(v);
|
26
|
-
},
|
27
|
-
get() {
|
28
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
29
|
-
return (0, config_js_1.useSignalValue)(signal._desc, () => signal.get());
|
30
|
-
},
|
31
|
-
};
|
32
|
-
};
|
33
|
-
exports.state = state;
|
34
|
-
const createContext = (initialValue, description) => {
|
35
|
-
const count = CONTEXT_MASKS_COUNT++;
|
36
|
-
const key = Symbol(description ?? `context:${count}`);
|
37
|
-
CONTEXT_DEFAULT_VALUES.set(key, initialValue);
|
38
|
-
CONTEXT_MASKS.set(key, BigInt(1) << BigInt(count));
|
39
|
-
return key;
|
40
|
-
};
|
41
|
-
exports.createContext = createContext;
|
42
|
-
class SignalScope {
|
43
|
-
parent;
|
44
|
-
constructor(contexts, parent) {
|
45
|
-
this.parent = parent;
|
46
|
-
this.contexts = Object.create(parent?.contexts || null);
|
47
|
-
for (const key of Object.getOwnPropertySymbols(contexts)) {
|
48
|
-
this.contexts[key] = contexts[key];
|
49
|
-
this.contextMask |= CONTEXT_MASKS.get(key);
|
50
|
-
}
|
51
|
-
}
|
52
|
-
contexts;
|
53
|
-
children = new Map();
|
54
|
-
contextMask = 0n;
|
55
|
-
signals = new Map();
|
56
|
-
getChild(contexts) {
|
57
|
-
const key = (0, utils_js_1.hashValue)(contexts);
|
58
|
-
let child = this.children.get(key);
|
59
|
-
if (child === undefined) {
|
60
|
-
child = new SignalScope(contexts, this);
|
61
|
-
this.children.set(key, child);
|
62
|
-
}
|
63
|
-
return child;
|
64
|
-
}
|
65
|
-
getContext(context) {
|
66
|
-
const value = this.contexts[context];
|
67
|
-
if (CURRENT_MASK !== null) {
|
68
|
-
CURRENT_MASK |= CONTEXT_MASKS.get(context);
|
69
|
-
}
|
70
|
-
return value;
|
71
|
-
}
|
72
|
-
getSignal(key, computedMask) {
|
73
|
-
return (this.contextMask & computedMask) === 0n && this.parent
|
74
|
-
? this.parent.getSignal(key, computedMask)
|
75
|
-
: this.signals.get(key)?.deref();
|
76
|
-
}
|
77
|
-
setSignal(key, signal, mask, isPromoting) {
|
78
|
-
if ((this.contextMask & mask) === 0n && this.parent) {
|
79
|
-
this.parent.setSignal(key, signal, mask, isPromoting);
|
80
|
-
}
|
81
|
-
else {
|
82
|
-
this.signals.set(key, new weakref_js_1.default(signal));
|
83
|
-
if (isPromoting) {
|
84
|
-
this.parent?.deleteSignal(key);
|
85
|
-
}
|
86
|
-
}
|
87
|
-
}
|
88
|
-
deleteSignal(key) {
|
89
|
-
this.signals.delete(key);
|
90
|
-
this.parent?.deleteSignal(key);
|
91
|
-
}
|
92
|
-
run(fn, args, key, signal, initialized) {
|
93
|
-
const prevMask = CURRENT_MASK;
|
94
|
-
const fnMask = COMPUTED_CONTEXT_MASKS.get(fn) ?? 0n;
|
95
|
-
const signalMask = COMPUTED_CONTEXT_MASKS.get(signal) ?? 0n;
|
96
|
-
try {
|
97
|
-
CURRENT_MASK = signalMask | fnMask;
|
98
|
-
return fn(...args);
|
99
|
-
}
|
100
|
-
finally {
|
101
|
-
if (!initialized || signalMask !== CURRENT_MASK) {
|
102
|
-
COMPUTED_CONTEXT_MASKS.set(fn, CURRENT_MASK);
|
103
|
-
COMPUTED_CONTEXT_MASKS.set(signal, CURRENT_MASK);
|
104
|
-
getCurrentScope().setSignal(key, signal, CURRENT_MASK, initialized);
|
105
|
-
initialized = true;
|
106
|
-
}
|
107
|
-
CURRENT_MASK = prevMask;
|
108
|
-
}
|
109
|
-
}
|
110
|
-
get(makeSignal, fn, key, params, args, opts) {
|
111
|
-
const computedMask = COMPUTED_CONTEXT_MASKS.get(fn) ?? 0n;
|
112
|
-
const fnName = opts?.desc ?? fn.name ?? (0, utils_js_1.getUnknownSignalFnName)(fn, makeSignal);
|
113
|
-
let signal = this.getSignal(key, computedMask);
|
114
|
-
if (signal === undefined) {
|
115
|
-
const optsWithMeta = { ...opts, id: key, desc: fnName, params };
|
116
|
-
let initialized = false;
|
117
|
-
if (makeSignal === signals_js_1.createSubscriptionSignal) {
|
118
|
-
signal = makeSignal(state => {
|
119
|
-
const sub = this.run(fn, [state, ...args], key, signal, initialized);
|
120
|
-
if (typeof sub === 'object' && sub !== null && sub?.update) {
|
121
|
-
const originalUpdate = sub.update;
|
122
|
-
sub.update = () => {
|
123
|
-
return this.run(originalUpdate, [], key, signal, initialized);
|
124
|
-
};
|
125
|
-
}
|
126
|
-
initialized = true;
|
127
|
-
return sub;
|
128
|
-
}, optsWithMeta);
|
129
|
-
}
|
130
|
-
else {
|
131
|
-
signal = makeSignal((...runArgs) => {
|
132
|
-
const result = this.run(fn, [...args, ...runArgs], key, signal, initialized);
|
133
|
-
initialized = true;
|
134
|
-
return result;
|
135
|
-
}, optsWithMeta);
|
136
|
-
}
|
137
|
-
}
|
138
|
-
exports.COMPUTED_OWNERS.set(signal, this);
|
139
|
-
const value = signal.get();
|
140
|
-
if (CURRENT_MASK !== null) {
|
141
|
-
CURRENT_MASK |= COMPUTED_CONTEXT_MASKS.get(fn) ?? 0n;
|
142
|
-
}
|
143
|
-
return value;
|
144
|
-
}
|
145
|
-
}
|
146
|
-
exports.SignalScope = SignalScope;
|
147
|
-
exports.ROOT_SCOPE = new SignalScope({});
|
148
|
-
const clearRootScope = () => {
|
149
|
-
exports.ROOT_SCOPE = new SignalScope({});
|
150
|
-
};
|
151
|
-
exports.clearRootScope = clearRootScope;
|
152
|
-
let OVERRIDE_SCOPE;
|
153
|
-
const getOverrideScope = () => {
|
154
|
-
return OVERRIDE_SCOPE;
|
155
|
-
};
|
156
|
-
exports.getOverrideScope = getOverrideScope;
|
157
|
-
const setOverrideScope = (scope) => {
|
158
|
-
OVERRIDE_SCOPE = scope;
|
159
|
-
};
|
160
|
-
exports.setOverrideScope = setOverrideScope;
|
161
|
-
const getCurrentScope = () => {
|
162
|
-
if (OVERRIDE_SCOPE !== undefined) {
|
163
|
-
return OVERRIDE_SCOPE;
|
164
|
-
}
|
165
|
-
const currentConsumer = (0, signals_js_1.getCurrentConsumer)();
|
166
|
-
if (currentConsumer) {
|
167
|
-
const scope = exports.COMPUTED_OWNERS.get(currentConsumer);
|
168
|
-
return scope ?? exports.ROOT_SCOPE;
|
169
|
-
}
|
170
|
-
return (0, config_js_1.getFrameworkScope)() ?? exports.ROOT_SCOPE;
|
171
|
-
};
|
172
|
-
const withContext = (contexts, fn) => {
|
173
|
-
const prevScope = OVERRIDE_SCOPE;
|
174
|
-
const currentScope = getCurrentScope();
|
175
|
-
try {
|
176
|
-
OVERRIDE_SCOPE = currentScope.getChild(contexts);
|
177
|
-
return fn();
|
178
|
-
}
|
179
|
-
finally {
|
180
|
-
OVERRIDE_SCOPE = prevScope;
|
181
|
-
}
|
182
|
-
};
|
183
|
-
exports.withContext = withContext;
|
184
|
-
const useContext = (context) => {
|
185
|
-
let scope = OVERRIDE_SCOPE;
|
186
|
-
if (scope === undefined) {
|
187
|
-
const currentConsumer = (0, signals_js_1.getCurrentConsumer)();
|
188
|
-
scope = currentConsumer ? exports.COMPUTED_OWNERS.get(currentConsumer) : undefined;
|
189
|
-
}
|
190
|
-
if (scope === undefined) {
|
191
|
-
scope = (0, config_js_1.getFrameworkScope)();
|
192
|
-
}
|
193
|
-
if (scope === undefined) {
|
194
|
-
throw new Error('useContext must be used within a signal hook, a withContext, or within a framework-specific context provider.');
|
195
|
-
}
|
196
|
-
return scope.getContext(context) ?? CONTEXT_DEFAULT_VALUES.get(context);
|
197
|
-
};
|
198
|
-
exports.useContext = useContext;
|
199
|
-
const getParamsKey = (args, opts) => {
|
200
|
-
return opts?.paramKey ? opts.paramKey(...args) : args.map(arg => (0, utils_js_1.hashValue)(arg)).join(', ');
|
201
|
-
};
|
202
|
-
const getComputedKey = (fn, params) => {
|
203
|
-
const fnId = (0, utils_js_1.getObjectId)(fn);
|
204
|
-
return `${fnId}(${params})`;
|
205
|
-
};
|
206
|
-
function computed(fn, opts) {
|
207
|
-
return (...args) => {
|
208
|
-
const params = getParamsKey(args, opts);
|
209
|
-
const key = getComputedKey(fn, params);
|
210
|
-
return (0, config_js_1.useSignalValue)(key, () => {
|
211
|
-
const scope = getCurrentScope();
|
212
|
-
return scope.get(signals_js_1.createComputedSignal, fn, key, params, args, opts);
|
213
|
-
});
|
214
|
-
};
|
215
|
-
}
|
216
|
-
function asyncComputed(fn, opts) {
|
8
|
+
const contexts_js_1 = require("./internals/contexts.js");
|
9
|
+
const state_js_1 = require("./internals/state.js");
|
10
|
+
const derived_js_1 = require("./internals/derived.js");
|
11
|
+
const async_js_1 = require("./internals/async.js");
|
12
|
+
exports.state = state_js_1.createStateSignal;
|
13
|
+
function reactive(fn, opts) {
|
217
14
|
return (...args) => {
|
218
|
-
const
|
219
|
-
const
|
220
|
-
return (0, config_js_1.
|
221
|
-
const scope = getCurrentScope();
|
222
|
-
return scope.get(signals_js_1.createAsyncComputedSignal, fn, key, params, args, opts);
|
223
|
-
});
|
15
|
+
const scope = (0, contexts_js_1.getCurrentScope)();
|
16
|
+
const signal = scope.get(fn, args, opts);
|
17
|
+
return (0, config_js_1.useDerivedSignal)(signal);
|
224
18
|
};
|
225
19
|
}
|
226
|
-
function subscription(
|
227
|
-
|
228
|
-
|
229
|
-
const key = getComputedKey(fn, params);
|
230
|
-
return (0, config_js_1.useSignalValue)(key, () => {
|
231
|
-
const scope = getCurrentScope();
|
232
|
-
return scope.get(signals_js_1.createSubscriptionSignal, fn, key, params, args, opts);
|
233
|
-
});
|
234
|
-
};
|
20
|
+
function subscription(subscribe, opts) {
|
21
|
+
const scope = (0, contexts_js_1.getCurrentScope)();
|
22
|
+
return async_js_1.ReactivePromise.createSubscription(subscribe, scope, opts);
|
235
23
|
}
|
236
|
-
const
|
237
|
-
|
238
|
-
|
239
|
-
const key = getComputedKey(fn, params);
|
240
|
-
return (0, config_js_1.useSignalValue)(key, () => {
|
241
|
-
const scope = getCurrentScope();
|
242
|
-
return scope.get(signals_js_1.createAsyncTaskSignal, fn, key, params, args, opts);
|
243
|
-
});
|
244
|
-
};
|
24
|
+
const task = (fn, opts) => {
|
25
|
+
const scope = (0, contexts_js_1.getCurrentScope)();
|
26
|
+
return async_js_1.ReactivePromise.createTask(fn, scope, opts);
|
245
27
|
};
|
246
|
-
exports.
|
28
|
+
exports.task = task;
|
247
29
|
function watcher(fn, opts) {
|
248
|
-
|
249
|
-
const w = (0, signals_js_1.createWatcherSignal)(fn, opts);
|
250
|
-
exports.COMPUTED_OWNERS.set(w, scope);
|
251
|
-
return w;
|
30
|
+
return (0, derived_js_1.createDerivedSignal)(fn, undefined, undefined, opts?.scope, opts);
|
252
31
|
}
|
253
32
|
//# sourceMappingURL=hooks.js.map
|
package/dist/cjs/hooks.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/hooks.ts"],"names":[],"mappings":"
|
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"}
|
package/dist/cjs/index.d.ts
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
export type * from './types.js';
|
2
|
-
export {
|
3
|
-
export {
|
2
|
+
export { state, reactive, subscription, task, watcher } from './hooks.js';
|
3
|
+
export { isReactivePromise, isReactiveTask, isReactiveSubscription } from './internals/async.js';
|
4
|
+
export { callback } from './internals/get.js';
|
5
|
+
export { createContext, useContext, withContexts, SignalScope, CONTEXT_KEY } from './internals/contexts.js';
|
4
6
|
export { setConfig } from './config.js';
|
5
|
-
export { hashValue
|
7
|
+
export { hashValue, registerCustomHash } from './internals/utils/hash.js';
|
6
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cjs/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAC;AAEhC,OAAO,
|
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"}
|