signalium 0.3.8 → 1.0.1
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 +21 -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 +52 -0
- package/dist/cjs/internals/async.d.ts.map +1 -0
- package/dist/cjs/internals/async.js +394 -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 +52 -0
- package/dist/esm/internals/async.d.ts.map +1 -0
- package/dist/esm/internals/async.js +387 -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 +558 -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/dist/cjs/index.js
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
4
|
-
var signals_js_1 = require("./signals.js");
|
5
|
-
Object.defineProperty(exports, "createStateSignal", { enumerable: true, get: function () { return signals_js_1.createStateSignal; } });
|
6
|
-
Object.defineProperty(exports, "createComputedSignal", { enumerable: true, get: function () { return signals_js_1.createComputedSignal; } });
|
7
|
-
Object.defineProperty(exports, "createAsyncComputedSignal", { enumerable: true, get: function () { return signals_js_1.createAsyncComputedSignal; } });
|
8
|
-
Object.defineProperty(exports, "createSubscriptionSignal", { enumerable: true, get: function () { return signals_js_1.createSubscriptionSignal; } });
|
9
|
-
Object.defineProperty(exports, "createWatcherSignal", { enumerable: true, get: function () { return signals_js_1.createWatcherSignal; } });
|
10
|
-
Object.defineProperty(exports, "createAsyncTaskSignal", { enumerable: true, get: function () { return signals_js_1.createAsyncTaskSignal; } });
|
11
|
-
Object.defineProperty(exports, "getCurrentConsumer", { enumerable: true, get: function () { return signals_js_1.getCurrentConsumer; } });
|
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;
|
12
4
|
var hooks_js_1 = require("./hooks.js");
|
13
5
|
Object.defineProperty(exports, "state", { enumerable: true, get: function () { return hooks_js_1.state; } });
|
14
|
-
Object.defineProperty(exports, "
|
15
|
-
Object.defineProperty(exports, "useContext", { enumerable: true, get: function () { return hooks_js_1.useContext; } });
|
16
|
-
Object.defineProperty(exports, "withContext", { enumerable: true, get: function () { return hooks_js_1.withContext; } });
|
17
|
-
Object.defineProperty(exports, "computed", { enumerable: true, get: function () { return hooks_js_1.computed; } });
|
18
|
-
Object.defineProperty(exports, "asyncComputed", { enumerable: true, get: function () { return hooks_js_1.asyncComputed; } });
|
19
|
-
Object.defineProperty(exports, "asyncTask", { enumerable: true, get: function () { return hooks_js_1.asyncTask; } });
|
6
|
+
Object.defineProperty(exports, "reactive", { enumerable: true, get: function () { return hooks_js_1.reactive; } });
|
20
7
|
Object.defineProperty(exports, "subscription", { enumerable: true, get: function () { return hooks_js_1.subscription; } });
|
8
|
+
Object.defineProperty(exports, "task", { enumerable: true, get: function () { return hooks_js_1.task; } });
|
21
9
|
Object.defineProperty(exports, "watcher", { enumerable: true, get: function () { return hooks_js_1.watcher; } });
|
22
|
-
|
10
|
+
var async_js_1 = require("./internals/async.js");
|
11
|
+
Object.defineProperty(exports, "isReactivePromise", { enumerable: true, get: function () { return async_js_1.isReactivePromise; } });
|
12
|
+
Object.defineProperty(exports, "isReactiveTask", { enumerable: true, get: function () { return async_js_1.isReactiveTask; } });
|
13
|
+
Object.defineProperty(exports, "isReactiveSubscription", { enumerable: true, get: function () { return async_js_1.isReactiveSubscription; } });
|
14
|
+
var get_js_1 = require("./internals/get.js");
|
15
|
+
Object.defineProperty(exports, "callback", { enumerable: true, get: function () { return get_js_1.callback; } });
|
16
|
+
var contexts_js_1 = require("./internals/contexts.js");
|
17
|
+
Object.defineProperty(exports, "createContext", { enumerable: true, get: function () { return contexts_js_1.createContext; } });
|
18
|
+
Object.defineProperty(exports, "useContext", { enumerable: true, get: function () { return contexts_js_1.useContext; } });
|
19
|
+
Object.defineProperty(exports, "withContexts", { enumerable: true, get: function () { return contexts_js_1.withContexts; } });
|
20
|
+
Object.defineProperty(exports, "SignalScope", { enumerable: true, get: function () { return contexts_js_1.SignalScope; } });
|
21
|
+
Object.defineProperty(exports, "CONTEXT_KEY", { enumerable: true, get: function () { return contexts_js_1.CONTEXT_KEY; } });
|
23
22
|
var config_js_1 = require("./config.js");
|
24
23
|
Object.defineProperty(exports, "setConfig", { enumerable: true, get: function () { return config_js_1.setConfig; } });
|
25
|
-
var
|
26
|
-
Object.defineProperty(exports, "
|
24
|
+
var hash_js_1 = require("./internals/utils/hash.js");
|
25
|
+
Object.defineProperty(exports, "hashValue", { enumerable: true, get: function () { return hash_js_1.hashValue; } });
|
26
|
+
Object.defineProperty(exports, "registerCustomHash", { enumerable: true, get: function () { return hash_js_1.registerCustomHash; } });
|
27
27
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAEA,
|
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"}
|
@@ -0,0 +1,52 @@
|
|
1
|
+
import { BaseReactivePromise, ReactiveSubscription, ReactiveTask, ReactivePromise as IReactivePromise, SignalOptionsWithInit, SignalSubscribe } from '../types.js';
|
2
|
+
import { DerivedSignal } from './derived.js';
|
3
|
+
import { PromiseEdge } from './edge.js';
|
4
|
+
import { SignalScope } from './contexts.js';
|
5
|
+
export declare class ReactivePromise<T, Args extends unknown[] = unknown[]> implements BaseReactivePromise<T> {
|
6
|
+
private _value;
|
7
|
+
private _error;
|
8
|
+
private _flags;
|
9
|
+
private _signal;
|
10
|
+
private _equals;
|
11
|
+
private _promise;
|
12
|
+
private _pending;
|
13
|
+
private _stateSubs;
|
14
|
+
_awaitSubs: Map<WeakRef<DerivedSignal<unknown, unknown[]>>, PromiseEdge>;
|
15
|
+
private _version;
|
16
|
+
private _boundRun;
|
17
|
+
static createPromise<T>(promise: Promise<T>, signal?: DerivedSignal<T, unknown[]>, initValue?: T | undefined): ReactivePromise<unknown, unknown[]>;
|
18
|
+
static createSubscription<T>(subscribe: SignalSubscribe<T>, scope: SignalScope, opts?: Partial<SignalOptionsWithInit<T, unknown[]>>): ReactivePromise<T, unknown[]>;
|
19
|
+
static createTask<T, Args extends unknown[]>(task: (...args: Args) => Promise<T>, scope: SignalScope, opts?: Partial<SignalOptionsWithInit<T, Args>>): ReactiveTask<T, Args>;
|
20
|
+
private _initFlags;
|
21
|
+
private _consumeFlags;
|
22
|
+
private _connect;
|
23
|
+
private _setFlags;
|
24
|
+
_setPending(): void;
|
25
|
+
_setPromise(promise: Promise<T>): Promise<void>;
|
26
|
+
private _setValue;
|
27
|
+
private _setError;
|
28
|
+
private _scheduleSubs;
|
29
|
+
get value(): T | undefined;
|
30
|
+
get error(): unknown;
|
31
|
+
get isPending(): boolean;
|
32
|
+
get isRejected(): boolean;
|
33
|
+
get isResolved(): boolean;
|
34
|
+
get isReady(): boolean;
|
35
|
+
get isSettled(): boolean;
|
36
|
+
get data(): T | undefined;
|
37
|
+
get isFetching(): boolean;
|
38
|
+
get isSuccess(): boolean;
|
39
|
+
get isError(): boolean;
|
40
|
+
get isFetched(): boolean;
|
41
|
+
_run(...args: Args): this;
|
42
|
+
run: (...args: Args) => this;
|
43
|
+
get rerun(): () => ReactivePromise<T, Args>;
|
44
|
+
then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>;
|
45
|
+
catch<TResult = never>(onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null): Promise<T | TResult>;
|
46
|
+
finally(onfinally?: (() => void) | null): Promise<T>;
|
47
|
+
get [Symbol.toStringTag](): string;
|
48
|
+
}
|
49
|
+
export declare function isReactivePromise(obj: unknown): obj is IReactivePromise<unknown>;
|
50
|
+
export declare function isReactiveTask(obj: unknown): obj is ReactiveTask<unknown, unknown[]>;
|
51
|
+
export declare function isReactiveSubscription<T, Args extends unknown[]>(obj: unknown): obj is ReactiveSubscription<T>;
|
52
|
+
//# sourceMappingURL=async.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../../src/internals/async.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,394 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ReactivePromise = void 0;
|
4
|
+
exports.isReactivePromise = isReactivePromise;
|
5
|
+
exports.isReactiveTask = isReactiveTask;
|
6
|
+
exports.isReactiveSubscription = isReactiveSubscription;
|
7
|
+
const derived_js_1 = require("./derived.js");
|
8
|
+
const get_js_1 = require("./get.js");
|
9
|
+
const dirty_js_1 = require("./dirty.js");
|
10
|
+
const scheduling_js_1 = require("./scheduling.js");
|
11
|
+
const edge_js_1 = require("./edge.js");
|
12
|
+
const contexts_js_1 = require("./contexts.js");
|
13
|
+
const state_js_1 = require("./state.js");
|
14
|
+
const type_utils_js_1 = require("./utils/type-utils.js");
|
15
|
+
const equals_js_1 = require("./utils/equals.js");
|
16
|
+
class ReactivePromise {
|
17
|
+
_value = undefined;
|
18
|
+
_error = undefined;
|
19
|
+
_flags = 0;
|
20
|
+
_signal = undefined;
|
21
|
+
_equals;
|
22
|
+
_promise;
|
23
|
+
_pending = [];
|
24
|
+
_stateSubs = new Map();
|
25
|
+
_awaitSubs = new Map();
|
26
|
+
// Version is not really needed in a pure signal world, but when integrating
|
27
|
+
// with non-signal code, it's sometimes needed to entangle changes to the promise.
|
28
|
+
// For example, in React we need to entangle each promise immediately after it
|
29
|
+
// was used because we can't dynamically call hooks.
|
30
|
+
_version = (0, state_js_1.createStateSignal)(0);
|
31
|
+
_boundRun;
|
32
|
+
static createPromise(promise, signal, initValue) {
|
33
|
+
const p = new ReactivePromise();
|
34
|
+
p._signal = signal;
|
35
|
+
p._equals = signal?.equals ?? ((a, b) => a === b);
|
36
|
+
p._initFlags(1 /* AsyncFlags.Pending */, initValue);
|
37
|
+
if (promise) {
|
38
|
+
p._setPromise(promise);
|
39
|
+
}
|
40
|
+
return p;
|
41
|
+
}
|
42
|
+
static createSubscription(subscribe, scope, opts) {
|
43
|
+
const p = new ReactivePromise();
|
44
|
+
const initValue = opts?.initValue;
|
45
|
+
let active = false;
|
46
|
+
let currentSub;
|
47
|
+
const unsubscribe = () => {
|
48
|
+
if (typeof currentSub === 'function') {
|
49
|
+
currentSub();
|
50
|
+
}
|
51
|
+
else if (currentSub !== undefined) {
|
52
|
+
currentSub.unsubscribe?.();
|
53
|
+
}
|
54
|
+
const signal = p._signal;
|
55
|
+
// Reset the signal state, preparing it for next activation
|
56
|
+
signal.subs = new Map();
|
57
|
+
signal._state = 2 /* SignalState.Dirty */;
|
58
|
+
signal.watchCount = 0;
|
59
|
+
active = false;
|
60
|
+
currentSub = undefined;
|
61
|
+
};
|
62
|
+
const state = {
|
63
|
+
get: () => p._value,
|
64
|
+
set: (value) => {
|
65
|
+
if (value !== null && typeof value === 'object' && (0, type_utils_js_1.isPromise)(value)) {
|
66
|
+
p._setPromise(value);
|
67
|
+
}
|
68
|
+
else {
|
69
|
+
p._setValue(value);
|
70
|
+
}
|
71
|
+
},
|
72
|
+
setError: (error) => {
|
73
|
+
p._setError(error);
|
74
|
+
},
|
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);
|
90
|
+
p._equals = (0, equals_js_1.equalsFrom)(opts?.equals);
|
91
|
+
p._initFlags(128 /* AsyncFlags.isSubscription */ | 1 /* AsyncFlags.Pending */, initValue);
|
92
|
+
return p;
|
93
|
+
}
|
94
|
+
static createTask(task, scope, opts) {
|
95
|
+
const p = new ReactivePromise();
|
96
|
+
const initValue = opts?.initValue;
|
97
|
+
p._signal = (...args) => {
|
98
|
+
return (0, contexts_js_1.withScope)(scope, () => {
|
99
|
+
const result = task(...args);
|
100
|
+
return typeof result === 'object' && result !== null && (0, type_utils_js_1.isGeneratorResult)(result)
|
101
|
+
? (0, get_js_1.generatorResultToPromise)(result, undefined)
|
102
|
+
: result;
|
103
|
+
});
|
104
|
+
};
|
105
|
+
p._equals = (0, equals_js_1.equalsFrom)(opts?.equals);
|
106
|
+
p._initFlags(64 /* AsyncFlags.isRunnable */, initValue);
|
107
|
+
return p;
|
108
|
+
}
|
109
|
+
_initFlags(baseFlags, initValue) {
|
110
|
+
let flags = baseFlags;
|
111
|
+
if (initValue !== undefined) {
|
112
|
+
flags |= 8 /* AsyncFlags.Ready */;
|
113
|
+
}
|
114
|
+
this._flags = flags;
|
115
|
+
this._value = initValue;
|
116
|
+
}
|
117
|
+
_consumeFlags(flags) {
|
118
|
+
if (get_js_1.CURRENT_CONSUMER === undefined)
|
119
|
+
return;
|
120
|
+
if ((this._flags & 128 /* AsyncFlags.isSubscription */) !== 0) {
|
121
|
+
this._connect();
|
122
|
+
}
|
123
|
+
const ref = get_js_1.CURRENT_CONSUMER.ref;
|
124
|
+
const subs = this._stateSubs;
|
125
|
+
const subbedFlags = subs.get(ref) ?? 0;
|
126
|
+
subs.set(ref, subbedFlags | flags);
|
127
|
+
}
|
128
|
+
_connect() {
|
129
|
+
const signal = this._signal;
|
130
|
+
if (get_js_1.CURRENT_CONSUMER?.watchCount === 0) {
|
131
|
+
const { ref, computedCount, deps } = get_js_1.CURRENT_CONSUMER;
|
132
|
+
const prevEdge = deps.get(signal);
|
133
|
+
if (prevEdge?.consumedAt !== computedCount) {
|
134
|
+
const newEdge = (0, edge_js_1.createEdge)(prevEdge, 0 /* EdgeType.Signal */, signal, signal.updatedCount, computedCount);
|
135
|
+
signal.subs.set(ref, newEdge);
|
136
|
+
deps.set(signal, newEdge);
|
137
|
+
}
|
138
|
+
}
|
139
|
+
else {
|
140
|
+
(0, get_js_1.getSignal)(signal);
|
141
|
+
}
|
142
|
+
}
|
143
|
+
_setFlags(setTrue, setFalse = 0, notify = 0) {
|
144
|
+
const prevFlags = this._flags;
|
145
|
+
const nextFlags = (prevFlags & ~setFalse) | setTrue;
|
146
|
+
const allChanged = (prevFlags ^ nextFlags) | notify;
|
147
|
+
this._flags = nextFlags;
|
148
|
+
if (allChanged === 0) {
|
149
|
+
return;
|
150
|
+
}
|
151
|
+
const subs = this._stateSubs;
|
152
|
+
for (const [signalRef, subbedFlags] of subs) {
|
153
|
+
if ((subbedFlags & allChanged) !== 0) {
|
154
|
+
const signal = signalRef.deref();
|
155
|
+
if (signal) {
|
156
|
+
(0, dirty_js_1.dirtySignal)(signal);
|
157
|
+
}
|
158
|
+
subs.delete(signalRef);
|
159
|
+
}
|
160
|
+
}
|
161
|
+
this._version.update(v => v + 1);
|
162
|
+
}
|
163
|
+
_setPending() {
|
164
|
+
this._setFlags(1 /* AsyncFlags.Pending */);
|
165
|
+
}
|
166
|
+
async _setPromise(promise) {
|
167
|
+
// Store the current promise so we can check if it's the same promise in the
|
168
|
+
// then handlers. If it's not the same promise, it means that the promise has
|
169
|
+
// been recomputed and replaced, so we should not update state.
|
170
|
+
this._promise = promise;
|
171
|
+
const flags = this._flags;
|
172
|
+
let awaitSubs = this._awaitSubs;
|
173
|
+
// If we were not already pending, we need to propagate the dirty state to any
|
174
|
+
// consumers that were added since the promise was resolved last.
|
175
|
+
if ((flags & 1 /* AsyncFlags.Pending */) === 0) {
|
176
|
+
this._setPending();
|
177
|
+
(0, dirty_js_1.dirtySignalConsumers)(awaitSubs);
|
178
|
+
this._awaitSubs = awaitSubs = new Map();
|
179
|
+
}
|
180
|
+
try {
|
181
|
+
const nextValue = await promise;
|
182
|
+
if (promise !== this._promise) {
|
183
|
+
return;
|
184
|
+
}
|
185
|
+
this._setValue(nextValue, awaitSubs);
|
186
|
+
}
|
187
|
+
catch (nextError) {
|
188
|
+
if (promise !== this._promise) {
|
189
|
+
return;
|
190
|
+
}
|
191
|
+
this._setError(nextError, awaitSubs);
|
192
|
+
}
|
193
|
+
}
|
194
|
+
_setValue(nextValue, awaitSubs = this._awaitSubs) {
|
195
|
+
let flags = this._flags;
|
196
|
+
let value = this._value;
|
197
|
+
let notifyFlags = 0;
|
198
|
+
if ((flags & 8 /* AsyncFlags.Ready */) === 0 || this._equals(value, nextValue) === false) {
|
199
|
+
this._value = value = nextValue;
|
200
|
+
notifyFlags = 16 /* AsyncFlags.Value */;
|
201
|
+
}
|
202
|
+
if (flags & 2 /* AsyncFlags.Rejected */) {
|
203
|
+
notifyFlags = 32 /* AsyncFlags.Error */;
|
204
|
+
this._error = undefined;
|
205
|
+
}
|
206
|
+
this._scheduleSubs(awaitSubs, notifyFlags !== 0);
|
207
|
+
this._setFlags(4 /* AsyncFlags.Resolved */ | 8 /* AsyncFlags.Ready */, 1 /* AsyncFlags.Pending */ | 2 /* AsyncFlags.Rejected */, notifyFlags);
|
208
|
+
for (const { ref, edge, resolve } of this._pending) {
|
209
|
+
resolve?.(value);
|
210
|
+
if (ref !== undefined) {
|
211
|
+
awaitSubs.set(ref, edge);
|
212
|
+
}
|
213
|
+
}
|
214
|
+
this._pending = [];
|
215
|
+
}
|
216
|
+
_setError(nextError, awaitSubs = this._awaitSubs) {
|
217
|
+
let error = this._error;
|
218
|
+
let notifyFlags = 0;
|
219
|
+
if (error !== nextError) {
|
220
|
+
this._error = error = nextError;
|
221
|
+
notifyFlags = 32 /* AsyncFlags.Error */;
|
222
|
+
}
|
223
|
+
this._scheduleSubs(awaitSubs, notifyFlags !== 0);
|
224
|
+
this._setFlags(2 /* AsyncFlags.Rejected */, 1 /* AsyncFlags.Pending */ | 4 /* AsyncFlags.Resolved */, notifyFlags);
|
225
|
+
for (const { ref, edge, reject } of this._pending) {
|
226
|
+
reject?.(error);
|
227
|
+
if (ref !== undefined) {
|
228
|
+
awaitSubs.set(ref, edge);
|
229
|
+
}
|
230
|
+
}
|
231
|
+
this._pending = [];
|
232
|
+
}
|
233
|
+
_scheduleSubs(awaitSubs, dirty) {
|
234
|
+
// Await subscribers that have been added since the promise was set are specifically
|
235
|
+
// subscribers that were previously notified and MaybeDirty, were removed from the
|
236
|
+
// signal, and then were checked (e.g. checkSignal was called on them) and they
|
237
|
+
// halted and added themselves back as dependencies.
|
238
|
+
//
|
239
|
+
// If the value actually changed, then these consumers are Dirty and will notify and
|
240
|
+
// schedule themselves the standard way here. If the value did not change, then the
|
241
|
+
// consumers are not notified and end up back in the same state as before the promise
|
242
|
+
// was set (because nothing changed), and instead they will be scheduled to continue
|
243
|
+
// the computation from where they left off.
|
244
|
+
const newState = dirty ? 2 /* SignalState.Dirty */ : 3 /* SignalState.MaybeDirty */;
|
245
|
+
for (const ref of awaitSubs.keys()) {
|
246
|
+
const signal = ref.deref();
|
247
|
+
if (signal === undefined) {
|
248
|
+
continue;
|
249
|
+
}
|
250
|
+
signal._state = newState;
|
251
|
+
(0, scheduling_js_1.scheduleAsyncPull)(signal);
|
252
|
+
}
|
253
|
+
}
|
254
|
+
get value() {
|
255
|
+
this._consumeFlags(16 /* AsyncFlags.Value */);
|
256
|
+
return this._value;
|
257
|
+
}
|
258
|
+
get error() {
|
259
|
+
this._consumeFlags(32 /* AsyncFlags.Error */);
|
260
|
+
return this._error;
|
261
|
+
}
|
262
|
+
get isPending() {
|
263
|
+
this._consumeFlags(1 /* AsyncFlags.Pending */);
|
264
|
+
return (this._flags & 1 /* AsyncFlags.Pending */) !== 0;
|
265
|
+
}
|
266
|
+
get isRejected() {
|
267
|
+
this._consumeFlags(2 /* AsyncFlags.Rejected */);
|
268
|
+
return (this._flags & 2 /* AsyncFlags.Rejected */) !== 0;
|
269
|
+
}
|
270
|
+
get isResolved() {
|
271
|
+
this._consumeFlags(4 /* AsyncFlags.Resolved */);
|
272
|
+
return (this._flags & 4 /* AsyncFlags.Resolved */) !== 0;
|
273
|
+
}
|
274
|
+
get isReady() {
|
275
|
+
this._consumeFlags(8 /* AsyncFlags.Ready */);
|
276
|
+
return (this._flags & 8 /* AsyncFlags.Ready */) !== 0;
|
277
|
+
}
|
278
|
+
get isSettled() {
|
279
|
+
this._consumeFlags(6 /* AsyncFlags.Settled */);
|
280
|
+
return (this._flags & 6 /* AsyncFlags.Settled */) !== 0;
|
281
|
+
}
|
282
|
+
// Aliases for backwards compatibility (TODO: Figure out how to do this better)
|
283
|
+
get data() {
|
284
|
+
return this.value;
|
285
|
+
}
|
286
|
+
get isFetching() {
|
287
|
+
return this.isPending;
|
288
|
+
}
|
289
|
+
get isSuccess() {
|
290
|
+
return this.isResolved;
|
291
|
+
}
|
292
|
+
get isError() {
|
293
|
+
return this.isRejected;
|
294
|
+
}
|
295
|
+
get isFetched() {
|
296
|
+
return this.isSettled;
|
297
|
+
}
|
298
|
+
_run(...args) {
|
299
|
+
const flags = this._flags;
|
300
|
+
const signal = this._signal;
|
301
|
+
if ((flags & 64 /* AsyncFlags.isRunnable */) !== 0) {
|
302
|
+
this._setPromise(signal(...args));
|
303
|
+
}
|
304
|
+
else if (signal) {
|
305
|
+
(0, dirty_js_1.dirtySignal)(signal);
|
306
|
+
}
|
307
|
+
else {
|
308
|
+
throw new Error('ReactivePromise is not runnable. If you are using run() on a ReactivePromise, make sure you used `task` to create this promise. If you are using rerun(), make sure its a promise that was generated by a reactive async function.');
|
309
|
+
}
|
310
|
+
return this;
|
311
|
+
}
|
312
|
+
run = this._run.bind(this);
|
313
|
+
get rerun() {
|
314
|
+
return this.run;
|
315
|
+
}
|
316
|
+
then(onfulfilled, onrejected) {
|
317
|
+
const flags = this._flags;
|
318
|
+
// Create a new Promise that will be returned
|
319
|
+
return new Promise((resolve, reject) => {
|
320
|
+
let ref, edge;
|
321
|
+
if (get_js_1.CURRENT_CONSUMER !== undefined) {
|
322
|
+
if ((flags & 128 /* AsyncFlags.isSubscription */) !== 0) {
|
323
|
+
this._connect();
|
324
|
+
}
|
325
|
+
ref = get_js_1.CURRENT_CONSUMER.ref;
|
326
|
+
const prevEdge = this._awaitSubs.get(ref) ?? (0, edge_js_1.findAndRemoveDirty)(get_js_1.CURRENT_CONSUMER, this);
|
327
|
+
edge = (0, edge_js_1.createEdge)(prevEdge, 1 /* EdgeType.Promise */, this, -1, get_js_1.CURRENT_CONSUMER.computedCount);
|
328
|
+
}
|
329
|
+
// Create wrapper functions that will call the original callbacks and then resolve/reject the new Promise
|
330
|
+
const wrappedFulfilled = onfulfilled
|
331
|
+
? (value) => {
|
332
|
+
try {
|
333
|
+
const result = onfulfilled(value);
|
334
|
+
resolve(result);
|
335
|
+
}
|
336
|
+
catch (error) {
|
337
|
+
reject(error);
|
338
|
+
}
|
339
|
+
}
|
340
|
+
: resolve;
|
341
|
+
const wrappedRejected = onrejected
|
342
|
+
? (reason) => {
|
343
|
+
try {
|
344
|
+
const result = onrejected(reason);
|
345
|
+
resolve(result);
|
346
|
+
}
|
347
|
+
catch (error) {
|
348
|
+
reject(error);
|
349
|
+
}
|
350
|
+
}
|
351
|
+
: reject;
|
352
|
+
if (flags & 1 /* AsyncFlags.Pending */) {
|
353
|
+
this._pending.push({ ref, edge, resolve: wrappedFulfilled, reject: wrappedRejected });
|
354
|
+
}
|
355
|
+
else {
|
356
|
+
if (flags & 4 /* AsyncFlags.Resolved */) {
|
357
|
+
wrappedFulfilled(this._value);
|
358
|
+
}
|
359
|
+
else if (flags & 2 /* AsyncFlags.Rejected */) {
|
360
|
+
wrappedRejected(this._error);
|
361
|
+
}
|
362
|
+
if (ref) {
|
363
|
+
this._awaitSubs.set(ref, edge);
|
364
|
+
}
|
365
|
+
}
|
366
|
+
});
|
367
|
+
}
|
368
|
+
catch(onrejected) {
|
369
|
+
return this.then(null, onrejected);
|
370
|
+
}
|
371
|
+
finally(onfinally) {
|
372
|
+
return this.then(value => {
|
373
|
+
onfinally?.();
|
374
|
+
return value;
|
375
|
+
}, reason => {
|
376
|
+
onfinally?.();
|
377
|
+
throw reason;
|
378
|
+
});
|
379
|
+
}
|
380
|
+
get [Symbol.toStringTag]() {
|
381
|
+
return 'ReactivePromise';
|
382
|
+
}
|
383
|
+
}
|
384
|
+
exports.ReactivePromise = ReactivePromise;
|
385
|
+
function isReactivePromise(obj) {
|
386
|
+
return obj instanceof ReactivePromise && (obj['_flags'] & (128 /* AsyncFlags.isSubscription */ & 64 /* AsyncFlags.isRunnable */)) === 0;
|
387
|
+
}
|
388
|
+
function isReactiveTask(obj) {
|
389
|
+
return obj instanceof ReactivePromise && (obj['_flags'] & 64 /* AsyncFlags.isRunnable */) !== 0;
|
390
|
+
}
|
391
|
+
function isReactiveSubscription(obj) {
|
392
|
+
return obj instanceof ReactivePromise && (obj['_flags'] & 128 /* AsyncFlags.isSubscription */) !== 0;
|
393
|
+
}
|
394
|
+
//# sourceMappingURL=async.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../../src/internals/async.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +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"}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.watchSignal = watchSignal;
|
4
|
+
exports.unwatchSignal = unwatchSignal;
|
5
|
+
const derived_js_1 = require("./derived.js");
|
6
|
+
const get_js_1 = require("./get.js");
|
7
|
+
function watchSignal(signal) {
|
8
|
+
const { watchCount } = signal;
|
9
|
+
const newWatchCount = watchCount + 1;
|
10
|
+
signal.watchCount = newWatchCount;
|
11
|
+
// If > 0, already watching, return
|
12
|
+
if (watchCount > 0)
|
13
|
+
return;
|
14
|
+
for (const dep of signal.deps.keys()) {
|
15
|
+
watchSignal(dep);
|
16
|
+
}
|
17
|
+
if ((0, derived_js_1.isSubscription)(signal)) {
|
18
|
+
// Bootstrap the subscription
|
19
|
+
(0, get_js_1.checkSignal)(signal);
|
20
|
+
}
|
21
|
+
}
|
22
|
+
function unwatchSignal(signal, count = 1) {
|
23
|
+
const { watchCount } = signal;
|
24
|
+
const newWatchCount = Math.max(watchCount - count, 0);
|
25
|
+
signal.watchCount = newWatchCount;
|
26
|
+
if (newWatchCount > 0) {
|
27
|
+
return;
|
28
|
+
}
|
29
|
+
for (const dep of signal.deps.keys()) {
|
30
|
+
unwatchSignal(dep);
|
31
|
+
}
|
32
|
+
if ((0, derived_js_1.isSubscription)(signal)) {
|
33
|
+
// teardown the subscription
|
34
|
+
signal.value?.();
|
35
|
+
}
|
36
|
+
}
|
37
|
+
//# sourceMappingURL=connect.js.map
|
@@ -0,0 +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"}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import { DerivedSignal } from './derived.js';
|
2
|
+
export declare let CURRENT_CONSUMER: DerivedSignal<any, any> | undefined;
|
3
|
+
export declare let IS_WATCHING: boolean;
|
4
|
+
export declare const setIsWatching: (isWatching: boolean) => void;
|
5
|
+
export declare const setCurrentConsumer: (consumer: DerivedSignal<any, any> | undefined) => void;
|
6
|
+
//# sourceMappingURL=consumer.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"consumer.d.ts","sourceRoot":"","sources":["../../../src/internals/consumer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,eAAO,IAAI,gBAAgB,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;AAEjE,eAAO,IAAI,WAAW,SAAQ,CAAC;AAE/B,eAAO,MAAM,aAAa,eAAgB,OAAO,SAEhD,CAAC;AAEF,eAAO,MAAM,kBAAkB,aAAc,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,SAE/E,CAAC"}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.setCurrentConsumer = exports.setIsWatching = exports.IS_WATCHING = exports.CURRENT_CONSUMER = void 0;
|
4
|
+
exports.IS_WATCHING = false;
|
5
|
+
const setIsWatching = (isWatching) => {
|
6
|
+
exports.IS_WATCHING = isWatching;
|
7
|
+
};
|
8
|
+
exports.setIsWatching = setIsWatching;
|
9
|
+
const setCurrentConsumer = (consumer) => {
|
10
|
+
exports.CURRENT_CONSUMER = consumer;
|
11
|
+
};
|
12
|
+
exports.setCurrentConsumer = setCurrentConsumer;
|
13
|
+
//# sourceMappingURL=consumer.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"consumer.js","sourceRoot":"","sources":["../../../src/internals/consumer.ts"],"names":[],"mappings":";;;AAIW,QAAA,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,aAAa,GAAG,CAAC,UAAmB,EAAE,EAAE;IACnD,mBAAW,GAAG,UAAU,CAAC;AAC3B,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AAEK,MAAM,kBAAkB,GAAG,CAAC,QAA6C,EAAE,EAAE;IAClF,wBAAgB,GAAG,QAAQ,CAAC;AAC9B,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B"}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import { SignalOptionsWithInit } from '../types.js';
|
2
|
+
import { DerivedSignal } from './derived.js';
|
3
|
+
export declare const CONTEXT_KEY: unique symbol;
|
4
|
+
export type Context<T> = {
|
5
|
+
defaultValue: T;
|
6
|
+
};
|
7
|
+
export type ContextPair<T extends unknown[]> = {
|
8
|
+
[K in keyof T]: [Context<T[K]>, NoInfer<T[K]>];
|
9
|
+
};
|
10
|
+
export declare class ContextImpl<T> {
|
11
|
+
readonly defaultValue: T;
|
12
|
+
_key: symbol;
|
13
|
+
_description: string;
|
14
|
+
constructor(defaultValue: T, desc?: string);
|
15
|
+
}
|
16
|
+
export declare const createContext: <T>(initialValue: T, description?: string) => Context<T>;
|
17
|
+
export declare class SignalScope {
|
18
|
+
constructor(contexts: [ContextImpl<unknown>, unknown][], parent?: SignalScope);
|
19
|
+
private parentScope?;
|
20
|
+
private contexts;
|
21
|
+
private children;
|
22
|
+
private signals;
|
23
|
+
getChild(contexts: [ContextImpl<unknown>, unknown][]): SignalScope;
|
24
|
+
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
|
+
}
|
27
|
+
export declare let ROOT_SCOPE: SignalScope;
|
28
|
+
export declare const clearRootScope: () => void;
|
29
|
+
export declare const getCurrentScope: () => SignalScope;
|
30
|
+
export declare function withContexts<C extends unknown[], U>(contexts: [...ContextPair<C>], fn: () => U): U;
|
31
|
+
export declare const withScope: <T>(scope: SignalScope, fn: () => T) => T;
|
32
|
+
export declare const useContext: <T>(context: Context<T>) => T;
|
33
|
+
//# sourceMappingURL=contexts.d.ts.map
|