signalium 1.2.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -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 -22
- 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 +16 -15
- package/dist/cjs/internals/contexts.d.ts.map +1 -1
- package/dist/cjs/internals/contexts.js +58 -56
- package/dist/cjs/internals/contexts.js.map +1 -1
- package/dist/cjs/internals/core-api.d.ts +15 -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 +16 -15
- package/dist/esm/internals/contexts.d.ts.map +1 -1
- package/dist/esm/internals/contexts.js +52 -50
- package/dist/esm/internals/contexts.js.map +1 -1
- package/dist/esm/internals/core-api.d.ts +15 -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 -20
- 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 -173
- 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,83 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.generatorResultToPromiseWithConsumer = generatorResultToPromiseWithConsumer;
|
4
|
+
exports.generatorResultToPromiseWithScope = generatorResultToPromiseWithScope;
|
5
|
+
const async_js_1 = require("./async.js");
|
6
|
+
const consumer_js_1 = require("./consumer.js");
|
7
|
+
const contexts_js_1 = require("./contexts.js");
|
8
|
+
const type_utils_js_1 = require("./utils/type-utils.js");
|
9
|
+
function generatorResultToPromiseWithConsumer(generator, savedConsumer) {
|
10
|
+
function adopt(value) {
|
11
|
+
return typeof value === 'object' && value !== null && ((0, type_utils_js_1.isPromise)(value) || (0, async_js_1.isReactivePromise)(value))
|
12
|
+
? value
|
13
|
+
: Promise.resolve(value);
|
14
|
+
}
|
15
|
+
return new Promise((resolve, reject) => {
|
16
|
+
function step(fn, value) {
|
17
|
+
const prevConsumer = consumer_js_1.CURRENT_CONSUMER;
|
18
|
+
try {
|
19
|
+
(0, consumer_js_1.setCurrentConsumer)(savedConsumer);
|
20
|
+
const result = fn(value);
|
21
|
+
if (result.done) {
|
22
|
+
resolve(result.value);
|
23
|
+
}
|
24
|
+
else {
|
25
|
+
adopt(result.value).then(fulfilled, rejected);
|
26
|
+
}
|
27
|
+
}
|
28
|
+
catch (e) {
|
29
|
+
reject(e);
|
30
|
+
}
|
31
|
+
finally {
|
32
|
+
(0, consumer_js_1.setCurrentConsumer)(prevConsumer);
|
33
|
+
}
|
34
|
+
}
|
35
|
+
const nextFn = generator.next.bind(generator);
|
36
|
+
const throwFn = generator.throw.bind(generator);
|
37
|
+
function fulfilled(value) {
|
38
|
+
step(nextFn, value);
|
39
|
+
}
|
40
|
+
function rejected(value) {
|
41
|
+
step(throwFn, value);
|
42
|
+
}
|
43
|
+
step(nextFn);
|
44
|
+
});
|
45
|
+
}
|
46
|
+
function generatorResultToPromiseWithScope(generator, savedScope) {
|
47
|
+
function adopt(value) {
|
48
|
+
return typeof value === 'object' && value !== null && ((0, type_utils_js_1.isPromise)(value) || (0, async_js_1.isReactivePromise)(value))
|
49
|
+
? value
|
50
|
+
: Promise.resolve(value);
|
51
|
+
}
|
52
|
+
return new Promise((resolve, reject) => {
|
53
|
+
function step(fn, value) {
|
54
|
+
const prevScope = contexts_js_1.CURRENT_SCOPE;
|
55
|
+
try {
|
56
|
+
(0, contexts_js_1.setCurrentScope)(savedScope);
|
57
|
+
const result = fn(value);
|
58
|
+
if (result.done) {
|
59
|
+
resolve(result.value);
|
60
|
+
}
|
61
|
+
else {
|
62
|
+
adopt(result.value).then(fulfilled, rejected);
|
63
|
+
}
|
64
|
+
}
|
65
|
+
catch (e) {
|
66
|
+
reject(e);
|
67
|
+
}
|
68
|
+
finally {
|
69
|
+
(0, contexts_js_1.setCurrentScope)(prevScope);
|
70
|
+
}
|
71
|
+
}
|
72
|
+
const nextFn = generator.next.bind(generator);
|
73
|
+
const throwFn = generator.throw.bind(generator);
|
74
|
+
function fulfilled(value) {
|
75
|
+
step(nextFn, value);
|
76
|
+
}
|
77
|
+
function rejected(value) {
|
78
|
+
step(throwFn, value);
|
79
|
+
}
|
80
|
+
step(nextFn);
|
81
|
+
});
|
82
|
+
}
|
83
|
+
//# sourceMappingURL=generators.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"generators.js","sourceRoot":"","sources":["../../../src/internals/generators.ts"],"names":[],"mappings":"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"}
|
@@ -1,10 +1,7 @@
|
|
1
|
-
import {
|
1
|
+
import { ReactiveFnSignal } from './reactive.js';
|
2
2
|
import { ReactiveValue } from '../types.js';
|
3
|
-
export declare
|
4
|
-
export declare function
|
5
|
-
export declare function
|
6
|
-
export declare function
|
7
|
-
export declare function checkAndRunListeners(signal: DerivedSignal<any, any>, willWatch?: boolean): number;
|
8
|
-
export declare function callback<T, Args extends unknown[]>(fn: (...args: Args) => T): (...args: Args) => T;
|
9
|
-
export declare function generatorResultToPromise<T, Args extends unknown[]>(generator: Generator<any, T>, savedConsumer: DerivedSignal<any, any> | undefined): Promise<T>;
|
3
|
+
export declare function getSignal<T, Args extends unknown[]>(signal: ReactiveFnSignal<T, Args>): ReactiveValue<T>;
|
4
|
+
export declare function checkSignal(signal: ReactiveFnSignal<any, any>): number;
|
5
|
+
export declare function runSignal(signal: ReactiveFnSignal<any, any[]>): void;
|
6
|
+
export declare function checkAndRunListeners(signal: ReactiveFnSignal<any, any>): number;
|
10
7
|
//# sourceMappingURL=get.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/internals/get.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/internals/get.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAA4B,MAAM,eAAe,CAAC;AAI3E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAK5C,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAkCxG;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAwEtE;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,QA4F7D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,UAYtE"}
|
@@ -1,35 +1,35 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.CURRENT_CONSUMER = void 0;
|
4
3
|
exports.getSignal = getSignal;
|
5
4
|
exports.checkSignal = checkSignal;
|
6
5
|
exports.runSignal = runSignal;
|
7
6
|
exports.checkAndRunListeners = checkAndRunListeners;
|
8
|
-
exports.callback = callback;
|
9
|
-
exports.generatorResultToPromise = generatorResultToPromise;
|
10
7
|
const scheduling_js_1 = require("./scheduling.js");
|
11
|
-
const trace_js_1 = require("
|
8
|
+
const trace_js_1 = require("./trace.js");
|
9
|
+
const reactive_js_1 = require("./reactive.js");
|
12
10
|
const edge_js_1 = require("./edge.js");
|
13
|
-
const
|
11
|
+
const watch_js_1 = require("./watch.js");
|
14
12
|
const async_js_1 = require("./async.js");
|
15
13
|
const type_utils_js_1 = require("./utils/type-utils.js");
|
14
|
+
const consumer_js_1 = require("./consumer.js");
|
15
|
+
const generators_js_1 = require("./generators.js");
|
16
16
|
function getSignal(signal) {
|
17
|
-
if (
|
18
|
-
const { ref, computedCount, deps } =
|
17
|
+
if (consumer_js_1.CURRENT_CONSUMER !== undefined) {
|
18
|
+
const { ref, computedCount, deps } = consumer_js_1.CURRENT_CONSUMER;
|
19
19
|
const prevEdge = deps.get(signal);
|
20
20
|
const prevConsumedAt = prevEdge?.consumedAt;
|
21
21
|
if (prevConsumedAt !== computedCount) {
|
22
22
|
if (prevEdge === undefined) {
|
23
23
|
trace_js_1.TRACER?.emit({
|
24
24
|
type: trace_js_1.TracerEventType.Connected,
|
25
|
-
id:
|
25
|
+
id: consumer_js_1.CURRENT_CONSUMER.tracerMeta.id,
|
26
26
|
childId: signal.tracerMeta.id,
|
27
27
|
name: signal.tracerMeta.desc,
|
28
28
|
params: signal.tracerMeta.params,
|
29
29
|
nodeType: trace_js_1.SignalType.Reactive,
|
30
30
|
});
|
31
|
-
if (
|
32
|
-
(0,
|
31
|
+
if (consumer_js_1.CURRENT_CONSUMER.watchCount > 0) {
|
32
|
+
(0, watch_js_1.watchSignal)(signal);
|
33
33
|
}
|
34
34
|
}
|
35
35
|
const updatedAt = checkSignal(signal);
|
@@ -41,14 +41,14 @@ function getSignal(signal) {
|
|
41
41
|
else {
|
42
42
|
checkSignal(signal);
|
43
43
|
}
|
44
|
-
return signal.
|
44
|
+
return signal._value;
|
45
45
|
}
|
46
46
|
function checkSignal(signal) {
|
47
|
-
|
48
|
-
if (state < 2 /*
|
47
|
+
const { ref, _state: state } = signal;
|
48
|
+
if (state < 2 /* ReactiveFnState.Dirty */) {
|
49
49
|
return signal.updatedCount;
|
50
50
|
}
|
51
|
-
if (state === 3 /*
|
51
|
+
if (state === 3 /* ReactiveFnState.MaybeDirty */) {
|
52
52
|
let edge = signal.dirtyHead;
|
53
53
|
while (edge !== undefined) {
|
54
54
|
if (edge.type === 1 /* EdgeType.Promise */) {
|
@@ -56,14 +56,14 @@ function checkSignal(signal) {
|
|
56
56
|
// If the dependency is pending, then we need to propagate the pending state to the
|
57
57
|
// parent signal, and we halt the computation here.
|
58
58
|
if (dep.isPending) {
|
59
|
-
const value = signal.
|
59
|
+
const value = signal._value;
|
60
60
|
if (value instanceof async_js_1.ReactivePromise) {
|
61
61
|
// Propagate the pending state to the parent signal
|
62
|
-
value
|
62
|
+
value['_setPending']();
|
63
63
|
}
|
64
64
|
// Add the signal to the awaitSubs map to be notified when the promise is resolved
|
65
|
-
dep
|
66
|
-
|
65
|
+
dep['_awaitSubs'].set(ref, edge);
|
66
|
+
signal._state = 1 /* ReactiveFnState.Pending */;
|
67
67
|
signal.dirtyHead = edge;
|
68
68
|
// Early return to prevent the signal from being computed and to preserve the dirty state
|
69
69
|
return signal.updatedCount;
|
@@ -76,16 +76,24 @@ function checkSignal(signal) {
|
|
76
76
|
dep.subs.set(ref, edge);
|
77
77
|
if (edge.updatedAt !== updatedAt) {
|
78
78
|
signal.dirtyHead = edge.nextDirty;
|
79
|
-
|
79
|
+
signal._state = 2 /* ReactiveFnState.Dirty */;
|
80
80
|
break;
|
81
81
|
}
|
82
82
|
edge = edge.nextDirty;
|
83
83
|
}
|
84
84
|
}
|
85
|
-
|
86
|
-
|
85
|
+
// If the signal is dirty, we need to run it. This should always be checked
|
86
|
+
// directly on the signal instance, because the state could have been changed
|
87
|
+
// mid computation and not just through direct dependencies.
|
88
|
+
if (signal._state === 2 /* ReactiveFnState.Dirty */) {
|
89
|
+
if (signal._isLazy) {
|
90
|
+
signal.updatedCount++;
|
91
|
+
}
|
92
|
+
else {
|
93
|
+
runSignal(signal);
|
94
|
+
}
|
87
95
|
}
|
88
|
-
signal._state = 0 /*
|
96
|
+
signal._state = 0 /* ReactiveFnState.Clean */;
|
89
97
|
signal.dirtyHead = undefined;
|
90
98
|
if (trace_js_1.TRACER !== undefined && signal.tracerMeta?.tracer) {
|
91
99
|
(0, scheduling_js_1.scheduleTracer)(signal.tracerMeta.tracer);
|
@@ -97,18 +105,18 @@ function runSignal(signal) {
|
|
97
105
|
type: trace_js_1.TracerEventType.StartUpdate,
|
98
106
|
id: signal.tracerMeta.id,
|
99
107
|
});
|
100
|
-
const prevConsumer =
|
108
|
+
const prevConsumer = consumer_js_1.CURRENT_CONSUMER;
|
101
109
|
const updatedCount = signal.updatedCount;
|
102
110
|
const computedCount = ++signal.computedCount;
|
103
111
|
try {
|
104
|
-
|
112
|
+
(0, consumer_js_1.setCurrentConsumer)(signal);
|
105
113
|
const initialized = updatedCount !== 0;
|
106
|
-
const prevValue = signal.
|
114
|
+
const prevValue = signal._value;
|
107
115
|
let nextValue = signal.def.compute(...signal.args);
|
108
116
|
let valueIsPromise = false;
|
109
117
|
if (nextValue !== null && typeof nextValue === 'object') {
|
110
118
|
if ((0, type_utils_js_1.isGeneratorResult)(nextValue)) {
|
111
|
-
nextValue =
|
119
|
+
nextValue = (0, generators_js_1.generatorResultToPromiseWithConsumer)(nextValue, signal);
|
112
120
|
valueIsPromise = true;
|
113
121
|
}
|
114
122
|
else if ((0, type_utils_js_1.isPromise)(nextValue)) {
|
@@ -125,7 +133,7 @@ function runSignal(signal) {
|
|
125
133
|
trace_js_1.TRACER.emit({
|
126
134
|
type: trace_js_1.TracerEventType.EndLoading,
|
127
135
|
id: signal.tracerMeta.id,
|
128
|
-
value: signal.
|
136
|
+
value: (0, reactive_js_1.isRelay)(signal) ? '...' : signal._value,
|
129
137
|
});
|
130
138
|
});
|
131
139
|
}
|
@@ -133,35 +141,33 @@ function runSignal(signal) {
|
|
133
141
|
type: trace_js_1.TracerEventType.StartLoading,
|
134
142
|
id: signal.tracerMeta.id,
|
135
143
|
});
|
136
|
-
if (prevValue !== null && typeof prevValue === 'object' && (0,
|
137
|
-
// Update the
|
138
|
-
// returned from the function is the same
|
144
|
+
if (prevValue !== null && typeof prevValue === 'object' && (0, async_js_1.isReactivePromise)(prevValue)) {
|
145
|
+
// Update the AsyncSignal with the new promise. Since the value
|
146
|
+
// returned from the function is the same AsyncSignal instance,
|
139
147
|
// we don't need to increment the updatedCount, because the returned
|
140
148
|
// value is the same. _setPromise will update the nested values on the
|
141
|
-
//
|
149
|
+
// AsyncSignal instance, and consumers of those values will be notified
|
142
150
|
// of the change through that.
|
143
|
-
prevValue
|
151
|
+
prevValue['_setPromise'](nextValue);
|
144
152
|
}
|
145
153
|
else {
|
146
|
-
|
147
|
-
// in the constructor. Otherwise, we don't know what the initial value was, so
|
148
|
-
// we don't pass it to the ReactivePromise constructor.
|
149
|
-
const initValue = !initialized ? prevValue : undefined;
|
150
|
-
signal.value = async_js_1.ReactivePromise.createPromise(nextValue, signal, initValue);
|
154
|
+
signal._value = (0, async_js_1.createPromise)(nextValue, signal);
|
151
155
|
signal.updatedCount = updatedCount + 1;
|
152
156
|
}
|
153
157
|
}
|
154
158
|
else if (!initialized || !signal.def.equals(prevValue, nextValue)) {
|
155
|
-
signal.
|
156
|
-
signal
|
159
|
+
signal._value = nextValue;
|
160
|
+
// If the signal is lazy, we don't want to increment the updatedCount, it
|
161
|
+
// has already been updated
|
162
|
+
signal.updatedCount = signal._isLazy ? updatedCount : updatedCount + 1;
|
157
163
|
}
|
158
164
|
}
|
159
165
|
finally {
|
160
|
-
|
166
|
+
(0, consumer_js_1.setCurrentConsumer)(prevConsumer);
|
161
167
|
trace_js_1.TRACER?.emit({
|
162
168
|
type: trace_js_1.TracerEventType.EndUpdate,
|
163
169
|
id: signal.tracerMeta.id,
|
164
|
-
value: signal.
|
170
|
+
value: (0, reactive_js_1.isRelay)(signal) ? '...' : signal._value,
|
165
171
|
});
|
166
172
|
const { ref, deps } = signal;
|
167
173
|
for (const [dep, edge] of deps) {
|
@@ -178,12 +184,8 @@ function runSignal(signal) {
|
|
178
184
|
}
|
179
185
|
}
|
180
186
|
}
|
181
|
-
function checkAndRunListeners(signal
|
187
|
+
function checkAndRunListeners(signal) {
|
182
188
|
const listeners = signal.listeners;
|
183
|
-
if (willWatch && (listeners === null || listeners.current.size === 0)) {
|
184
|
-
signal.watchCount++;
|
185
|
-
signal['flags'] |= 8 /* SignalFlags.isListener */;
|
186
|
-
}
|
187
189
|
let updatedCount = checkSignal(signal);
|
188
190
|
if (listeners !== null && listeners.updatedAt !== updatedCount) {
|
189
191
|
listeners.updatedAt = updatedCount;
|
@@ -191,65 +193,4 @@ function checkAndRunListeners(signal, willWatch = false) {
|
|
191
193
|
}
|
192
194
|
return updatedCount;
|
193
195
|
}
|
194
|
-
function callback(fn) {
|
195
|
-
const savedConsumer = exports.CURRENT_CONSUMER;
|
196
|
-
return (...args) => {
|
197
|
-
const prevConsumer = exports.CURRENT_CONSUMER;
|
198
|
-
exports.CURRENT_CONSUMER = savedConsumer;
|
199
|
-
try {
|
200
|
-
const result = fn(...args);
|
201
|
-
if (result !== null && typeof result === 'object' && (0, type_utils_js_1.isGeneratorResult)(result)) {
|
202
|
-
return generatorResultToPromise(result, savedConsumer);
|
203
|
-
}
|
204
|
-
return result;
|
205
|
-
}
|
206
|
-
finally {
|
207
|
-
exports.CURRENT_CONSUMER = prevConsumer;
|
208
|
-
}
|
209
|
-
};
|
210
|
-
}
|
211
|
-
function generatorResultToPromise(generator, savedConsumer) {
|
212
|
-
function adopt(value) {
|
213
|
-
return typeof value === 'object' && value !== null && ((0, type_utils_js_1.isPromise)(value) || (0, type_utils_js_1.isReactivePromise)(value))
|
214
|
-
? value
|
215
|
-
: Promise.resolve(value);
|
216
|
-
}
|
217
|
-
return new Promise((resolve, reject) => {
|
218
|
-
function step(result) {
|
219
|
-
if (result.done) {
|
220
|
-
resolve(result.value);
|
221
|
-
}
|
222
|
-
else {
|
223
|
-
adopt(result.value).then(fulfilled, rejected);
|
224
|
-
}
|
225
|
-
}
|
226
|
-
function fulfilled(value) {
|
227
|
-
const prevConsumer = exports.CURRENT_CONSUMER;
|
228
|
-
try {
|
229
|
-
exports.CURRENT_CONSUMER = savedConsumer;
|
230
|
-
step(generator.next(value));
|
231
|
-
}
|
232
|
-
catch (e) {
|
233
|
-
reject(e);
|
234
|
-
}
|
235
|
-
finally {
|
236
|
-
exports.CURRENT_CONSUMER = prevConsumer;
|
237
|
-
}
|
238
|
-
}
|
239
|
-
function rejected(value) {
|
240
|
-
const prevConsumer = exports.CURRENT_CONSUMER;
|
241
|
-
try {
|
242
|
-
exports.CURRENT_CONSUMER = savedConsumer;
|
243
|
-
step(generator['throw'](value));
|
244
|
-
}
|
245
|
-
catch (e) {
|
246
|
-
reject(e);
|
247
|
-
}
|
248
|
-
finally {
|
249
|
-
exports.CURRENT_CONSUMER = prevConsumer;
|
250
|
-
}
|
251
|
-
}
|
252
|
-
step(generator.next());
|
253
|
-
});
|
254
|
-
}
|
255
196
|
//# sourceMappingURL=get.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/internals/get.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/internals/get.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,77 @@
|
|
1
|
+
import { Tracer, TracerMeta } from './trace.js';
|
2
|
+
import { ReactiveValue, Equals, ReactiveOptions } from '../types.js';
|
3
|
+
import { SignalScope } from './contexts.js';
|
4
|
+
import { Edge } from './edge.js';
|
5
|
+
import { Callback } from './callback.js';
|
6
|
+
/**
|
7
|
+
* This file contains computed signal base types and struct definitions.
|
8
|
+
*
|
9
|
+
* Computed signals are monomorphic to make them more efficient, but this also
|
10
|
+
* means that multiple fields differ based on the type of the signal. Defining
|
11
|
+
* them using this pattern rather than a class allows us to switch on the `type`
|
12
|
+
* field to get strong typing in branches everywhere else.
|
13
|
+
*
|
14
|
+
* "Methods" for this struct are defined in other files for better organization.
|
15
|
+
*/
|
16
|
+
export type SignalId = number;
|
17
|
+
export declare const enum ReactiveFnState {
|
18
|
+
Clean = 0,
|
19
|
+
Pending = 1,
|
20
|
+
Dirty = 2,
|
21
|
+
MaybeDirty = 3
|
22
|
+
}
|
23
|
+
export declare const enum ReactiveFnFlags {
|
24
|
+
State = 3,
|
25
|
+
isRelay = 4,
|
26
|
+
isListener = 8,
|
27
|
+
isLazy = 16
|
28
|
+
}
|
29
|
+
interface ListenerMeta {
|
30
|
+
updatedAt: number;
|
31
|
+
current: Set<() => void>;
|
32
|
+
cachedBoundAdd: (listener: () => void) => () => void;
|
33
|
+
}
|
34
|
+
/**
|
35
|
+
* Shared definition for derived signals to reduce memory usage.
|
36
|
+
* Contains configuration that's common across all instances of a reactive function.
|
37
|
+
*/
|
38
|
+
export interface ReactiveFnDefinition<T, Args extends unknown[]> extends ReactiveOptions<T, Args> {
|
39
|
+
compute: (...args: Args) => T;
|
40
|
+
equals: Equals<T>;
|
41
|
+
isRelay: boolean;
|
42
|
+
tracer: Tracer | undefined;
|
43
|
+
}
|
44
|
+
export declare class ReactiveFnSignal<T, Args extends unknown[]> {
|
45
|
+
private flags;
|
46
|
+
scope: SignalScope | undefined;
|
47
|
+
subs: Map<WeakRef<ReactiveFnSignal<any, any>>, Edge>;
|
48
|
+
deps: Map<ReactiveFnSignal<any, any>, Edge>;
|
49
|
+
ref: WeakRef<ReactiveFnSignal<T, Args>>;
|
50
|
+
dirtyHead: Edge | undefined;
|
51
|
+
updatedCount: number;
|
52
|
+
computedCount: number;
|
53
|
+
watchCount: number;
|
54
|
+
key: SignalId | undefined;
|
55
|
+
args: Args;
|
56
|
+
callbacks: Callback[] | undefined;
|
57
|
+
_listeners: ListenerMeta | null;
|
58
|
+
_value: ReactiveValue<T> | undefined;
|
59
|
+
tracerMeta?: TracerMeta;
|
60
|
+
def: ReactiveFnDefinition<T, Args>;
|
61
|
+
constructor(def: ReactiveFnDefinition<T, Args>, args: Args, key?: SignalId, scope?: SignalScope);
|
62
|
+
get _state(): ReactiveFnState;
|
63
|
+
set _state(state: ReactiveFnState);
|
64
|
+
get _isListener(): boolean;
|
65
|
+
set _isListener(isListener: boolean);
|
66
|
+
get _isLazy(): boolean;
|
67
|
+
set _isLazy(isLazy: boolean);
|
68
|
+
get listeners(): ListenerMeta;
|
69
|
+
get value(): ReactiveValue<T>;
|
70
|
+
addListener(listener: () => void): () => void;
|
71
|
+
addListenerLazy(): (listener: () => void) => () => void;
|
72
|
+
}
|
73
|
+
export declare const runListeners: (signal: ReactiveFnSignal<any, any>) => void;
|
74
|
+
export declare const isRelay: (signal: unknown) => boolean;
|
75
|
+
export declare function createReactiveFnSignal<T, Args extends unknown[]>(def: ReactiveFnDefinition<T, Args>, args?: Args, key?: SignalId, scope?: SignalScope): ReactiveFnSignal<T, Args>;
|
76
|
+
export {};
|
77
|
+
//# sourceMappingURL=reactive.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"reactive.d.ts","sourceRoot":"","sources":["../../../src/internals/reactive.ts"],"names":[],"mappings":"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"}
|