signalium 1.2.2 → 2.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/CHANGELOG.md +37 -0
- package/{build/transform.js → config.js} +1 -5
- package/{build/react.js → debug.js} +1 -5
- package/dist/cjs/config.d.ts +1 -21
- package/dist/cjs/config.d.ts.map +1 -1
- package/dist/cjs/config.js +3 -36
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/debug.d.ts +1 -1
- package/dist/cjs/debug.d.ts.map +1 -1
- package/dist/cjs/debug.js +1 -1
- package/dist/cjs/debug.js.map +1 -1
- package/dist/cjs/index.d.ts +5 -6
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +17 -23
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internals/async.d.ts +24 -19
- package/dist/cjs/internals/async.d.ts.map +1 -1
- package/dist/cjs/internals/async.js +264 -137
- package/dist/cjs/internals/async.js.map +1 -1
- package/dist/cjs/internals/callback.d.ts +13 -0
- package/dist/cjs/internals/callback.d.ts.map +1 -0
- package/dist/cjs/internals/callback.js +73 -0
- package/dist/cjs/internals/callback.js.map +1 -0
- package/dist/cjs/internals/config.d.ts +7 -0
- package/dist/cjs/internals/config.d.ts.map +1 -0
- package/dist/cjs/internals/config.js +17 -0
- package/dist/cjs/internals/config.js.map +1 -0
- package/dist/cjs/internals/consumer.d.ts +3 -3
- package/dist/cjs/internals/consumer.d.ts.map +1 -1
- package/dist/cjs/internals/consumer.js.map +1 -1
- package/dist/cjs/internals/contexts.d.ts +15 -14
- package/dist/cjs/internals/contexts.d.ts.map +1 -1
- package/dist/cjs/internals/contexts.js +52 -52
- package/dist/cjs/internals/contexts.js.map +1 -1
- package/dist/cjs/internals/core-api.d.ts +14 -0
- package/dist/cjs/internals/core-api.d.ts.map +1 -0
- package/dist/cjs/internals/core-api.js +83 -0
- package/dist/cjs/internals/core-api.js.map +1 -0
- package/dist/cjs/internals/dirty.d.ts +3 -3
- package/dist/cjs/internals/dirty.d.ts.map +1 -1
- package/dist/cjs/internals/dirty.js +13 -13
- package/dist/cjs/internals/dirty.js.map +1 -1
- package/dist/cjs/internals/edge.d.ts +5 -5
- package/dist/cjs/internals/edge.d.ts.map +1 -1
- package/dist/cjs/internals/edge.js.map +1 -1
- package/dist/cjs/internals/generators.d.ts +5 -0
- package/dist/cjs/internals/generators.d.ts.map +1 -0
- package/dist/cjs/internals/generators.js +83 -0
- package/dist/cjs/internals/generators.js.map +1 -0
- package/dist/cjs/internals/get.d.ts +5 -8
- package/dist/cjs/internals/get.d.ts.map +1 -1
- package/dist/cjs/internals/get.js +48 -107
- package/dist/cjs/internals/get.js.map +1 -1
- package/dist/cjs/internals/reactive.d.ts +77 -0
- package/dist/cjs/internals/reactive.d.ts.map +1 -0
- package/dist/cjs/internals/{derived.js → reactive.js} +45 -33
- package/dist/cjs/internals/reactive.js.map +1 -0
- package/dist/cjs/internals/scheduling.d.ts +7 -7
- package/dist/cjs/internals/scheduling.d.ts.map +1 -1
- package/dist/cjs/internals/scheduling.js +9 -9
- package/dist/cjs/internals/scheduling.js.map +1 -1
- package/dist/cjs/internals/signal.d.ts +20 -0
- package/dist/cjs/internals/signal.d.ts.map +1 -0
- package/dist/cjs/internals/{state.js → signal.js} +31 -27
- package/dist/cjs/internals/signal.js.map +1 -0
- package/dist/{esm → cjs/internals}/trace.d.ts +1 -1
- package/dist/cjs/internals/trace.d.ts.map +1 -0
- package/dist/cjs/{trace.js → internals/trace.js} +1 -1
- package/dist/cjs/internals/trace.js.map +1 -0
- package/dist/cjs/internals/utils/equals.d.ts +4 -4
- package/dist/cjs/internals/utils/equals.d.ts.map +1 -1
- package/dist/cjs/internals/utils/equals.js.map +1 -1
- package/dist/cjs/internals/utils/type-utils.d.ts +0 -2
- package/dist/cjs/internals/utils/type-utils.d.ts.map +1 -1
- package/dist/cjs/internals/utils/type-utils.js +0 -5
- package/dist/cjs/internals/utils/type-utils.js.map +1 -1
- package/dist/cjs/internals/watch.d.ts +4 -0
- package/dist/cjs/internals/watch.d.ts.map +1 -0
- package/dist/cjs/internals/{connect.js → watch.js} +7 -7
- package/dist/cjs/internals/watch.js.map +1 -0
- package/dist/cjs/internals/weakref.d.ts.map +1 -0
- package/dist/cjs/internals/weakref.js.map +1 -0
- package/dist/cjs/react/component.d.ts +2 -0
- package/dist/cjs/react/component.d.ts.map +1 -0
- package/dist/cjs/react/component.js +40 -0
- package/dist/cjs/react/component.js.map +1 -0
- package/dist/cjs/react/context.d.ts +2 -1
- package/dist/cjs/react/context.d.ts.map +1 -1
- package/dist/cjs/react/context.js +10 -5
- package/dist/cjs/react/context.js.map +1 -1
- package/dist/cjs/react/index.d.ts +4 -4
- package/dist/cjs/react/index.d.ts.map +1 -1
- package/dist/cjs/react/index.js +11 -8
- package/dist/cjs/react/index.js.map +1 -1
- package/dist/cjs/react/provider.d.ts.map +1 -1
- package/dist/cjs/react/provider.js +1 -1
- package/dist/cjs/react/provider.js.map +1 -1
- package/dist/cjs/react/rendering.d.ts +0 -6
- package/dist/cjs/react/rendering.d.ts.map +1 -1
- package/dist/cjs/react/rendering.js +1 -19
- package/dist/cjs/react/rendering.js.map +1 -1
- package/dist/cjs/react/use-reactive.d.ts +7 -0
- package/dist/cjs/react/use-reactive.d.ts.map +1 -0
- package/dist/cjs/react/use-reactive.js +67 -0
- package/dist/cjs/react/use-reactive.js.map +1 -0
- package/dist/cjs/react/use-signal.d.ts +3 -0
- package/dist/cjs/react/use-signal.d.ts.map +1 -0
- package/dist/cjs/react/{state.js → use-signal.js} +5 -5
- package/dist/cjs/react/use-signal.js.map +1 -0
- package/dist/cjs/{transform.d.ts → transform/async.d.ts} +1 -1
- package/dist/cjs/transform/async.d.ts.map +1 -0
- package/dist/cjs/{transform.js → transform/async.js} +22 -9
- package/dist/cjs/transform/async.js.map +1 -0
- package/dist/cjs/transform/callback.d.ts +6 -0
- package/dist/cjs/transform/callback.d.ts.map +1 -0
- package/dist/cjs/transform/callback.js +259 -0
- package/dist/cjs/transform/callback.js.map +1 -0
- package/dist/cjs/transform/index.d.ts +5 -0
- package/dist/cjs/transform/index.d.ts.map +1 -0
- package/dist/cjs/transform/index.js +12 -0
- package/dist/cjs/transform/index.js.map +1 -0
- package/dist/cjs/transform/preset.d.ts +7 -0
- package/dist/cjs/transform/preset.d.ts.map +1 -0
- package/dist/cjs/transform/preset.js +20 -0
- package/dist/cjs/transform/preset.js.map +1 -0
- package/dist/cjs/transform/promise.d.ts +6 -0
- package/dist/cjs/transform/promise.d.ts.map +1 -0
- package/dist/cjs/transform/promise.js +129 -0
- package/dist/cjs/transform/promise.js.map +1 -0
- package/dist/cjs/types.d.ts +44 -63
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/utils.d.ts +2 -0
- package/dist/cjs/utils.d.ts.map +1 -0
- package/dist/cjs/utils.js +7 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/esm/config.d.ts +1 -21
- package/dist/esm/config.d.ts.map +1 -1
- package/dist/esm/config.js +1 -29
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/debug.d.ts +1 -1
- package/dist/esm/debug.d.ts.map +1 -1
- package/dist/esm/debug.js +1 -1
- package/dist/esm/debug.js.map +1 -1
- package/dist/esm/index.d.ts +5 -6
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +5 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internals/async.d.ts +24 -19
- package/dist/esm/internals/async.d.ts.map +1 -1
- package/dist/esm/internals/async.js +253 -128
- package/dist/esm/internals/async.js.map +1 -1
- package/dist/esm/internals/callback.d.ts +13 -0
- package/dist/esm/internals/callback.d.ts.map +1 -0
- package/dist/esm/internals/callback.js +67 -0
- package/dist/esm/internals/callback.js.map +1 -0
- package/dist/esm/internals/config.d.ts +7 -0
- package/dist/esm/internals/config.d.ts.map +1 -0
- package/dist/esm/internals/config.js +11 -0
- package/dist/esm/internals/config.js.map +1 -0
- package/dist/esm/internals/consumer.d.ts +3 -3
- package/dist/esm/internals/consumer.d.ts.map +1 -1
- package/dist/esm/internals/consumer.js.map +1 -1
- package/dist/esm/internals/contexts.d.ts +15 -14
- package/dist/esm/internals/contexts.d.ts.map +1 -1
- package/dist/esm/internals/contexts.js +46 -46
- package/dist/esm/internals/contexts.js.map +1 -1
- package/dist/esm/internals/core-api.d.ts +14 -0
- package/dist/esm/internals/core-api.d.ts.map +1 -0
- package/dist/esm/internals/core-api.js +74 -0
- package/dist/esm/internals/core-api.js.map +1 -0
- package/dist/esm/internals/dirty.d.ts +3 -3
- package/dist/esm/internals/dirty.d.ts.map +1 -1
- package/dist/esm/internals/dirty.js +12 -12
- package/dist/esm/internals/dirty.js.map +1 -1
- package/dist/esm/internals/edge.d.ts +5 -5
- package/dist/esm/internals/edge.d.ts.map +1 -1
- package/dist/esm/internals/edge.js.map +1 -1
- package/dist/esm/internals/generators.d.ts +5 -0
- package/dist/esm/internals/generators.d.ts.map +1 -0
- package/dist/esm/internals/generators.js +79 -0
- package/dist/esm/internals/generators.js.map +1 -0
- package/dist/esm/internals/get.d.ts +5 -8
- package/dist/esm/internals/get.d.ts.map +1 -1
- package/dist/esm/internals/get.js +43 -100
- package/dist/esm/internals/get.js.map +1 -1
- package/dist/esm/internals/reactive.d.ts +77 -0
- package/dist/esm/internals/reactive.d.ts.map +1 -0
- package/dist/esm/internals/{derived.js → reactive.js} +41 -29
- package/dist/esm/internals/reactive.js.map +1 -0
- package/dist/esm/internals/scheduling.d.ts +7 -7
- package/dist/esm/internals/scheduling.d.ts.map +1 -1
- package/dist/esm/internals/scheduling.js +6 -6
- package/dist/esm/internals/scheduling.js.map +1 -1
- package/dist/esm/internals/signal.d.ts +20 -0
- package/dist/esm/internals/signal.d.ts.map +1 -0
- package/dist/esm/internals/{state.js → signal.js} +25 -22
- package/dist/esm/internals/signal.js.map +1 -0
- package/dist/{cjs → esm/internals}/trace.d.ts +1 -1
- package/dist/esm/internals/trace.d.ts.map +1 -0
- package/dist/esm/{trace.js → internals/trace.js} +1 -1
- package/dist/esm/internals/trace.js.map +1 -0
- package/dist/esm/internals/utils/equals.d.ts +4 -4
- package/dist/esm/internals/utils/equals.d.ts.map +1 -1
- package/dist/esm/internals/utils/equals.js.map +1 -1
- package/dist/esm/internals/utils/type-utils.d.ts +0 -2
- package/dist/esm/internals/utils/type-utils.d.ts.map +1 -1
- package/dist/esm/internals/utils/type-utils.js +0 -4
- package/dist/esm/internals/utils/type-utils.js.map +1 -1
- package/dist/esm/internals/watch.d.ts +4 -0
- package/dist/esm/internals/watch.d.ts.map +1 -0
- package/dist/esm/internals/{connect.js → watch.js} +7 -7
- package/dist/esm/internals/watch.js.map +1 -0
- package/dist/esm/internals/weakref.d.ts.map +1 -0
- package/dist/esm/internals/weakref.js.map +1 -0
- package/dist/esm/react/component.d.ts +2 -0
- package/dist/esm/react/component.d.ts.map +1 -0
- package/dist/esm/react/component.js +37 -0
- package/dist/esm/react/component.js.map +1 -0
- package/dist/esm/react/context.d.ts +2 -1
- package/dist/esm/react/context.d.ts.map +1 -1
- package/dist/esm/react/context.js +10 -6
- package/dist/esm/react/context.js.map +1 -1
- package/dist/esm/react/index.d.ts +4 -4
- package/dist/esm/react/index.d.ts.map +1 -1
- package/dist/esm/react/index.js +4 -4
- package/dist/esm/react/index.js.map +1 -1
- package/dist/esm/react/provider.d.ts.map +1 -1
- package/dist/esm/react/provider.js +2 -2
- package/dist/esm/react/provider.js.map +1 -1
- package/dist/esm/react/rendering.d.ts +0 -6
- package/dist/esm/react/rendering.d.ts.map +1 -1
- package/dist/esm/react/rendering.js +1 -17
- package/dist/esm/react/rendering.js.map +1 -1
- package/dist/esm/react/use-reactive.d.ts +7 -0
- package/dist/esm/react/use-reactive.d.ts.map +1 -0
- package/dist/esm/react/use-reactive.js +64 -0
- package/dist/esm/react/use-reactive.js.map +1 -0
- package/dist/esm/react/use-signal.d.ts +3 -0
- package/dist/esm/react/use-signal.d.ts.map +1 -0
- package/dist/esm/react/use-signal.js +10 -0
- package/dist/esm/react/use-signal.js.map +1 -0
- package/dist/esm/{transform.d.ts → transform/async.d.ts} +1 -1
- package/dist/esm/transform/async.d.ts.map +1 -0
- package/dist/esm/{transform.js → transform/async.js} +22 -9
- package/dist/esm/transform/async.js.map +1 -0
- package/dist/esm/transform/callback.d.ts +6 -0
- package/dist/esm/transform/callback.d.ts.map +1 -0
- package/dist/esm/transform/callback.js +256 -0
- package/dist/esm/transform/callback.js.map +1 -0
- package/dist/esm/transform/index.d.ts +5 -0
- package/dist/esm/transform/index.d.ts.map +1 -0
- package/dist/esm/transform/index.js +5 -0
- package/dist/esm/transform/index.js.map +1 -0
- package/dist/esm/transform/preset.d.ts +7 -0
- package/dist/esm/transform/preset.d.ts.map +1 -0
- package/dist/esm/transform/preset.js +17 -0
- package/dist/esm/transform/preset.js.map +1 -0
- package/dist/esm/transform/promise.d.ts +6 -0
- package/dist/esm/transform/promise.d.ts.map +1 -0
- package/dist/esm/transform/promise.js +126 -0
- package/dist/esm/transform/promise.js.map +1 -0
- package/dist/esm/types.d.ts +44 -63
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utils.d.ts +2 -0
- package/dist/esm/utils.d.ts.map +1 -0
- package/dist/esm/utils.js +2 -0
- package/dist/esm/utils.js.map +1 -0
- package/package.json +56 -58
- package/react.js +0 -4
- package/transform.js +1 -5
- package/utils.js +15 -0
- package/.turbo/turbo-build.log +0 -12
- package/dist/cjs/hooks.d.ts +0 -16
- package/dist/cjs/hooks.d.ts.map +0 -1
- package/dist/cjs/hooks.js +0 -44
- package/dist/cjs/hooks.js.map +0 -1
- package/dist/cjs/internals/connect.d.ts +0 -4
- package/dist/cjs/internals/connect.d.ts.map +0 -1
- package/dist/cjs/internals/connect.js.map +0 -1
- package/dist/cjs/internals/derived.d.ts +0 -76
- package/dist/cjs/internals/derived.d.ts.map +0 -1
- package/dist/cjs/internals/derived.js.map +0 -1
- package/dist/cjs/internals/state.d.ts +0 -18
- package/dist/cjs/internals/state.d.ts.map +0 -1
- package/dist/cjs/internals/state.js.map +0 -1
- package/dist/cjs/react/setup.d.ts +0 -2
- package/dist/cjs/react/setup.d.ts.map +0 -1
- package/dist/cjs/react/setup.js +0 -14
- package/dist/cjs/react/setup.js.map +0 -1
- package/dist/cjs/react/signal-value.d.ts +0 -6
- package/dist/cjs/react/signal-value.d.ts.map +0 -1
- package/dist/cjs/react/signal-value.js +0 -37
- package/dist/cjs/react/signal-value.js.map +0 -1
- package/dist/cjs/react/state.d.ts +0 -3
- package/dist/cjs/react/state.d.ts.map +0 -1
- package/dist/cjs/react/state.js.map +0 -1
- package/dist/cjs/trace.d.ts.map +0 -1
- package/dist/cjs/trace.js.map +0 -1
- package/dist/cjs/transform.d.ts.map +0 -1
- package/dist/cjs/transform.js.map +0 -1
- package/dist/cjs/weakref.d.ts.map +0 -1
- package/dist/cjs/weakref.js.map +0 -1
- package/dist/esm/hooks.d.ts +0 -16
- package/dist/esm/hooks.d.ts.map +0 -1
- package/dist/esm/hooks.js +0 -37
- package/dist/esm/hooks.js.map +0 -1
- package/dist/esm/internals/connect.d.ts +0 -4
- package/dist/esm/internals/connect.d.ts.map +0 -1
- package/dist/esm/internals/connect.js.map +0 -1
- package/dist/esm/internals/derived.d.ts +0 -76
- package/dist/esm/internals/derived.d.ts.map +0 -1
- package/dist/esm/internals/derived.js.map +0 -1
- package/dist/esm/internals/state.d.ts +0 -18
- package/dist/esm/internals/state.d.ts.map +0 -1
- package/dist/esm/internals/state.js.map +0 -1
- package/dist/esm/react/setup.d.ts +0 -2
- package/dist/esm/react/setup.d.ts.map +0 -1
- package/dist/esm/react/setup.js +0 -11
- package/dist/esm/react/setup.js.map +0 -1
- package/dist/esm/react/signal-value.d.ts +0 -6
- package/dist/esm/react/signal-value.d.ts.map +0 -1
- package/dist/esm/react/signal-value.js +0 -33
- package/dist/esm/react/signal-value.js.map +0 -1
- package/dist/esm/react/state.d.ts +0 -3
- package/dist/esm/react/state.d.ts.map +0 -1
- package/dist/esm/react/state.js +0 -10
- package/dist/esm/react/state.js.map +0 -1
- package/dist/esm/trace.d.ts.map +0 -1
- package/dist/esm/trace.js.map +0 -1
- package/dist/esm/transform.d.ts.map +0 -1
- package/dist/esm/transform.js.map +0 -1
- package/dist/esm/weakref.d.ts.map +0 -1
- package/dist/esm/weakref.js.map +0 -1
- package/src/__tests__/__snapshots__/context.test.ts.snap +0 -2101
- package/src/__tests__/__snapshots__/nesting.test.ts.snap +0 -16201
- package/src/__tests__/__snapshots__/params-and-state.test.ts.snap +0 -1879
- package/src/__tests__/async-task.test.ts +0 -327
- package/src/__tests__/context.test.ts +0 -619
- package/src/__tests__/gc.test.ts +0 -256
- package/src/__tests__/nesting.test.ts +0 -298
- package/src/__tests__/params-and-state.test.ts +0 -230
- package/src/__tests__/reactive-async.test.ts +0 -548
- package/src/__tests__/reactive-sync.test.ts +0 -130
- package/src/__tests__/subscription.test.ts +0 -510
- package/src/__tests__/utils/async.ts +0 -6
- package/src/__tests__/utils/instrumented-hooks.ts +0 -410
- package/src/__tests__/utils/permute.ts +0 -85
- package/src/config.ts +0 -54
- package/src/debug.ts +0 -14
- package/src/hooks.ts +0 -82
- package/src/index.ts +0 -21
- package/src/internals/async.ts +0 -563
- package/src/internals/connect.ts +0 -49
- package/src/internals/consumer.ts +0 -13
- package/src/internals/contexts.ts +0 -177
- package/src/internals/derived.ts +0 -217
- package/src/internals/dirty.ts +0 -91
- package/src/internals/edge.ts +0 -109
- package/src/internals/get.ts +0 -298
- package/src/internals/scheduling.ts +0 -160
- package/src/internals/state.ts +0 -111
- package/src/internals/utils/debug-name.ts +0 -14
- package/src/internals/utils/equals.ts +0 -12
- package/src/internals/utils/hash.ts +0 -221
- package/src/internals/utils/stringify.ts +0 -57
- package/src/internals/utils/type-utils.ts +0 -19
- package/src/react/__tests__/async.test.tsx +0 -704
- package/src/react/__tests__/basic.test.tsx +0 -95
- package/src/react/__tests__/contexts.test.tsx +0 -181
- package/src/react/__tests__/subscriptions.test.tsx +0 -49
- package/src/react/__tests__/utils.tsx +0 -40
- package/src/react/context.ts +0 -14
- package/src/react/index.ts +0 -6
- package/src/react/provider.tsx +0 -18
- package/src/react/rendering.ts +0 -43
- package/src/react/setup.ts +0 -11
- package/src/react/signal-value.ts +0 -50
- package/src/react/state.ts +0 -13
- package/src/trace.ts +0 -454
- package/src/transform.ts +0 -113
- package/src/types.ts +0 -115
- package/src/weakref.ts +0 -9
- package/tsconfig.json +0 -13
- package/vitest.workspace.ts +0 -61
- /package/dist/cjs/{weakref.d.ts → internals/weakref.d.ts} +0 -0
- /package/dist/cjs/{weakref.js → internals/weakref.js} +0 -0
- /package/dist/esm/{weakref.d.ts → internals/weakref.d.ts} +0 -0
- /package/dist/esm/{weakref.js → internals/weakref.js} +0 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.runBatch = exports.scheduleFlush = void 0;
|
4
|
+
exports.setConfig = setConfig;
|
5
|
+
let scheduleFlush = flushWatchers => {
|
6
|
+
setTimeout(() => {
|
7
|
+
flushWatchers();
|
8
|
+
}, 0);
|
9
|
+
};
|
10
|
+
exports.scheduleFlush = scheduleFlush;
|
11
|
+
let runBatch = fn => fn();
|
12
|
+
exports.runBatch = runBatch;
|
13
|
+
function setConfig(cfg) {
|
14
|
+
exports.scheduleFlush = cfg.scheduleFlush ?? exports.scheduleFlush;
|
15
|
+
exports.runBatch = cfg.runBatch ?? exports.runBatch;
|
16
|
+
}
|
17
|
+
//# sourceMappingURL=config.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/internals/config.ts"],"names":[],"mappings":";;;AAQA,8BAQC;AAhBM,IAAI,aAAa,GAA6B,aAAa,CAAC,EAAE;IACnE,UAAU,CAAC,GAAG,EAAE;QACd,aAAa,EAAE,CAAC;IAClB,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC,CAAC;AAJS,QAAA,aAAa,iBAItB;AAEK,IAAI,QAAQ,GAA6B,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AAAhD,QAAA,QAAQ,YAAwC;AAE3D,SAAgB,SAAS,CACvB,GAGE;IAEF,qBAAa,GAAG,GAAG,CAAC,aAAa,IAAI,qBAAa,CAAC;IACnD,gBAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,gBAAQ,CAAC;AACtC,CAAC"}
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import {
|
2
|
-
export declare let CURRENT_CONSUMER:
|
1
|
+
import { ReactiveFnSignal } from './reactive.js';
|
2
|
+
export declare let CURRENT_CONSUMER: ReactiveFnSignal<any, any> | undefined;
|
3
3
|
export declare let IS_WATCHING: boolean;
|
4
4
|
export declare const setIsWatching: (isWatching: boolean) => void;
|
5
|
-
export declare const setCurrentConsumer: (consumer:
|
5
|
+
export declare const setCurrentConsumer: (consumer: ReactiveFnSignal<any, any> | undefined) => void;
|
6
6
|
//# sourceMappingURL=consumer.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"consumer.d.ts","sourceRoot":"","sources":["../../../src/internals/consumer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"consumer.d.ts","sourceRoot":"","sources":["../../../src/internals/consumer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,eAAO,IAAI,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;AAEpE,eAAO,IAAI,WAAW,SAAQ,CAAC;AAE/B,eAAO,MAAM,aAAa,eAAgB,OAAO,SAEhD,CAAC;AAEF,eAAO,MAAM,kBAAkB,aAAc,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,SAElF,CAAC"}
|
@@ -1 +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,
|
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,QAAgD,EAAE,EAAE;IACrF,wBAAgB,GAAG,QAAQ,CAAC;AAC9B,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B"}
|
@@ -1,6 +1,4 @@
|
|
1
|
-
import {
|
2
|
-
import { DerivedSignal, DerivedSignalDefinition } from './derived.js';
|
3
|
-
export declare const CONTEXT_KEY: unique symbol;
|
1
|
+
import { ReactiveFnSignal, ReactiveFnDefinition } from './reactive.js';
|
4
2
|
export type Context<T> = {
|
5
3
|
defaultValue: T;
|
6
4
|
};
|
@@ -13,8 +11,11 @@ export declare class ContextImpl<T> {
|
|
13
11
|
_description: string;
|
14
12
|
constructor(defaultValue: T, desc?: string);
|
15
13
|
}
|
16
|
-
export declare const
|
14
|
+
export declare const context: <T>(initialValue: T, description?: string) => Context<T>;
|
15
|
+
export declare function withContexts<C extends unknown[], U>(contexts: [...ContextPair<C>], fn: () => U): U;
|
16
|
+
export declare const getContext: <T>(context: Context<T>) => T;
|
17
17
|
export declare class SignalScope {
|
18
|
+
private parentScope?;
|
18
19
|
constructor(contexts: [ContextImpl<unknown>, unknown][], parent?: SignalScope);
|
19
20
|
private contexts;
|
20
21
|
private children;
|
@@ -23,18 +24,18 @@ export declare class SignalScope {
|
|
23
24
|
setContexts(contexts: [ContextImpl<unknown>, unknown][]): void;
|
24
25
|
getChild(contexts: [ContextImpl<unknown>, unknown][]): SignalScope;
|
25
26
|
getContext<T>(_context: Context<T>): T | undefined;
|
26
|
-
get<T, Args extends unknown[]>(def:
|
27
|
-
markForGc(signal:
|
28
|
-
removeFromGc(signal:
|
29
|
-
forceGc(signal:
|
27
|
+
get<T, Args extends unknown[]>(def: ReactiveFnDefinition<T, Args>, args: Args): ReactiveFnSignal<T, Args>;
|
28
|
+
markForGc(signal: ReactiveFnSignal<any, any>): void;
|
29
|
+
removeFromGc(signal: ReactiveFnSignal<any, any>): void;
|
30
|
+
forceGc(signal: ReactiveFnSignal<any, any>): void;
|
30
31
|
sweepGc(): void;
|
31
32
|
}
|
32
|
-
export declare let
|
33
|
-
export declare function
|
34
|
-
export declare const
|
33
|
+
export declare let GLOBAL_SCOPE: SignalScope;
|
34
|
+
export declare function setGlobalContexts<C extends unknown[], U>(contexts: [...ContextPair<C>]): void;
|
35
|
+
export declare const clearGlobalContexts: () => void;
|
36
|
+
export declare let CURRENT_SCOPE: SignalScope | undefined;
|
37
|
+
export declare const setCurrentScope: (scope: SignalScope | undefined) => void;
|
35
38
|
export declare const getCurrentScope: () => SignalScope;
|
36
|
-
export declare
|
37
|
-
export declare const withScope: <T>(scope: SignalScope, fn: () => T) => T;
|
38
|
-
export declare const useContext: <T>(context: Context<T>) => T;
|
39
|
+
export declare const getOwner: (owner: object) => SignalScope | undefined;
|
39
40
|
export declare function forceGc(_signal: object): void;
|
40
41
|
//# sourceMappingURL=contexts.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"contexts.d.ts","sourceRoot":"","sources":["../../../src/internals/contexts.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"contexts.d.ts","sourceRoot":"","sources":["../../../src/internals/contexts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAA0B,MAAM,eAAe,CAAC;AAO/F,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,OAAO,GAAI,CAAC,gBAAgB,CAAC,gBAAgB,MAAM,KAAG,OAAO,CAAC,CAAC,CAE3E,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,UAAU,GAAI,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,KAAG,CAUnD,CAAC;AAIF,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAC,CAAc;gBAEtB,QAAQ,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW;IAO7E,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,OAAO,CAAiD;IAChE,OAAO,CAAC,YAAY,CAAyC;IAE7D,WAAW,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE;IAYvD,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,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC;IAazG,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC;IAO5C,YAAY,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC;IAI/C,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC;IAI1C,OAAO;CASR;AAED,eAAO,IAAI,YAAY,aAAsB,CAAC;AAE9C,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAE7F;AAED,eAAO,MAAM,mBAAmB,YAE/B,CAAC;AAEF,eAAO,IAAI,aAAa,EAAE,WAAW,GAAG,SAAS,CAAC;AAElD,eAAO,MAAM,eAAe,UAAW,WAAW,GAAG,SAAS,SAE7D,CAAC;AAEF,eAAO,MAAM,eAAe,QAAO,WAElC,CAAC;AAMF,eAAO,MAAM,QAAQ,UAAW,MAAM,KAAG,WAAW,GAAG,SAEtD,CAAC;AAIF,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,QAGtC"}
|
@@ -1,15 +1,13 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
4
|
-
exports.setRootContexts = setRootContexts;
|
3
|
+
exports.getOwner = exports.getCurrentScope = exports.setCurrentScope = exports.CURRENT_SCOPE = exports.clearGlobalContexts = exports.GLOBAL_SCOPE = exports.SignalScope = exports.getContext = exports.context = exports.ContextImpl = void 0;
|
5
4
|
exports.withContexts = withContexts;
|
5
|
+
exports.setGlobalContexts = setGlobalContexts;
|
6
6
|
exports.forceGc = forceGc;
|
7
|
-
const
|
8
|
-
const derived_js_1 = require("./derived.js");
|
9
|
-
const get_js_1 = require("./get.js");
|
7
|
+
const reactive_js_1 = require("./reactive.js");
|
10
8
|
const hash_js_1 = require("./utils/hash.js");
|
11
9
|
const scheduling_js_1 = require("./scheduling.js");
|
12
|
-
|
10
|
+
const consumer_js_1 = require("./consumer.js");
|
13
11
|
let CONTEXT_ID = 0;
|
14
12
|
class ContextImpl {
|
15
13
|
defaultValue;
|
@@ -22,12 +20,34 @@ class ContextImpl {
|
|
22
20
|
}
|
23
21
|
}
|
24
22
|
exports.ContextImpl = ContextImpl;
|
25
|
-
const
|
23
|
+
const context = (initialValue, description) => {
|
26
24
|
return new ContextImpl(initialValue, description);
|
27
25
|
};
|
28
|
-
exports.
|
26
|
+
exports.context = context;
|
27
|
+
function withContexts(contexts, fn) {
|
28
|
+
const prevScope = exports.CURRENT_SCOPE;
|
29
|
+
const currentScope = (0, exports.getCurrentScope)();
|
30
|
+
try {
|
31
|
+
exports.CURRENT_SCOPE = currentScope.getChild(contexts);
|
32
|
+
return fn();
|
33
|
+
}
|
34
|
+
finally {
|
35
|
+
exports.CURRENT_SCOPE = prevScope;
|
36
|
+
}
|
37
|
+
}
|
38
|
+
const getContext = (context) => {
|
39
|
+
const scope = exports.CURRENT_SCOPE ?? consumer_js_1.CURRENT_CONSUMER?.scope;
|
40
|
+
if (scope === undefined) {
|
41
|
+
throw new Error('getContext must be used within a reactive function, a withContext, or within a framework-specific context provider.');
|
42
|
+
}
|
43
|
+
return scope.getContext(context) ?? context.defaultValue;
|
44
|
+
};
|
45
|
+
exports.getContext = getContext;
|
46
|
+
// ======= Signal Scope =======
|
29
47
|
class SignalScope {
|
48
|
+
parentScope;
|
30
49
|
constructor(contexts, parent) {
|
50
|
+
this.parentScope = parent;
|
31
51
|
this.contexts = Object.create(parent?.contexts || null);
|
32
52
|
this.setContexts(contexts);
|
33
53
|
}
|
@@ -38,6 +58,9 @@ class SignalScope {
|
|
38
58
|
setContexts(contexts) {
|
39
59
|
for (const [context, value] of contexts) {
|
40
60
|
this.contexts[context._key] = value;
|
61
|
+
if (typeof value === 'object' && value !== null) {
|
62
|
+
OWNER_SCOPE_MAP.set(value, this);
|
63
|
+
}
|
41
64
|
}
|
42
65
|
this.signals.clear();
|
43
66
|
}
|
@@ -54,12 +77,12 @@ class SignalScope {
|
|
54
77
|
const context = _context;
|
55
78
|
return this.contexts[context._key];
|
56
79
|
}
|
57
|
-
get(def, args
|
58
|
-
const paramKey =
|
80
|
+
get(def, args) {
|
81
|
+
const paramKey = def.paramKey?.(...args);
|
59
82
|
const key = (0, hash_js_1.hashReactiveFn)(def.compute, paramKey ? [paramKey] : args);
|
60
83
|
let signal = this.signals.get(key);
|
61
84
|
if (signal === undefined) {
|
62
|
-
signal = (0,
|
85
|
+
signal = (0, reactive_js_1.createReactiveFnSignal)(def, args, key, this);
|
63
86
|
this.signals.set(key, signal);
|
64
87
|
}
|
65
88
|
return signal;
|
@@ -79,59 +102,36 @@ class SignalScope {
|
|
79
102
|
sweepGc() {
|
80
103
|
for (const signal of this.gcCandidates) {
|
81
104
|
if (signal.watchCount === 0) {
|
82
|
-
|
83
|
-
if (!shouldGC || shouldGC(signal, signal.value, signal.args)) {
|
84
|
-
this.signals.delete(signal.key);
|
85
|
-
}
|
105
|
+
this.signals.delete(signal.key);
|
86
106
|
}
|
87
107
|
}
|
88
108
|
this.gcCandidates = new Set();
|
89
109
|
}
|
90
110
|
}
|
91
111
|
exports.SignalScope = SignalScope;
|
92
|
-
exports.
|
93
|
-
function
|
94
|
-
exports.
|
112
|
+
exports.GLOBAL_SCOPE = new SignalScope([]);
|
113
|
+
function setGlobalContexts(contexts) {
|
114
|
+
exports.GLOBAL_SCOPE.setContexts(contexts);
|
95
115
|
}
|
96
|
-
const
|
97
|
-
exports.
|
116
|
+
const clearGlobalContexts = () => {
|
117
|
+
exports.GLOBAL_SCOPE = new SignalScope([]);
|
118
|
+
};
|
119
|
+
exports.clearGlobalContexts = clearGlobalContexts;
|
120
|
+
const setCurrentScope = (scope) => {
|
121
|
+
exports.CURRENT_SCOPE = scope;
|
98
122
|
};
|
99
|
-
exports.
|
100
|
-
let OVERRIDE_SCOPE;
|
123
|
+
exports.setCurrentScope = setCurrentScope;
|
101
124
|
const getCurrentScope = () => {
|
102
|
-
return
|
125
|
+
return exports.CURRENT_SCOPE ?? consumer_js_1.CURRENT_CONSUMER?.scope ?? exports.GLOBAL_SCOPE;
|
103
126
|
};
|
104
127
|
exports.getCurrentScope = getCurrentScope;
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
OVERRIDE_SCOPE = currentScope.getChild(contexts);
|
110
|
-
return fn();
|
111
|
-
}
|
112
|
-
finally {
|
113
|
-
OVERRIDE_SCOPE = prevScope;
|
114
|
-
}
|
115
|
-
}
|
116
|
-
const withScope = (scope, fn) => {
|
117
|
-
const prevScope = OVERRIDE_SCOPE;
|
118
|
-
try {
|
119
|
-
OVERRIDE_SCOPE = scope;
|
120
|
-
return fn();
|
121
|
-
}
|
122
|
-
finally {
|
123
|
-
OVERRIDE_SCOPE = prevScope;
|
124
|
-
}
|
125
|
-
};
|
126
|
-
exports.withScope = withScope;
|
127
|
-
const useContext = (context) => {
|
128
|
-
const scope = OVERRIDE_SCOPE ?? get_js_1.CURRENT_CONSUMER?.scope ?? (0, config_js_1.getFrameworkScope)();
|
129
|
-
if (scope === undefined) {
|
130
|
-
throw new Error('useContext must be used within a signal hook, a withContext, or within a framework-specific context provider.');
|
131
|
-
}
|
132
|
-
return scope.getContext(context) ?? context.defaultValue;
|
128
|
+
// ======= Owner =======
|
129
|
+
const OWNER_SCOPE_MAP = new Map();
|
130
|
+
const getOwner = (owner) => {
|
131
|
+
return OWNER_SCOPE_MAP.get(owner);
|
133
132
|
};
|
134
|
-
exports.
|
133
|
+
exports.getOwner = getOwner;
|
134
|
+
// ======= Test Helper =======
|
135
135
|
function forceGc(_signal) {
|
136
136
|
const signal = _signal;
|
137
137
|
signal.scope?.forceGc(signal);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"contexts.js","sourceRoot":"","sources":["../../../src/internals/contexts.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"contexts.js","sourceRoot":"","sources":["../../../src/internals/contexts.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { ReactiveTask, ReactiveValue, Watcher, ReactiveOptions, RelayActivate, type DiscriminatedReactivePromise, SignalOptions, ReactiveFn } from '../types.js';
|
2
|
+
import { ReactiveFnDefinition } from './reactive.js';
|
3
|
+
import { Tracer } from './trace.js';
|
4
|
+
export declare const DERIVED_DEFINITION_MAP: Map<Function, [(...args: any) => any, ReactiveFnDefinition<any, any>]>;
|
5
|
+
export declare function getReactiveFnAndDefinition<T, Args extends unknown[]>(fn: (...args: Args) => T, opts?: ReactiveOptions<T, Args>): [(...args: Args) => ReactiveValue<T>, ReactiveFnDefinition<T, Args>];
|
6
|
+
export declare function reactive<T, Args extends unknown[]>(fn: (...args: Args) => T, opts?: ReactiveOptions<T, Args>): ReactiveFn<T, Args>;
|
7
|
+
export declare const reactiveMethod: <T, Args extends unknown[]>(owner: object, fn: (...args: Args) => T, opts?: ReactiveOptions<T, Args>) => ReactiveFn<T, Args>;
|
8
|
+
export declare function relay<T>(activate: RelayActivate<T>, opts?: SignalOptions<T>): DiscriminatedReactivePromise<T>;
|
9
|
+
export declare const task: <T, Args extends unknown[]>(fn: (...args: Args) => Promise<T>, opts?: SignalOptions<T>) => ReactiveTask<T, Args>;
|
10
|
+
export declare function watcher<T>(fn: () => T, opts?: SignalOptions<T> & {
|
11
|
+
isolate?: boolean;
|
12
|
+
tracer?: Tracer;
|
13
|
+
}): Watcher<T>;
|
14
|
+
//# sourceMappingURL=core-api.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"core-api.d.ts","sourceRoot":"","sources":["../../../src/internals/core-api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,OAAO,EACP,eAAe,EACf,aAAa,EACb,KAAK,4BAA4B,EACjC,aAAa,EACb,UAAU,EACX,MAAM,aAAa,CAAC;AAErB,OAAO,EAA0B,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE7E,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIpC,eAAO,MAAM,sBAAsB,2BAAgC,GAAG,KAAK,GAAG,kCAAoC,CAAC;AAEnH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAClE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EACxB,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,GAC9B,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CA2BtE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAChD,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EACxB,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,GAC9B,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAErB;AAED,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,SAC/C,MAAM,MACT,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,SACjB,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,KAC9B,UAAU,CAAC,CAAC,EAAE,IAAI,CA0BpB,CAAC;AAEF,wBAAgB,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAI7G;AAED,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,MACxC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAC1B,aAAa,CAAC,CAAC,CAAC,KACtB,YAAY,CAAC,CAAC,EAAE,IAAI,CAItB,CAAC;AAEF,wBAAgB,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAcpH"}
|
@@ -0,0 +1,83 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.task = exports.reactiveMethod = exports.DERIVED_DEFINITION_MAP = void 0;
|
4
|
+
exports.getReactiveFnAndDefinition = getReactiveFnAndDefinition;
|
5
|
+
exports.reactive = reactive;
|
6
|
+
exports.relay = relay;
|
7
|
+
exports.watcher = watcher;
|
8
|
+
const contexts_js_1 = require("./contexts.js");
|
9
|
+
const reactive_js_1 = require("./reactive.js");
|
10
|
+
const async_js_1 = require("./async.js");
|
11
|
+
const equals_js_1 = require("./utils/equals.js");
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
13
|
+
exports.DERIVED_DEFINITION_MAP = new Map();
|
14
|
+
function getReactiveFnAndDefinition(fn, opts) {
|
15
|
+
let fnAndDef = exports.DERIVED_DEFINITION_MAP.get(fn);
|
16
|
+
if (!fnAndDef) {
|
17
|
+
const def = {
|
18
|
+
compute: fn,
|
19
|
+
equals: (0, equals_js_1.equalsFrom)(opts?.equals),
|
20
|
+
isRelay: false,
|
21
|
+
id: opts?.id,
|
22
|
+
desc: opts?.desc,
|
23
|
+
paramKey: opts?.paramKey,
|
24
|
+
tracer: undefined,
|
25
|
+
};
|
26
|
+
const reactiveFn = (...args) => {
|
27
|
+
const scope = (0, contexts_js_1.getCurrentScope)();
|
28
|
+
const signal = scope.get(def, args);
|
29
|
+
return signal.value;
|
30
|
+
};
|
31
|
+
fnAndDef = [reactiveFn, def];
|
32
|
+
exports.DERIVED_DEFINITION_MAP.set(fn, fnAndDef);
|
33
|
+
}
|
34
|
+
return fnAndDef;
|
35
|
+
}
|
36
|
+
function reactive(fn, opts) {
|
37
|
+
return getReactiveFnAndDefinition(fn, opts)[0];
|
38
|
+
}
|
39
|
+
const reactiveMethod = (owner, fn, opts) => {
|
40
|
+
const def = {
|
41
|
+
compute: fn,
|
42
|
+
equals: (0, equals_js_1.equalsFrom)(opts?.equals),
|
43
|
+
isRelay: false,
|
44
|
+
id: opts?.id,
|
45
|
+
desc: opts?.desc,
|
46
|
+
paramKey: opts?.paramKey,
|
47
|
+
tracer: undefined,
|
48
|
+
};
|
49
|
+
const reactiveFn = (...args) => {
|
50
|
+
const scope = (0, contexts_js_1.getOwner)(owner);
|
51
|
+
if (scope === undefined) {
|
52
|
+
throw new Error('reactiveMethods must be attached to an owned context object');
|
53
|
+
}
|
54
|
+
const signal = scope.get(def, args);
|
55
|
+
return signal.value;
|
56
|
+
};
|
57
|
+
exports.DERIVED_DEFINITION_MAP.set(reactiveFn, [reactiveFn, def]);
|
58
|
+
return reactiveFn;
|
59
|
+
};
|
60
|
+
exports.reactiveMethod = reactiveMethod;
|
61
|
+
function relay(activate, opts) {
|
62
|
+
const scope = (0, contexts_js_1.getCurrentScope)();
|
63
|
+
return (0, async_js_1.createRelay)(activate, scope, opts);
|
64
|
+
}
|
65
|
+
const task = (fn, opts) => {
|
66
|
+
const scope = (0, contexts_js_1.getCurrentScope)();
|
67
|
+
return (0, async_js_1.createTask)(fn, scope, opts);
|
68
|
+
};
|
69
|
+
exports.task = task;
|
70
|
+
function watcher(fn, opts) {
|
71
|
+
const def = {
|
72
|
+
compute: fn,
|
73
|
+
equals: (0, equals_js_1.equalsFrom)(opts?.equals),
|
74
|
+
isRelay: false,
|
75
|
+
id: opts?.id,
|
76
|
+
desc: opts?.desc,
|
77
|
+
paramKey: undefined,
|
78
|
+
tracer: opts?.tracer,
|
79
|
+
};
|
80
|
+
const scope = opts?.isolate ? new contexts_js_1.SignalScope([]) : (0, contexts_js_1.getCurrentScope)();
|
81
|
+
return (0, reactive_js_1.createReactiveFnSignal)(def, undefined, undefined, scope);
|
82
|
+
}
|
83
|
+
//# sourceMappingURL=core-api.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"core-api.js","sourceRoot":"","sources":["../../../src/internals/core-api.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import { ReactiveFnSignal } from './reactive.js';
|
2
2
|
import { Edge } from './edge.js';
|
3
|
-
export declare function dirtySignal(signal:
|
4
|
-
export declare function dirtySignalConsumers(map: Map<WeakRef<
|
3
|
+
export declare function dirtySignal(signal: ReactiveFnSignal<any, any>): void;
|
4
|
+
export declare function dirtySignalConsumers(map: Map<WeakRef<ReactiveFnSignal<any, any>>, Edge>): void;
|
5
5
|
//# sourceMappingURL=dirty.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"dirty.d.ts","sourceRoot":"","sources":["../../../src/internals/dirty.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"dirty.d.ts","sourceRoot":"","sources":["../../../src/internals/dirty.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAA4B,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,QAY7D;AAyBD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAgDvF"}
|
@@ -3,23 +3,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.dirtySignal = dirtySignal;
|
4
4
|
exports.dirtySignalConsumers = dirtySignalConsumers;
|
5
5
|
const scheduling_js_1 = require("./scheduling.js");
|
6
|
-
const
|
7
|
-
const
|
6
|
+
const reactive_js_1 = require("./reactive.js");
|
7
|
+
const consumer_js_1 = require("./consumer.js");
|
8
8
|
function dirtySignal(signal) {
|
9
9
|
const prevState = signal._state;
|
10
|
-
if (prevState === 2 /*
|
10
|
+
if (prevState === 2 /* ReactiveFnState.Dirty */) {
|
11
11
|
return;
|
12
12
|
}
|
13
|
-
signal._state = 2 /*
|
14
|
-
if (prevState !== 3 /*
|
13
|
+
signal._state = 2 /* ReactiveFnState.Dirty */;
|
14
|
+
if (prevState !== 3 /* ReactiveFnState.MaybeDirty */) {
|
15
15
|
propagateDirty(signal);
|
16
16
|
}
|
17
17
|
}
|
18
18
|
function propagateDirty(signal) {
|
19
|
-
if (
|
19
|
+
if (consumer_js_1.CURRENT_CONSUMER === signal) {
|
20
20
|
throw new Error('A signal was dirtied after it was consumed by the current function. This can cause race conditions and infinite rerenders and is not allowed.');
|
21
21
|
}
|
22
|
-
if ((0,
|
22
|
+
if ((0, reactive_js_1.isRelay)(signal)) {
|
23
23
|
if (signal.watchCount > 0) {
|
24
24
|
(0, scheduling_js_1.scheduleAsyncPull)(signal);
|
25
25
|
}
|
@@ -40,25 +40,25 @@ function dirtySignalConsumers(map) {
|
|
40
40
|
continue;
|
41
41
|
const dirtyState = sub._state;
|
42
42
|
switch (dirtyState) {
|
43
|
-
case 0 /*
|
44
|
-
sub._state = 3 /*
|
43
|
+
case 0 /* ReactiveFnState.Clean */:
|
44
|
+
sub._state = 3 /* ReactiveFnState.MaybeDirty */;
|
45
45
|
sub.dirtyHead = edge;
|
46
46
|
edge.nextDirty = undefined;
|
47
47
|
propagateDirty(sub);
|
48
48
|
break;
|
49
|
-
case 1 /*
|
50
|
-
case 3 /*
|
49
|
+
case 1 /* ReactiveFnState.Pending */:
|
50
|
+
case 3 /* ReactiveFnState.MaybeDirty */: {
|
51
51
|
let subEdge = sub.dirtyHead;
|
52
52
|
const ord = edge.ord;
|
53
53
|
if (subEdge.ord > ord) {
|
54
54
|
sub.dirtyHead = edge;
|
55
55
|
edge.nextDirty = subEdge;
|
56
|
-
if (dirtyState === 1 /*
|
56
|
+
if (dirtyState === 1 /* ReactiveFnState.Pending */) {
|
57
57
|
// If the signal is pending, the first edge is the halt edge. If the
|
58
58
|
// new dirty edge is BEFORE the halt edge, then it means that something
|
59
59
|
// changed before the current halt, so we need to cancel the current computation
|
60
60
|
// and recompute.
|
61
|
-
sub._state = 3 /*
|
61
|
+
sub._state = 3 /* ReactiveFnState.MaybeDirty */;
|
62
62
|
propagateDirty(sub);
|
63
63
|
}
|
64
64
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"dirty.js","sourceRoot":"","sources":["../../../src/internals/dirty.ts"],"names":[],"mappings":";;AAKA,kCAYC;AAyBD,oDAgDC;AA1FD,mDAAkE;AAClE
|
1
|
+
{"version":3,"file":"dirty.js","sourceRoot":"","sources":["../../../src/internals/dirty.ts"],"names":[],"mappings":";;AAKA,kCAYC;AAyBD,oDAgDC;AA1FD,mDAAkE;AAClE,+CAA2E;AAC3E,+CAAiD;AAGjD,SAAgB,WAAW,CAAC,MAAkC;IAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IAEhC,IAAI,SAAS,kCAA0B,EAAE,CAAC;QACxC,OAAO;IACT,CAAC;IAED,MAAM,CAAC,MAAM,gCAAwB,CAAC;IAEtC,IAAI,SAAS,uCAA+B,EAAE,CAAC;QAC7C,cAAc,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,MAAkC;IACxD,IAAI,8BAAgB,KAAK,MAAM,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,+IAA+I,CAChJ,CAAC;IACJ,CAAC;IAED,IAAI,IAAA,qBAAO,EAAC,MAAM,CAAC,EAAE,CAAC;QACpB,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAA,iCAAiB,EAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAED,8CAA8C;IAChD,CAAC;SAAM,CAAC;QACN,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,IAAA,4BAAY,EAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QAED,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,SAAgB,oBAAoB,CAAC,GAAmD;IACtF,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU;YAAE,SAAS;QAEzE,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;QAE9B,QAAQ,UAAU,EAAE,CAAC;YACnB;gBACE,GAAG,CAAC,MAAM,qCAA6B,CAAC;gBACxC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC3B,cAAc,CAAC,GAAG,CAAC,CAAC;gBACpB,MAAM;YAER,qCAA6B;YAC7B,uCAA+B,CAAC,CAAC,CAAC;gBAChC,IAAI,OAAO,GAAG,GAAG,CAAC,SAAU,CAAC;gBAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;gBAErB,IAAI,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;oBACtB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;oBACrB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;oBAEzB,IAAI,UAAU,oCAA4B,EAAE,CAAC;wBAC3C,oEAAoE;wBACpE,uEAAuE;wBACvE,gFAAgF;wBAChF,iBAAiB;wBACjB,GAAG,CAAC,MAAM,qCAA6B,CAAC;wBACxC,cAAc,CAAC,GAAG,CAAC,CAAC;oBACtB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;oBAElC,OAAO,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;wBACtD,OAAO,GAAG,SAAS,CAAC;wBACpB,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;oBAChC,CAAC;oBAED,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;oBAC3B,OAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;gBAC5B,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
@@ -1,11 +1,11 @@
|
|
1
1
|
import { ReactivePromise } from './async.js';
|
2
|
-
import type {
|
2
|
+
import type { ReactiveFnSignal } from './reactive.js';
|
3
3
|
export declare const enum EdgeType {
|
4
4
|
Signal = 0,
|
5
5
|
Promise = 1
|
6
6
|
}
|
7
7
|
export interface EdgeTypeDep {
|
8
|
-
[EdgeType.Signal]:
|
8
|
+
[EdgeType.Signal]: ReactiveFnSignal<any, any>;
|
9
9
|
[EdgeType.Promise]: ReactivePromise<any>;
|
10
10
|
}
|
11
11
|
interface BaseEdge {
|
@@ -18,7 +18,7 @@ interface BaseEdge {
|
|
18
18
|
}
|
19
19
|
export interface SignalEdge extends BaseEdge {
|
20
20
|
type: EdgeType.Signal;
|
21
|
-
dep:
|
21
|
+
dep: ReactiveFnSignal<any, any>;
|
22
22
|
}
|
23
23
|
export interface PromiseEdge extends BaseEdge {
|
24
24
|
type: EdgeType.Promise;
|
@@ -26,7 +26,7 @@ export interface PromiseEdge extends BaseEdge {
|
|
26
26
|
}
|
27
27
|
export type Edge = SignalEdge | PromiseEdge;
|
28
28
|
export declare function createEdge<T extends EdgeType, R extends T extends EdgeType.Signal ? SignalEdge : PromiseEdge>(prevEdge: Edge | undefined, type: T, dep: EdgeTypeDep[T], updatedAt: number, consumedAt: number): R;
|
29
|
-
export declare function insertDirty(node:
|
30
|
-
export declare function findAndRemoveDirty(sub:
|
29
|
+
export declare function insertDirty(node: ReactiveFnSignal<any, any>, edge: Edge): void;
|
30
|
+
export declare function findAndRemoveDirty(sub: ReactiveFnSignal<any, any>, dep: ReactiveFnSignal<any, any> | ReactivePromise<any>): Edge | undefined;
|
31
31
|
export {};
|
32
32
|
//# sourceMappingURL=edge.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../../src/internals/edge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,
|
1
|
+
{"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../../src/internals/edge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAItD,0BAAkB,QAAQ;IACxB,MAAM,IAAI;IACV,OAAO,IAAI;CACZ;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;CAC1C;AAED,UAAU,QAAQ;IAChB,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IAEnB,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;IACtB,GAAG,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,WAAY,SAAQ,QAAQ;IAC3C,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC;IACvB,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;CAC3B;AAED,MAAM,MAAM,IAAI,GAAG,UAAU,GAAG,WAAW,CAAC;AAE5C,wBAAgB,UAAU,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,CAAC,SAAS,QAAQ,CAAC,MAAM,GAAG,UAAU,GAAG,WAAW,EAC3G,QAAQ,EAAE,IAAI,GAAG,SAAS,EAC1B,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,CAAC,CAiBH;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,QAgBvE;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,EAC/B,GAAG,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,GACrD,IAAI,GAAG,SAAS,CAyBlB"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"edge.js","sourceRoot":"","sources":["../../../src/internals/edge.ts"],"names":[],"mappings":";;AAqCA,gCAuBC;AAED,kCAgBC;AAED,gDA4BC;AAzGD,IAAI,WAAW,GAAG,CAAC,CAAC;AAkCpB,SAAgB,UAAU,CACxB,QAA0B,EAC1B,IAAO,EACP,GAAmB,EACnB,SAAiB,EACjB,UAAkB;IAElB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO;YACL,IAAI;YACJ,GAAG;YACH,GAAG,EAAE,WAAW,EAAE;YAClB,SAAS;YACT,UAAU;YACV,SAAS,EAAE,SAAS;SAChB,CAAC;IACT,CAAC;IAED,QAAQ,CAAC,GAAG,GAAG,WAAW,EAAE,CAAC;IAC7B,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,OAAO,QAAa,CAAC;AACvB,CAAC;AAED,SAAgB,WAAW,CAAC,
|
1
|
+
{"version":3,"file":"edge.js","sourceRoot":"","sources":["../../../src/internals/edge.ts"],"names":[],"mappings":";;AAqCA,gCAuBC;AAED,kCAgBC;AAED,gDA4BC;AAzGD,IAAI,WAAW,GAAG,CAAC,CAAC;AAkCpB,SAAgB,UAAU,CACxB,QAA0B,EAC1B,IAAO,EACP,GAAmB,EACnB,SAAiB,EACjB,UAAkB;IAElB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO;YACL,IAAI;YACJ,GAAG;YACH,GAAG,EAAE,WAAW,EAAE;YAClB,SAAS;YACT,UAAU;YACV,SAAS,EAAE,SAAS;SAChB,CAAC;IACT,CAAC;IAED,QAAQ,CAAC,GAAG,GAAG,WAAW,EAAE,CAAC;IAC7B,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,OAAO,QAAa,CAAC;AACvB,CAAC;AAED,SAAgB,WAAW,CAAC,IAAgC,EAAE,IAAU;IACtE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IACrB,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;IAEjC,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;QACvD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC;QAErC,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;YACpD,WAAW,GAAG,QAAQ,CAAC;YACvB,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC;QACnC,CAAC;QAED,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,SAAgB,kBAAkB,CAChC,GAA+B,EAC/B,GAAsD;IAEtD,IAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC;IAEzB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;QACrB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;IAE9B,OAAO,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,QAAQ,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;YACpC,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,GAAG,QAAQ,CAAC;QAChB,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;IAC5B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import { SignalScope } from './contexts.js';
|
2
|
+
import { ReactiveFnSignal } from './reactive.js';
|
3
|
+
export declare function generatorResultToPromiseWithConsumer<T>(generator: Generator<any, T>, savedConsumer: ReactiveFnSignal<any, any> | undefined): Promise<T>;
|
4
|
+
export declare function generatorResultToPromiseWithScope<T, Args extends unknown[]>(generator: Generator<any, T>, savedScope: SignalScope | undefined): Promise<T>;
|
5
|
+
//# sourceMappingURL=generators.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"generators.d.ts","sourceRoot":"","sources":["../../../src/internals/generators.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkC,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,wBAAgB,oCAAoC,CAAC,CAAC,EACpD,SAAS,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,EAC5B,aAAa,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,GACpD,OAAO,CAAC,CAAC,CAAC,CAuCZ;AAED,wBAAgB,iCAAiC,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EACzE,SAAS,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,EAC5B,UAAU,EAAE,WAAW,GAAG,SAAS,GAClC,OAAO,CAAC,CAAC,CAAC,CAuCZ"}
|