@alloy-js/core 0.23.0-dev.11 → 0.23.0-dev.13
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/dist/dev/src/binder.js +488 -0
- package/dist/dev/src/binder.js.map +1 -0
- package/dist/dev/src/code.js +181 -0
- package/dist/dev/src/code.js.map +1 -0
- package/dist/dev/src/components/AccessExpression.js +230 -0
- package/dist/dev/src/components/AccessExpression.js.map +1 -0
- package/dist/dev/src/components/AccessExpression.test.js +237 -0
- package/dist/dev/src/components/AccessExpression.test.js.map +1 -0
- package/dist/dev/src/components/AppendFile.js +246 -0
- package/dist/dev/src/components/AppendFile.js.map +1 -0
- package/dist/dev/src/components/Block.js +66 -0
- package/dist/dev/src/components/Block.js.map +1 -0
- package/dist/dev/src/components/CopyFile.js +16 -0
- package/dist/dev/src/components/CopyFile.js.map +1 -0
- package/dist/dev/src/components/Declaration.js +70 -0
- package/dist/dev/src/components/Declaration.js.map +1 -0
- package/dist/dev/src/components/For.js +40 -0
- package/dist/dev/src/components/For.js.map +1 -0
- package/dist/dev/src/components/Indent.js +37 -0
- package/dist/dev/src/components/Indent.js.map +1 -0
- package/dist/dev/src/components/List.js +29 -0
- package/dist/dev/src/components/List.js.map +1 -0
- package/dist/dev/src/components/MemberDeclaration.js +70 -0
- package/dist/dev/src/components/MemberDeclaration.js.map +1 -0
- package/dist/dev/src/components/MemberName.js +11 -0
- package/dist/dev/src/components/MemberName.js.map +1 -0
- package/dist/dev/src/components/MemberScope.js +57 -0
- package/dist/dev/src/components/MemberScope.js.map +1 -0
- package/dist/dev/src/components/Name.js +11 -0
- package/dist/dev/src/components/Name.js.map +1 -0
- package/dist/dev/src/components/Output.js +72 -0
- package/dist/dev/src/components/Output.js.map +1 -0
- package/dist/dev/src/components/Prose.js +32 -0
- package/dist/dev/src/components/Prose.js.map +1 -0
- package/dist/dev/src/components/ReferenceOrContent.js +12 -0
- package/dist/dev/src/components/ReferenceOrContent.js.map +1 -0
- package/dist/dev/src/components/Scope.js +50 -0
- package/dist/dev/src/components/Scope.js.map +1 -0
- package/dist/dev/src/components/Show.js +4 -0
- package/dist/dev/src/components/Show.js.map +1 -0
- package/dist/dev/src/components/SourceDirectory.js +41 -0
- package/dist/dev/src/components/SourceDirectory.js.map +1 -0
- package/dist/dev/src/components/SourceFile.js +52 -0
- package/dist/dev/src/components/SourceFile.js.map +1 -0
- package/dist/dev/src/components/StatementList.js +20 -0
- package/dist/dev/src/components/StatementList.js.map +1 -0
- package/dist/dev/src/components/Switch.js +42 -0
- package/dist/dev/src/components/Switch.js.map +1 -0
- package/dist/dev/src/components/TemplateFile.js +153 -0
- package/dist/dev/src/components/TemplateFile.js.map +1 -0
- package/dist/dev/src/components/UpdateFile.js +71 -0
- package/dist/dev/src/components/UpdateFile.js.map +1 -0
- package/dist/dev/src/components/Wrap.js +18 -0
- package/dist/dev/src/components/Wrap.js.map +1 -0
- package/dist/dev/src/components/index.js +25 -0
- package/dist/dev/src/components/index.js.map +1 -0
- package/dist/dev/src/components/stc/index.js +27 -0
- package/dist/dev/src/components/stc/index.js.map +1 -0
- package/dist/dev/src/components/stc/sti.js +10 -0
- package/dist/dev/src/components/stc/sti.js.map +1 -0
- package/dist/dev/src/content-slot.js +78 -0
- package/dist/dev/src/content-slot.js.map +1 -0
- package/dist/dev/src/content-slot.test.js +89 -0
- package/dist/dev/src/content-slot.test.js.map +1 -0
- package/dist/dev/src/context/assignment.js +46 -0
- package/dist/dev/src/context/assignment.js.map +1 -0
- package/dist/dev/src/context/binder.js +12 -0
- package/dist/dev/src/context/binder.js.map +1 -0
- package/dist/dev/src/context/declaration.js +3 -0
- package/dist/dev/src/context/declaration.js.map +1 -0
- package/dist/dev/src/context/format-options.js +32 -0
- package/dist/dev/src/context/format-options.js.map +1 -0
- package/dist/dev/src/context/index.js +11 -0
- package/dist/dev/src/context/index.js.map +1 -0
- package/dist/dev/src/context/member-declaration.js +11 -0
- package/dist/dev/src/context/member-declaration.js.map +1 -0
- package/dist/dev/src/context/member-scope.js +12 -0
- package/dist/dev/src/context/member-scope.js.map +1 -0
- package/dist/dev/src/context/name-policy.js +13 -0
- package/dist/dev/src/context/name-policy.js.map +1 -0
- package/dist/dev/src/context/scope.js +13 -0
- package/dist/dev/src/context/scope.js.map +1 -0
- package/dist/dev/src/context/source-directory.js +3 -0
- package/dist/dev/src/context/source-directory.js.map +1 -0
- package/dist/dev/src/context/source-file.js +3 -0
- package/dist/dev/src/context/source-file.js.map +1 -0
- package/dist/dev/src/context.js +47 -0
- package/dist/dev/src/context.js.map +1 -0
- package/dist/dev/src/debug/cli.js +164 -0
- package/dist/dev/src/debug/cli.js.map +1 -0
- package/dist/dev/src/debug/diagnostics.test.js +50 -0
- package/dist/dev/src/debug/diagnostics.test.js.map +1 -0
- package/dist/dev/src/debug/effects.js +293 -0
- package/dist/dev/src/debug/effects.js.map +1 -0
- package/dist/dev/src/debug/effects.test.js +280 -0
- package/dist/dev/src/debug/effects.test.js.map +1 -0
- package/dist/dev/src/debug/files.js +29 -0
- package/dist/dev/src/debug/files.js.map +1 -0
- package/dist/dev/src/debug/files.test.js +78 -0
- package/dist/dev/src/debug/files.test.js.map +1 -0
- package/dist/dev/src/debug/index.js +71 -0
- package/dist/dev/src/debug/index.js.map +1 -0
- package/dist/dev/src/debug/message-format.test.js +836 -0
- package/dist/dev/src/debug/message-format.test.js.map +1 -0
- package/dist/dev/src/debug/render-tree-orphans.test.js +365 -0
- package/dist/dev/src/debug/render-tree-orphans.test.js.map +1 -0
- package/dist/dev/src/debug/render.js +479 -0
- package/dist/dev/src/debug/render.js.map +1 -0
- package/dist/dev/src/debug/render.test.js +363 -0
- package/dist/dev/src/debug/render.test.js.map +1 -0
- package/dist/dev/src/debug/serialize.js +70 -0
- package/dist/dev/src/debug/serialize.js.map +1 -0
- package/dist/dev/src/debug/source-map.browser.js +24 -0
- package/dist/dev/src/debug/source-map.browser.js.map +1 -0
- package/dist/dev/src/debug/source-map.js +111 -0
- package/dist/dev/src/debug/source-map.js.map +1 -0
- package/dist/dev/src/debug/symbols.js +196 -0
- package/dist/dev/src/debug/symbols.js.map +1 -0
- package/dist/dev/src/debug/symbols.test.js +93 -0
- package/dist/dev/src/debug/symbols.test.js.map +1 -0
- package/dist/dev/src/debug/trace-writer.js +658 -0
- package/dist/dev/src/debug/trace-writer.js.map +1 -0
- package/dist/dev/src/debug/trace.js +460 -0
- package/dist/dev/src/debug/trace.js.map +1 -0
- package/dist/dev/src/devtools/devtools-protocol.js +2 -0
- package/dist/dev/src/devtools/devtools-protocol.js.map +1 -0
- package/dist/dev/src/devtools/devtools-server.browser.js +33 -0
- package/dist/dev/src/devtools/devtools-server.browser.js.map +1 -0
- package/dist/dev/src/devtools/devtools-server.js +444 -0
- package/dist/dev/src/devtools/devtools-server.js.map +1 -0
- package/dist/dev/src/devtools/devtools-transport.js +114 -0
- package/dist/dev/src/devtools/devtools-transport.js.map +1 -0
- package/dist/dev/src/devtools-entry.browser.js +2 -0
- package/dist/dev/src/devtools-entry.browser.js.map +1 -0
- package/dist/dev/src/devtools-entry.js +2 -0
- package/dist/dev/src/devtools-entry.js.map +1 -0
- package/dist/dev/src/diagnostics.js +89 -0
- package/dist/dev/src/diagnostics.js.map +1 -0
- package/dist/dev/src/host/alloy-host.browser.js +32 -0
- package/dist/dev/src/host/alloy-host.browser.js.map +1 -0
- package/dist/dev/src/host/alloy-host.js +144 -0
- package/dist/dev/src/host/alloy-host.js.map +1 -0
- package/dist/dev/src/host/interface.js +2 -0
- package/dist/dev/src/host/interface.js.map +1 -0
- package/dist/dev/src/host/node-host.browser.js +21 -0
- package/dist/dev/src/host/node-host.browser.js.map +1 -0
- package/dist/dev/src/host/node-host.js +20 -0
- package/dist/dev/src/host/node-host.js.map +1 -0
- package/dist/dev/src/index.browser.js +3 -0
- package/dist/dev/src/index.browser.js.map +1 -0
- package/dist/dev/src/index.js +27 -0
- package/dist/dev/src/index.js.map +1 -0
- package/dist/dev/src/inspect.browser.js +6 -0
- package/dist/dev/src/inspect.browser.js.map +1 -0
- package/dist/dev/src/inspect.js +2 -0
- package/dist/dev/src/inspect.js.map +1 -0
- package/dist/dev/src/jsx-runtime.js +17 -0
- package/dist/dev/src/jsx-runtime.js.map +1 -0
- package/dist/dev/src/library-symbol-reference.js +5 -0
- package/dist/dev/src/library-symbol-reference.js.map +1 -0
- package/dist/dev/src/name-policy.js +24 -0
- package/dist/dev/src/name-policy.js.map +1 -0
- package/dist/dev/src/pretty-string/pretty-string.js +100 -0
- package/dist/dev/src/pretty-string/pretty-string.js.map +1 -0
- package/dist/dev/src/pretty-string/pretty-string.test.js +38 -0
- package/dist/dev/src/pretty-string/pretty-string.test.js.map +1 -0
- package/dist/dev/src/print-hook.js +10 -0
- package/dist/dev/src/print-hook.js.map +1 -0
- package/dist/dev/src/props-combinators.js +109 -0
- package/dist/dev/src/props-combinators.js.map +1 -0
- package/dist/dev/src/reactive-union-set.js +213 -0
- package/dist/dev/src/reactive-union-set.js.map +1 -0
- package/dist/dev/src/reactivity.js +426 -0
- package/dist/dev/src/reactivity.js.map +1 -0
- package/dist/dev/src/refkey.js +167 -0
- package/dist/dev/src/refkey.js.map +1 -0
- package/dist/dev/src/render-stack.js +252 -0
- package/dist/dev/src/render-stack.js.map +1 -0
- package/dist/dev/src/render.js +872 -0
- package/dist/dev/src/render.js.map +1 -0
- package/dist/dev/src/resource.js +124 -0
- package/dist/dev/src/resource.js.map +1 -0
- package/dist/dev/src/runtime/component.js +41 -0
- package/dist/dev/src/runtime/component.js.map +1 -0
- package/dist/dev/src/runtime/intrinsic.js +12 -0
- package/dist/dev/src/runtime/intrinsic.js.map +1 -0
- package/dist/dev/src/scheduler.js +217 -0
- package/dist/dev/src/scheduler.js.map +1 -0
- package/dist/dev/src/stc.js +40 -0
- package/dist/dev/src/stc.js.map +1 -0
- package/dist/dev/src/sti.js +31 -0
- package/dist/dev/src/sti.js.map +1 -0
- package/dist/dev/src/symbols/basic-scope.js +21 -0
- package/dist/dev/src/symbols/basic-scope.js.map +1 -0
- package/dist/dev/src/symbols/basic-symbol.js +34 -0
- package/dist/dev/src/symbols/basic-symbol.js.map +1 -0
- package/dist/dev/src/symbols/decl.js +26 -0
- package/dist/dev/src/symbols/decl.js.map +1 -0
- package/dist/dev/src/symbols/index.js +10 -0
- package/dist/dev/src/symbols/index.js.map +1 -0
- package/dist/dev/src/symbols/output-scope.js +202 -0
- package/dist/dev/src/symbols/output-scope.js.map +1 -0
- package/dist/dev/src/symbols/output-space.js +36 -0
- package/dist/dev/src/symbols/output-space.js.map +1 -0
- package/dist/dev/src/symbols/output-symbol.js +504 -0
- package/dist/dev/src/symbols/output-symbol.js.map +1 -0
- package/dist/dev/src/symbols/symbol-flow.js +106 -0
- package/dist/dev/src/symbols/symbol-flow.js.map +1 -0
- package/dist/dev/src/symbols/symbol-slot.js +68 -0
- package/dist/dev/src/symbols/symbol-slot.js.map +1 -0
- package/dist/dev/src/symbols/symbol-slot.test.js +43 -0
- package/dist/dev/src/symbols/symbol-slot.test.js.map +1 -0
- package/dist/dev/src/symbols/symbol-table.js +93 -0
- package/dist/dev/src/symbols/symbol-table.js.map +1 -0
- package/dist/dev/src/tap.js +109 -0
- package/dist/dev/src/tap.js.map +1 -0
- package/dist/dev/src/trace.js +2 -0
- package/dist/dev/src/trace.js.map +1 -0
- package/dist/dev/src/tracer.js +180 -0
- package/dist/dev/src/tracer.js.map +1 -0
- package/dist/dev/src/utils.js +487 -0
- package/dist/dev/src/utils.js.map +1 -0
- package/dist/dev/src/write-output.js +48 -0
- package/dist/dev/src/write-output.js.map +1 -0
- package/dist/dev/test/browser-build.test.js +85 -0
- package/dist/dev/test/browser-build.test.js.map +1 -0
- package/dist/dev/test/children.test.js +44 -0
- package/dist/dev/test/children.test.js.map +1 -0
- package/dist/dev/test/components/append-file.test.js +394 -0
- package/dist/dev/test/components/append-file.test.js.map +1 -0
- package/dist/dev/test/components/block.test.js +83 -0
- package/dist/dev/test/components/block.test.js.map +1 -0
- package/dist/dev/test/components/copy-file.test.js +119 -0
- package/dist/dev/test/components/copy-file.test.js.map +1 -0
- package/dist/dev/test/components/declaration.test.js +40 -0
- package/dist/dev/test/components/declaration.test.js.map +1 -0
- package/dist/dev/test/components/list.test.js +250 -0
- package/dist/dev/test/components/list.test.js.map +1 -0
- package/dist/dev/test/components/prose.test.js +42 -0
- package/dist/dev/test/components/prose.test.js.map +1 -0
- package/dist/dev/test/components/reference-or-content.test.js +246 -0
- package/dist/dev/test/components/reference-or-content.test.js.map +1 -0
- package/dist/dev/test/components/source-file.test.js +271 -0
- package/dist/dev/test/components/source-file.test.js.map +1 -0
- package/dist/dev/test/components/template-file.test.js +200 -0
- package/dist/dev/test/components/template-file.test.js.map +1 -0
- package/dist/dev/test/components/update-file.test.js +210 -0
- package/dist/dev/test/components/update-file.test.js.map +1 -0
- package/dist/dev/test/components/wrap.test.js +48 -0
- package/dist/dev/test/components/wrap.test.js.map +1 -0
- package/dist/dev/test/control-flow/for.test.js +318 -0
- package/dist/dev/test/control-flow/for.test.js.map +1 -0
- package/dist/dev/test/control-flow/match.test.js +112 -0
- package/dist/dev/test/control-flow/match.test.js.map +1 -0
- package/dist/dev/test/control-flow/show.test.js +38 -0
- package/dist/dev/test/control-flow/show.test.js.map +1 -0
- package/dist/dev/test/lazy-isempty.test.js +121 -0
- package/dist/dev/test/lazy-isempty.test.js.map +1 -0
- package/dist/dev/test/name-policy.test.js +28 -0
- package/dist/dev/test/name-policy.test.js.map +1 -0
- package/dist/dev/test/props-with-defaults.test.js +94 -0
- package/dist/dev/test/props-with-defaults.test.js.map +1 -0
- package/dist/dev/test/reactive-union-set-disposers.test.js +98 -0
- package/dist/dev/test/reactive-union-set-disposers.test.js.map +1 -0
- package/dist/dev/test/reactive-union-set.test.js +171 -0
- package/dist/dev/test/reactive-union-set.test.js.map +1 -0
- package/dist/dev/test/reactivity/circular-reactives.test.js +62 -0
- package/dist/dev/test/reactivity/circular-reactives.test.js.map +1 -0
- package/dist/dev/test/reactivity/cleanup.test.js +96 -0
- package/dist/dev/test/reactivity/cleanup.test.js.map +1 -0
- package/dist/dev/test/reactivity/memo.test.js +17 -0
- package/dist/dev/test/reactivity/memo.test.js.map +1 -0
- package/dist/dev/test/reactivity/ref-rendering.test.js +38 -0
- package/dist/dev/test/reactivity/ref-rendering.test.js.map +1 -0
- package/dist/dev/test/reactivity/shallow-reactive.test.js +52 -0
- package/dist/dev/test/reactivity/shallow-reactive.test.js.map +1 -0
- package/dist/dev/test/reactivity/test.test.js +74 -0
- package/dist/dev/test/reactivity/test.test.js.map +1 -0
- package/dist/dev/test/reactivity/untrack.test.js +27 -0
- package/dist/dev/test/reactivity/untrack.test.js.map +1 -0
- package/dist/dev/test/refkey.test.js +36 -0
- package/dist/dev/test/refkey.test.js.map +1 -0
- package/dist/dev/test/rendering/basic.test.js +194 -0
- package/dist/dev/test/rendering/basic.test.js.map +1 -0
- package/dist/dev/test/rendering/code.test.js +64 -0
- package/dist/dev/test/rendering/code.test.js.map +1 -0
- package/dist/dev/test/rendering/formatting.test.js +797 -0
- package/dist/dev/test/rendering/formatting.test.js.map +1 -0
- package/dist/dev/test/rendering/indent.test.js +183 -0
- package/dist/dev/test/rendering/indent.test.js.map +1 -0
- package/dist/dev/test/rendering/memoization.test.js +37 -0
- package/dist/dev/test/rendering/memoization.test.js.map +1 -0
- package/dist/dev/test/rendering/print-render-stack.test.js +287 -0
- package/dist/dev/test/rendering/print-render-stack.test.js.map +1 -0
- package/dist/dev/test/rendering/refkeys.test.js +37 -0
- package/dist/dev/test/rendering/refkeys.test.js.map +1 -0
- package/dist/dev/test/scheduler-extended.test.js +96 -0
- package/dist/dev/test/scheduler-extended.test.js.map +1 -0
- package/dist/dev/test/scheduler.test.js +46 -0
- package/dist/dev/test/scheduler.test.js.map +1 -0
- package/dist/dev/test/split-props.test.js +78 -0
- package/dist/dev/test/split-props.test.js.map +1 -0
- package/dist/dev/test/stc.test.js +35 -0
- package/dist/dev/test/stc.test.js.map +1 -0
- package/dist/dev/test/symbols/output-scope.test.js +180 -0
- package/dist/dev/test/symbols/output-scope.test.js.map +1 -0
- package/dist/dev/test/symbols/output-symbol.test.js +202 -0
- package/dist/dev/test/symbols/output-symbol.test.js.map +1 -0
- package/dist/dev/test/symbols/resolution.test.js +487 -0
- package/dist/dev/test/symbols/resolution.test.js.map +1 -0
- package/dist/dev/test/symbols/symbol-table.test.js +15 -0
- package/dist/dev/test/symbols/symbol-table.test.js.map +1 -0
- package/dist/dev/test/symbols/utils.js +26 -0
- package/dist/dev/test/symbols/utils.js.map +1 -0
- package/dist/dev/test/utils.test.js +317 -0
- package/dist/dev/test/utils.test.js.map +1 -0
- package/dist/dev/testing/create-test-wrapper.js +76 -0
- package/dist/dev/testing/create-test-wrapper.js.map +1 -0
- package/dist/dev/testing/devtools-utils.js +162 -0
- package/dist/dev/testing/devtools-utils.js.map +1 -0
- package/dist/dev/testing/extend-expect.js +167 -0
- package/dist/dev/testing/extend-expect.js.map +1 -0
- package/dist/dev/testing/extend-expect.test.js +234 -0
- package/dist/dev/testing/extend-expect.test.js.map +1 -0
- package/dist/dev/testing/index.js +4 -0
- package/dist/dev/testing/index.js.map +1 -0
- package/dist/dev/testing/render.js +23 -0
- package/dist/dev/testing/render.js.map +1 -0
- package/dist/dev/testing/vitest.d.js +2 -0
- package/dist/dev/testing/vitest.d.js.map +1 -0
- package/dist/src/debug/cli.d.ts.map +1 -1
- package/dist/src/debug/cli.js +3 -2
- package/dist/src/debug/cli.js.map +1 -1
- package/dist/src/debug/effects.d.ts.map +1 -1
- package/dist/src/debug/effects.js +2 -67
- package/dist/src/debug/effects.js.map +1 -1
- package/dist/src/debug/render.d.ts.map +1 -1
- package/dist/src/debug/render.js +15 -8
- package/dist/src/debug/render.js.map +1 -1
- package/dist/src/debug/source-map.browser.d.ts +16 -0
- package/dist/src/debug/source-map.browser.d.ts.map +1 -0
- package/dist/src/debug/source-map.browser.js +24 -0
- package/dist/src/debug/source-map.browser.js.map +1 -0
- package/dist/src/debug/source-map.d.ts +22 -0
- package/dist/src/debug/source-map.d.ts.map +1 -0
- package/dist/src/debug/source-map.js +111 -0
- package/dist/src/debug/source-map.js.map +1 -0
- package/dist/src/debug/trace.d.ts.map +1 -1
- package/dist/src/debug/trace.js +19 -5
- package/dist/src/debug/trace.js.map +1 -1
- package/dist/src/host/node-host.browser.d.ts +11 -0
- package/dist/src/host/node-host.browser.d.ts.map +1 -0
- package/dist/src/host/node-host.browser.js +21 -0
- package/dist/src/host/node-host.browser.js.map +1 -0
- package/dist/src/host/node-host.d.ts +11 -0
- package/dist/src/host/node-host.d.ts.map +1 -0
- package/dist/src/host/node-host.js +20 -0
- package/dist/src/host/node-host.js.map +1 -0
- package/dist/src/render-stack.d.ts.map +1 -1
- package/dist/src/render-stack.js +4 -3
- package/dist/src/render-stack.js.map +1 -1
- package/dist/src/write-output.d.ts.map +1 -1
- package/dist/src/write-output.js +6 -5
- package/dist/src/write-output.js.map +1 -1
- package/dist/test/browser-build.test.js +66 -67
- package/dist/test/browser-build.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -3
- package/src/debug/cli.ts +3 -2
- package/src/debug/effects.ts +2 -82
- package/src/debug/render.ts +25 -13
- package/src/debug/source-map.browser.ts +30 -0
- package/src/debug/source-map.ts +135 -0
- package/src/debug/trace.ts +22 -5
- package/src/host/node-host.browser.ts +23 -0
- package/src/host/node-host.ts +22 -0
- package/src/render-stack.ts +4 -3
- package/src/write-output.ts +6 -5
- package/test/browser-build.test.ts +71 -78
- package/vitest.config.ts +8 -0
|
@@ -0,0 +1,426 @@
|
|
|
1
|
+
import { isRef, pauseTracking, resetTracking, stop, computed as vueComputed, effect as vueEffect, ref as vueRef, shallowReactive as vueShallowReactive, shallowRef as vueShallowRef, toRef as vueToRef, toRefs as vueToRefs } from "@vue/reactivity";
|
|
2
|
+
import { captureSourceLocation, debug, isDebugEnabled } from "./debug/index.js";
|
|
3
|
+
import { scheduler, setLastTriggerRef } from "./scheduler.js";
|
|
4
|
+
if (globalThis.__ALLOY__) {
|
|
5
|
+
throw new Error("Multiple versions of Alloy are loaded for this project. This will likely cause undesirable behavior.");
|
|
6
|
+
}
|
|
7
|
+
globalThis.__ALLOY__ = true;
|
|
8
|
+
export function getElementCache() {
|
|
9
|
+
const ctx = getContext();
|
|
10
|
+
return ctx.elementCache ??= new Map();
|
|
11
|
+
}
|
|
12
|
+
let contextIdCounter = 0;
|
|
13
|
+
let globalContext = null;
|
|
14
|
+
export function getContext() {
|
|
15
|
+
return globalContext;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Walk up the owner chain to find the nearest ancestor context that
|
|
20
|
+
* corresponds to an effect (has meta.effectId). This bridges non-effect
|
|
21
|
+
* scopes (like createRoot iterations in For) so the owner chain always
|
|
22
|
+
* connects effect-to-effect.
|
|
23
|
+
*/
|
|
24
|
+
function resolveOwnerEffectContextId(context) {
|
|
25
|
+
let owner = context.owner;
|
|
26
|
+
while (owner) {
|
|
27
|
+
if (owner.meta?.effectId !== undefined) {
|
|
28
|
+
return owner.id;
|
|
29
|
+
}
|
|
30
|
+
owner = owner.owner;
|
|
31
|
+
}
|
|
32
|
+
return context.owner?.id ?? null;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Ensure that a context has an isEmpty ref, creating one if needed.
|
|
37
|
+
* Only call this when you need to reactively observe isEmpty (e.g.,
|
|
38
|
+
* ContentSlot, mapJoin). Most contexts don't need an isEmpty ref.
|
|
39
|
+
*/
|
|
40
|
+
export function ensureIsEmpty(context) {
|
|
41
|
+
context.isEmpty ??= ref(context.childrenWithContent === 0, {
|
|
42
|
+
isInfrastructure: true
|
|
43
|
+
});
|
|
44
|
+
return context.isEmpty;
|
|
45
|
+
}
|
|
46
|
+
export function root(fn, options) {
|
|
47
|
+
const context = {
|
|
48
|
+
id: contextIdCounter++,
|
|
49
|
+
componentOwner: options?.componentOwner,
|
|
50
|
+
owner: globalContext,
|
|
51
|
+
takesSymbols: false,
|
|
52
|
+
takenSymbols: undefined,
|
|
53
|
+
childrenWithContent: 0,
|
|
54
|
+
_lastEmpty: true,
|
|
55
|
+
isRoot: true
|
|
56
|
+
};
|
|
57
|
+
globalContext = context;
|
|
58
|
+
let ret;
|
|
59
|
+
try {
|
|
60
|
+
ret = untrack(() => fn(() => {
|
|
61
|
+
for (const d of context.disposables ?? []) {
|
|
62
|
+
untrack(d);
|
|
63
|
+
}
|
|
64
|
+
}));
|
|
65
|
+
} finally {
|
|
66
|
+
globalContext = globalContext.owner;
|
|
67
|
+
}
|
|
68
|
+
return ret;
|
|
69
|
+
}
|
|
70
|
+
export function untrack(fn) {
|
|
71
|
+
pauseTracking();
|
|
72
|
+
const v = fn();
|
|
73
|
+
resetTracking();
|
|
74
|
+
return v;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Walk up the context owner chain to find the nearest effect ID.
|
|
79
|
+
* Used to attribute reactive mutations to the effect that caused them.
|
|
80
|
+
*/
|
|
81
|
+
export function findCurrentEffectId() {
|
|
82
|
+
let ctx = globalContext;
|
|
83
|
+
while (ctx) {
|
|
84
|
+
const id = ctx.meta?.effectId;
|
|
85
|
+
if (id !== undefined && id !== -1) return id;
|
|
86
|
+
ctx = ctx.owner;
|
|
87
|
+
}
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
export function memo(fn, equal, name) {
|
|
91
|
+
const memoLabel = name ? `memo:${name}` : "memo";
|
|
92
|
+
const o = shallowRef(undefined, {
|
|
93
|
+
label: memoLabel
|
|
94
|
+
});
|
|
95
|
+
effect(prev => {
|
|
96
|
+
const res = fn();
|
|
97
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
98
|
+
(!equal || prev !== res) && (o.value = res);
|
|
99
|
+
return res;
|
|
100
|
+
}, undefined, {
|
|
101
|
+
debug: {
|
|
102
|
+
name: name ? `memo:${name}` : "memo"
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
const getter = () => o.value;
|
|
106
|
+
if (name) {
|
|
107
|
+
Object.defineProperty(getter, "name", {
|
|
108
|
+
value: name,
|
|
109
|
+
configurable: true
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
return getter;
|
|
113
|
+
}
|
|
114
|
+
export function effect(fn, current, options) {
|
|
115
|
+
const context = {
|
|
116
|
+
id: contextIdCounter++,
|
|
117
|
+
owner: globalContext,
|
|
118
|
+
takesSymbols: false,
|
|
119
|
+
takenSymbols: undefined,
|
|
120
|
+
childrenWithContent: 0,
|
|
121
|
+
_lastEmpty: true,
|
|
122
|
+
isRoot: false
|
|
123
|
+
};
|
|
124
|
+
const debugInfo = options?.debug;
|
|
125
|
+
const effectId = debug.effect.register({
|
|
126
|
+
name: debugInfo?.name ?? fn.name,
|
|
127
|
+
type: debugInfo?.type,
|
|
128
|
+
createdAt: captureSourceLocation(),
|
|
129
|
+
contextId: context.id,
|
|
130
|
+
ownerContextId: resolveOwnerEffectContextId(context)
|
|
131
|
+
});
|
|
132
|
+
if (effectId !== -1) {
|
|
133
|
+
context.meta ??= {};
|
|
134
|
+
context.meta.effectId = effectId;
|
|
135
|
+
}
|
|
136
|
+
const cleanupFn = final => {
|
|
137
|
+
const d = context.disposables;
|
|
138
|
+
context.disposables = undefined;
|
|
139
|
+
if (d) {
|
|
140
|
+
for (let k = 0, len = d.length; k < len; k++) untrack(d[k]);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
144
|
+
final && stop(runner);
|
|
145
|
+
};
|
|
146
|
+
onCleanup(() => cleanupFn(true));
|
|
147
|
+
const effectOpts = {
|
|
148
|
+
// allow recursive effects with 32, 1 and 4 are default flags
|
|
149
|
+
flags: 1 | 4 | 32,
|
|
150
|
+
scheduler: scheduler()
|
|
151
|
+
};
|
|
152
|
+
if (effectId !== -1) {
|
|
153
|
+
effectOpts.onTrack = event => {
|
|
154
|
+
const targetKey = typeof event.key === "symbol" ? event.key.toString() : event.key;
|
|
155
|
+
if (isRef(event.target)) {
|
|
156
|
+
const id = refId(event.target);
|
|
157
|
+
debug.effect.ensureRef({
|
|
158
|
+
id,
|
|
159
|
+
kind: "ref"
|
|
160
|
+
});
|
|
161
|
+
debug.effect.track({
|
|
162
|
+
effectId,
|
|
163
|
+
target: event.target,
|
|
164
|
+
refId: id,
|
|
165
|
+
targetKey
|
|
166
|
+
});
|
|
167
|
+
} else if (typeof event.target === "object" && event.target !== null && targetKey !== undefined) {
|
|
168
|
+
const id = reactivePropertyRefId(event.target, targetKey);
|
|
169
|
+
debug.effect.ensureReactivePropertyRef({
|
|
170
|
+
id,
|
|
171
|
+
target: event.target,
|
|
172
|
+
key: targetKey
|
|
173
|
+
});
|
|
174
|
+
debug.effect.track({
|
|
175
|
+
effectId,
|
|
176
|
+
target: event.target,
|
|
177
|
+
refId: id,
|
|
178
|
+
targetKey
|
|
179
|
+
});
|
|
180
|
+
} else {
|
|
181
|
+
debug.effect.track({
|
|
182
|
+
effectId,
|
|
183
|
+
target: event.target,
|
|
184
|
+
targetKey
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
effectOpts.onTrigger = event => {
|
|
189
|
+
if (!("target" in event)) {
|
|
190
|
+
// Vue Dep.notify() chain propagation — no actual reactive target.
|
|
191
|
+
// Skip recording: these are computed→subscriber notifications without
|
|
192
|
+
// a meaningful target reference.
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
const targetKey = typeof event.key === "symbol" ? event.key.toString() : event.key;
|
|
196
|
+
// findCurrentEffectId() works because onTrigger fires synchronously
|
|
197
|
+
// during the mutation, so globalContext still points to the producer.
|
|
198
|
+
const producerEffectId = findCurrentEffectId();
|
|
199
|
+
const causedBy = producerEffectId !== undefined && producerEffectId !== effectId ? producerEffectId : undefined;
|
|
200
|
+
if (isRef(event.target)) {
|
|
201
|
+
const id = refId(event.target);
|
|
202
|
+
debug.effect.ensureRef({
|
|
203
|
+
id,
|
|
204
|
+
kind: "ref"
|
|
205
|
+
});
|
|
206
|
+
debug.effect.trigger({
|
|
207
|
+
effectId,
|
|
208
|
+
target: event.target,
|
|
209
|
+
refId: id,
|
|
210
|
+
targetKey,
|
|
211
|
+
causedBy
|
|
212
|
+
});
|
|
213
|
+
setLastTriggerRef(effectId, id);
|
|
214
|
+
} else if (typeof event.target === "object" && event.target !== null && targetKey !== undefined) {
|
|
215
|
+
const id = reactivePropertyRefId(event.target, targetKey);
|
|
216
|
+
debug.effect.ensureReactivePropertyRef({
|
|
217
|
+
id,
|
|
218
|
+
target: event.target,
|
|
219
|
+
key: targetKey
|
|
220
|
+
});
|
|
221
|
+
debug.effect.trigger({
|
|
222
|
+
effectId,
|
|
223
|
+
target: event.target,
|
|
224
|
+
refId: id,
|
|
225
|
+
targetKey,
|
|
226
|
+
causedBy
|
|
227
|
+
});
|
|
228
|
+
setLastTriggerRef(effectId, id);
|
|
229
|
+
} else {
|
|
230
|
+
debug.effect.trigger({
|
|
231
|
+
effectId,
|
|
232
|
+
target: event.target,
|
|
233
|
+
targetKey,
|
|
234
|
+
causedBy
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
const runner = vueEffect(() => {
|
|
240
|
+
cleanupFn(false);
|
|
241
|
+
const oldContext = globalContext;
|
|
242
|
+
globalContext = context;
|
|
243
|
+
try {
|
|
244
|
+
current = fn(current);
|
|
245
|
+
} finally {
|
|
246
|
+
globalContext = oldContext;
|
|
247
|
+
}
|
|
248
|
+
}, effectOpts);
|
|
249
|
+
if (effectId !== -1) {
|
|
250
|
+
effectIdMap.set(runner.effect, effectId);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* Register a cleanup function which is called when the current reactive scope
|
|
256
|
+
* is recalculated or disposed. This is useful to clean up any side effects
|
|
257
|
+
* created in the reactive scope.
|
|
258
|
+
*
|
|
259
|
+
* @remarks
|
|
260
|
+
*
|
|
261
|
+
* When onCleanup is called inside a component definition, the provided function
|
|
262
|
+
* is called when the component is removed from the tree. This can be useful to
|
|
263
|
+
* clean up any side effects created as a result of rendering the component. For
|
|
264
|
+
* example, if rendering a component creates a symbol, `onCleanup` can be used
|
|
265
|
+
* to remove the symbol when the component is removed from the tree.
|
|
266
|
+
*
|
|
267
|
+
* When onCleanup is called inside a memo or effect, the function is called when
|
|
268
|
+
* the effect is refreshed (e.g. when a memo or computed recalculates) or
|
|
269
|
+
* disposed (e.g. it is no longer needed because it is attached to a component
|
|
270
|
+
* which was removed).
|
|
271
|
+
*/
|
|
272
|
+
export function onCleanup(fn) {
|
|
273
|
+
if (globalContext != null) {
|
|
274
|
+
(globalContext.disposables ??= []).push(fn);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Create a custom reactive context for the children returned by
|
|
280
|
+
* the provided context.
|
|
281
|
+
*/
|
|
282
|
+
|
|
283
|
+
const CUSTOM_CONTEXT_SYM = Symbol();
|
|
284
|
+
export function createCustomContext(useCallback) {
|
|
285
|
+
return {
|
|
286
|
+
[CUSTOM_CONTEXT_SYM]: true,
|
|
287
|
+
useCustomContext(useCb) {
|
|
288
|
+
useCallback(useCb);
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
export function isCustomContext(child) {
|
|
293
|
+
return typeof child === "object" && child !== null && Object.hasOwn(child, CUSTOM_CONTEXT_SYM);
|
|
294
|
+
}
|
|
295
|
+
export function ref(value, options) {
|
|
296
|
+
const result = vueRef(value);
|
|
297
|
+
debug.effect.registerRef({
|
|
298
|
+
id: refId(result),
|
|
299
|
+
kind: "ref",
|
|
300
|
+
createdAt: captureSourceLocation(),
|
|
301
|
+
createdByEffectId: globalContext?.meta?.effectId,
|
|
302
|
+
isInfrastructure: options?.isInfrastructure
|
|
303
|
+
});
|
|
304
|
+
return result;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
// Stores creation location for shallowReactive objects so registerNonRefTarget
|
|
308
|
+
// can look it up later (since targets are lazily registered on first track/trigger).
|
|
309
|
+
const reactiveCreationLocations = new WeakMap();
|
|
310
|
+
export function getReactiveCreationLocation(target) {
|
|
311
|
+
return reactiveCreationLocations.get(target);
|
|
312
|
+
}
|
|
313
|
+
export function shallowReactive(target) {
|
|
314
|
+
const result = vueShallowReactive(target);
|
|
315
|
+
if (isDebugEnabled()) {
|
|
316
|
+
// Store by raw target — Vue's onTrack/onTrigger events pass the raw object, not the proxy.
|
|
317
|
+
reactiveCreationLocations.set(target, captureSourceLocation());
|
|
318
|
+
}
|
|
319
|
+
return result;
|
|
320
|
+
}
|
|
321
|
+
export function shallowRef(value, options) {
|
|
322
|
+
const result = vueShallowRef(value);
|
|
323
|
+
debug.effect.registerRef({
|
|
324
|
+
id: refId(result),
|
|
325
|
+
kind: "shallowRef",
|
|
326
|
+
label: options?.label,
|
|
327
|
+
createdAt: captureSourceLocation(),
|
|
328
|
+
createdByEffectId: globalContext?.meta?.effectId
|
|
329
|
+
});
|
|
330
|
+
return result;
|
|
331
|
+
}
|
|
332
|
+
export function computed(getter) {
|
|
333
|
+
const result = vueComputed(getter);
|
|
334
|
+
debug.effect.registerRef({
|
|
335
|
+
id: refId(result),
|
|
336
|
+
kind: "computed",
|
|
337
|
+
createdAt: captureSourceLocation(),
|
|
338
|
+
createdByEffectId: globalContext?.meta?.effectId
|
|
339
|
+
});
|
|
340
|
+
return result;
|
|
341
|
+
}
|
|
342
|
+
export function toRef(object, key, defaultValue) {
|
|
343
|
+
const result = defaultValue === undefined ? vueToRef(object, key) : vueToRef(object, key, defaultValue);
|
|
344
|
+
debug.effect.registerRef({
|
|
345
|
+
id: refId(result),
|
|
346
|
+
kind: "toRef",
|
|
347
|
+
createdAt: captureSourceLocation(),
|
|
348
|
+
createdByEffectId: globalContext?.meta?.effectId
|
|
349
|
+
});
|
|
350
|
+
return result;
|
|
351
|
+
}
|
|
352
|
+
export function toRefs(object) {
|
|
353
|
+
const result = vueToRefs(object);
|
|
354
|
+
for (const refValue of Object.values(result)) {
|
|
355
|
+
debug.effect.registerRef({
|
|
356
|
+
id: refId(refValue),
|
|
357
|
+
kind: "toRef",
|
|
358
|
+
createdAt: captureSourceLocation(),
|
|
359
|
+
createdByEffectId: globalContext?.meta?.effectId
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
return result;
|
|
363
|
+
}
|
|
364
|
+
const seenRefs = new WeakMap();
|
|
365
|
+
let refIdCounter = 1;
|
|
366
|
+
const effectIdMap = new WeakMap();
|
|
367
|
+
|
|
368
|
+
// Stable ID mapping for (reactive, key) pairs — each property acts as a virtual ref.
|
|
369
|
+
const reactivePropertyIds = new WeakMap();
|
|
370
|
+
export function refId(ref) {
|
|
371
|
+
let id = seenRefs.get(ref);
|
|
372
|
+
if (id === undefined) {
|
|
373
|
+
id = refIdCounter++;
|
|
374
|
+
seenRefs.set(ref, id);
|
|
375
|
+
}
|
|
376
|
+
return id;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Get a stable ref ID for a property of a reactive object.
|
|
381
|
+
* Each (target, key) pair gets a unique positive ID from the same counter as refs.
|
|
382
|
+
*/
|
|
383
|
+
export function reactivePropertyRefId(target, key) {
|
|
384
|
+
let keys = reactivePropertyIds.get(target);
|
|
385
|
+
if (!keys) {
|
|
386
|
+
keys = new Map();
|
|
387
|
+
reactivePropertyIds.set(target, keys);
|
|
388
|
+
}
|
|
389
|
+
let id = keys.get(key);
|
|
390
|
+
if (id === undefined) {
|
|
391
|
+
id = refIdCounter++;
|
|
392
|
+
keys.set(key, id);
|
|
393
|
+
}
|
|
394
|
+
return id;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* Build a human-readable label for a reactive property like `symbolName.prop`.
|
|
399
|
+
*/
|
|
400
|
+
export function formatReactivePropertyLabel(target, key) {
|
|
401
|
+
let ownerLabel;
|
|
402
|
+
try {
|
|
403
|
+
const str = String(target);
|
|
404
|
+
// OutputSymbol toString() returns something like: TSOutputSymbol "MyInterface"[42]
|
|
405
|
+
// Trim to just the meaningful part
|
|
406
|
+
ownerLabel = str.length > 60 ? str.slice(0, 57) + "..." : str;
|
|
407
|
+
} catch {
|
|
408
|
+
ownerLabel = "reactive";
|
|
409
|
+
}
|
|
410
|
+
if (Array.isArray(target)) {
|
|
411
|
+
ownerLabel = "[]";
|
|
412
|
+
}
|
|
413
|
+
return `${ownerLabel}.${key}`;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
/** Allocate a unique reactive target ID from the same counter space as ref IDs. */
|
|
417
|
+
export function nextReactiveId() {
|
|
418
|
+
return refIdCounter++;
|
|
419
|
+
}
|
|
420
|
+
export function resetRefIdCounter() {
|
|
421
|
+
refIdCounter = 1;
|
|
422
|
+
}
|
|
423
|
+
export function getEffectDebugId(effect) {
|
|
424
|
+
return effectIdMap.get(effect);
|
|
425
|
+
}
|
|
426
|
+
//# sourceMappingURL=reactivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isRef","pauseTracking","resetTracking","stop","computed","vueComputed","effect","vueEffect","ref","vueRef","shallowReactive","vueShallowReactive","shallowRef","vueShallowRef","toRef","vueToRef","toRefs","vueToRefs","captureSourceLocation","debug","isDebugEnabled","scheduler","setLastTriggerRef","globalThis","__ALLOY__","Error","getElementCache","ctx","getContext","elementCache","Map","contextIdCounter","globalContext","resolveOwnerEffectContextId","context","owner","meta","effectId","undefined","id","ensureIsEmpty","isEmpty","childrenWithContent","isInfrastructure","root","fn","options","componentOwner","takesSymbols","takenSymbols","_lastEmpty","isRoot","ret","untrack","d","disposables","v","findCurrentEffectId","memo","equal","name","memoLabel","o","label","prev","res","value","getter","Object","defineProperty","configurable","current","debugInfo","register","type","createdAt","contextId","ownerContextId","cleanupFn","final","k","len","length","runner","onCleanup","effectOpts","flags","onTrack","event","targetKey","key","toString","target","refId","ensureRef","kind","track","reactivePropertyRefId","ensureReactivePropertyRef","onTrigger","producerEffectId","causedBy","trigger","oldContext","effectIdMap","set","push","CUSTOM_CONTEXT_SYM","Symbol","createCustomContext","useCallback","useCustomContext","useCb","isCustomContext","child","hasOwn","result","registerRef","createdByEffectId","reactiveCreationLocations","WeakMap","getReactiveCreationLocation","get","object","defaultValue","refValue","values","seenRefs","refIdCounter","reactivePropertyIds","keys","formatReactivePropertyLabel","ownerLabel","str","String","slice","Array","isArray","nextReactiveId","resetRefIdCounter","getEffectDebugId"],"sources":["../../../src/reactivity.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { markRaw } from "@vue/reactivity";
|
|
2
|
+
import { untrack } from "./reactivity.js";
|
|
3
|
+
const objectIds = new WeakMap();
|
|
4
|
+
let objId = 0;
|
|
5
|
+
function getObjectKey(value) {
|
|
6
|
+
if (objectIds.has(value)) {
|
|
7
|
+
return objectIds.get(value);
|
|
8
|
+
}
|
|
9
|
+
const key = `o${objId++}`;
|
|
10
|
+
objectIds.set(value, key);
|
|
11
|
+
return key;
|
|
12
|
+
}
|
|
13
|
+
export const REFKEYABLE = Symbol("Alloy.REFKEYABLE");
|
|
14
|
+
export function toRefkey(refkey) {
|
|
15
|
+
return untrack(() => refkey[REFKEYABLE]());
|
|
16
|
+
}
|
|
17
|
+
function createSymbolRefkey(key) {
|
|
18
|
+
const refkey = {
|
|
19
|
+
key,
|
|
20
|
+
[REFKEYABLE]() {
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
markRaw(refkey);
|
|
25
|
+
return refkey;
|
|
26
|
+
}
|
|
27
|
+
export function isRefkeyable(value) {
|
|
28
|
+
return typeof value === "object" && value !== null && Object.hasOwn(value, REFKEYABLE);
|
|
29
|
+
}
|
|
30
|
+
export function isRefkey(value) {
|
|
31
|
+
return isRefkeyable(value) && value[REFKEYABLE]() === value;
|
|
32
|
+
}
|
|
33
|
+
export function isSymbolRefkey(value) {
|
|
34
|
+
return isRefkey(value) && Object.hasOwn(value, "key");
|
|
35
|
+
}
|
|
36
|
+
export function isMemberRefkey(value) {
|
|
37
|
+
return isRefkey(value) && Object.hasOwn(value, "base");
|
|
38
|
+
}
|
|
39
|
+
export function isNamekey(value) {
|
|
40
|
+
return isRefkey(value) && Object.hasOwn(value, "name");
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* This gets the key for a symbol refkey based on the value provided. Refkey values
|
|
45
|
+
* return the key of that refkey, objects get a unique key for that specific object,
|
|
46
|
+
* and otherwise the key is based on the value.
|
|
47
|
+
*/
|
|
48
|
+
function getKey(value) {
|
|
49
|
+
if (isRefkeyable(value)) {
|
|
50
|
+
const refkey = toRefkey(value);
|
|
51
|
+
if (isSymbolRefkey(refkey)) {
|
|
52
|
+
return refkey.key;
|
|
53
|
+
} else {
|
|
54
|
+
return getObjectKey(value);
|
|
55
|
+
}
|
|
56
|
+
} else if (typeof value === "object" && value !== null) {
|
|
57
|
+
return getObjectKey(value);
|
|
58
|
+
} else {
|
|
59
|
+
return `s${String(value)}`;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const knownRefkeys = new Map();
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Create a refkey for the provided arguments. Passing no arguments returns a
|
|
66
|
+
* fresh refkey that is guaranteed to be unique. Otherwise, the arguments passed
|
|
67
|
+
* will be used to create a refkey for those values. Providing the same
|
|
68
|
+
* arguments will always return the same refkey.
|
|
69
|
+
*
|
|
70
|
+
* @remarks
|
|
71
|
+
*
|
|
72
|
+
* Values are compared using the SameValueZero algorithm, which considers
|
|
73
|
+
* objects the same if they are reference identical, and primitives the same if
|
|
74
|
+
* they are the same value, with the exception of `NaN`, which is always considered
|
|
75
|
+
* equal to other `NaN` values, and `-0`, which is considered identical to `+0`
|
|
76
|
+
*/
|
|
77
|
+
export function refkey(...args) {
|
|
78
|
+
const keys = args.length === 0 ? [getKey({})] : args.map(v => getKey(v));
|
|
79
|
+
const compositeKey = keys.join("\u2063");
|
|
80
|
+
if (knownRefkeys.has(compositeKey)) {
|
|
81
|
+
return knownRefkeys.get(compositeKey);
|
|
82
|
+
}
|
|
83
|
+
const key = createSymbolRefkey(compositeKey);
|
|
84
|
+
knownRefkeys.set(compositeKey, key);
|
|
85
|
+
return key;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Create a namekey with the given name. The namekey is a unique refkey that
|
|
90
|
+
* represents a single symbol with the given name and the provided
|
|
91
|
+
* naming-related options.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```tsx
|
|
95
|
+
* const myClass = namekey("MyClass");
|
|
96
|
+
*
|
|
97
|
+
* return <>
|
|
98
|
+
* <ClassDeclaration name={myClass} />
|
|
99
|
+
* {myClass}
|
|
100
|
+
* </>
|
|
101
|
+
* ```
|
|
102
|
+
*
|
|
103
|
+
* Renders a class and a reference to that class.
|
|
104
|
+
*/
|
|
105
|
+
export function namekey(name, options = {}) {
|
|
106
|
+
return {
|
|
107
|
+
key: getObjectKey({}),
|
|
108
|
+
name,
|
|
109
|
+
options,
|
|
110
|
+
[REFKEYABLE]() {
|
|
111
|
+
return this;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Create a refkey for an instantiation of a symbol.
|
|
117
|
+
*
|
|
118
|
+
* @param base - The refkey of the symbol holding the instantiation.
|
|
119
|
+
* @param member - The refkey of the non-instantiated member symbol (either the
|
|
120
|
+
* instance or static member symbol)
|
|
121
|
+
*
|
|
122
|
+
* @remarks
|
|
123
|
+
*
|
|
124
|
+
* Refkeys for instantiated and copied members are a composite refkey of the
|
|
125
|
+
* owner's refkey and the member's refkey. So for example, given a refkey for an
|
|
126
|
+
* instantiation of a class `rk1`, and a refkey for the instance member of that
|
|
127
|
+
* class `rk2`, the refkey for the instantiated static member is
|
|
128
|
+
* `refkey(rk1, rk2)`. This function will return the same refkey given those
|
|
129
|
+
* same parameters.
|
|
130
|
+
*
|
|
131
|
+
* When a static member symbol `rk3` is owned by another static or instance
|
|
132
|
+
* member symbol (i.e. the outer symbol is itself a member container), the
|
|
133
|
+
* refkey of the instaniated static member is still just the composite of the
|
|
134
|
+
* instantiated variable refkey and the refkey of the inner member
|
|
135
|
+
* `refkey(rk1, rk3)`.
|
|
136
|
+
*/
|
|
137
|
+
export function memberRefkey(base, ...members) {
|
|
138
|
+
if (members.length < 1) {
|
|
139
|
+
throw new Error("memberRefkey needs at least one member");
|
|
140
|
+
}
|
|
141
|
+
if (members.length === 1) {
|
|
142
|
+
return {
|
|
143
|
+
base: toRefkey(base),
|
|
144
|
+
member: typeof members[0] === "string" ? members[0] : toRefkey(members[0]),
|
|
145
|
+
[REFKEYABLE]() {
|
|
146
|
+
return this;
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
const lastMember = members.at(-1);
|
|
151
|
+
return {
|
|
152
|
+
base: memberRefkey(base, ...members.slice(0, -1)),
|
|
153
|
+
member: typeof lastMember === "string" ? lastMember : toRefkey(lastMember),
|
|
154
|
+
[REFKEYABLE]() {
|
|
155
|
+
return this;
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
export function inspectRefkey(refkey) {
|
|
160
|
+
const unwrapped = refkey[REFKEYABLE]();
|
|
161
|
+
const text = isMemberRefkey(unwrapped) ? `memberRefkey[${inspectRefkey(unwrapped.base)} -> ${typeof unwrapped.member === "string" ? unwrapped.member : inspectRefkey(unwrapped.member)}]` : `refkey[${unwrapped.key}]`;
|
|
162
|
+
return text;
|
|
163
|
+
}
|
|
164
|
+
export function unresolvedRefkey(refkey) {
|
|
165
|
+
return `<Unresolved Symbol: ${inspectRefkey(refkey)}>`;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=refkey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["markRaw","untrack","objectIds","WeakMap","objId","getObjectKey","value","has","get","key","set","REFKEYABLE","Symbol","toRefkey","refkey","createSymbolRefkey","isRefkeyable","Object","hasOwn","isRefkey","isSymbolRefkey","isMemberRefkey","isNamekey","getKey","String","knownRefkeys","Map","args","keys","length","map","v","compositeKey","join","namekey","name","options","memberRefkey","base","members","Error","member","lastMember","at","slice","inspectRefkey","unwrapped","text","unresolvedRefkey"],"sources":["../../../src/refkey.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAO,QAAQ,iBAAiB;AACzC,SAASC,OAAO,QAAQ,iBAAiB;AAEzC,MAAMC,SAAS,GAAG,IAAIC,OAAO,CAAkB,CAAC;AAChD,IAAIC,KAAK,GAAG,CAAC;AAEb,SAASC,YAAYA,CAACC,KAAc,EAAU;EAC5C,IAAIJ,SAAS,CAACK,GAAG,CAACD,KAAK,CAAC,EAAE;IACxB,OAAOJ,SAAS,CAACM,GAAG,CAACF,KAAK,CAAC;EAC7B;EAEA,MAAMG,GAAG,GAAG,IAAIL,KAAK,EAAE,EAAE;EACzBF,SAAS,CAACQ,GAAG,CAACJ,KAAK,EAAEG,GAAG,CAAC;EAEzB,OAAOA,GAAG;AACZ;AAEA,OAAO,MAAME,UAAyB,GAAGC,MAAM,CAAC,kBAAkB,CAAC;AAMnE,OAAO,SAASC,QAAQA,CAACC,MAAkB,EAAE;EAC3C,OAAOb,OAAO,CAAC,MAAMa,MAAM,CAACH,UAAU,CAAC,CAAC,CAAC,CAAC;AAC5C;AAyBA,SAASI,kBAAkBA,CAACN,GAAW,EAAgB;EACrD,MAAMK,MAAoB,GAAG;IAC3BL,GAAG;IACH,CAACE,UAAU,IAAI;MACb,OAAO,IAAI;IACb;EACF,CAAC;EAEDX,OAAO,CAACc,MAAM,CAAC;EAEf,OAAOA,MAAM;AACf;AAEA,OAAO,SAASE,YAAYA,CAACV,KAAc,EAA6B;EACtE,OACE,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACdW,MAAM,CAACC,MAAM,CAACZ,KAAK,EAAEK,UAAU,CAAC;AAEpC;AACA,OAAO,SAASQ,QAAQA,CAACb,KAAc,EAAmB;EACxD,OACEU,YAAY,CAACV,KAAK,CAAC,IAAKA,KAAK,CAAsBK,UAAU,CAAC,CAAC,CAAC,KAAKL,KAAK;AAE9E;AAEA,OAAO,SAASc,cAAcA,CAACd,KAAc,EAAyB;EACpE,OAAOa,QAAQ,CAACb,KAAK,CAAC,IAAIW,MAAM,CAACC,MAAM,CAACZ,KAAK,EAAE,KAAK,CAAC;AACvD;AAEA,OAAO,SAASe,cAAcA,CAACf,KAAc,EAAyB;EACpE,OAAOa,QAAQ,CAACb,KAAK,CAAC,IAAIW,MAAM,CAACC,MAAM,CAACZ,KAAK,EAAE,MAAM,CAAC;AACxD;AAEA,OAAO,SAASgB,SAASA,CAAChB,KAAc,EAAoB;EAC1D,OAAOa,QAAQ,CAACb,KAAK,CAAC,IAAIW,MAAM,CAACC,MAAM,CAACZ,KAAK,EAAE,MAAM,CAAC;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASiB,MAAMA,CAACjB,KAAc,EAAU;EACtC,IAAIU,YAAY,CAACV,KAAK,CAAC,EAAE;IACvB,MAAMQ,MAAM,GAAGD,QAAQ,CAACP,KAAK,CAAC;IAC9B,IAAIc,cAAc,CAACN,MAAM,CAAC,EAAE;MAC1B,OAAOA,MAAM,CAACL,GAAG;IACnB,CAAC,MAAM;MACL,OAAOJ,YAAY,CAACC,KAAK,CAAC;IAC5B;EACF,CAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,EAAE;IACtD,OAAOD,YAAY,CAACC,KAAK,CAAC;EAC5B,CAAC,MAAM;IACL,OAAO,IAAIkB,MAAM,CAAClB,KAAK,CAAC,EAAE;EAC5B;AACF;AAEA,MAAMmB,YAAY,GAAG,IAAIC,GAAG,CAAiB,CAAC;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASZ,MAAMA,CAAC,GAAGa,IAAe,EAAU;EACjD,MAAMC,IAAI,GAAGD,IAAI,CAACE,MAAM,KAAK,CAAC,GAAG,CAACN,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGI,IAAI,CAACG,GAAG,CAAEC,CAAC,IAAKR,MAAM,CAACQ,CAAC,CAAC,CAAC;EAE1E,MAAMC,YAAY,GAAGJ,IAAI,CAACK,IAAI,CAAC,QAAQ,CAAC;EACxC,IAAIR,YAAY,CAAClB,GAAG,CAACyB,YAAY,CAAC,EAAE;IAClC,OAAOP,YAAY,CAACjB,GAAG,CAACwB,YAAY,CAAC;EACvC;EAEA,MAAMvB,GAAG,GAAGM,kBAAkB,CAACiB,YAAY,CAAC;EAC5CP,YAAY,CAACf,GAAG,CAACsB,YAAY,EAAEvB,GAAG,CAAC;EACnC,OAAOA,GAAG;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASyB,OAAOA,CAACC,IAAY,EAAEC,OAAuB,GAAG,CAAC,CAAC,EAAW;EAC3E,OAAO;IACL3B,GAAG,EAAEJ,YAAY,CAAC,CAAC,CAAC,CAAC;IACrB8B,IAAI;IACJC,OAAO;IACP,CAACzB,UAAU,IAAI;MACb,OAAO,IAAI;IACb;EACF,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS0B,YAAYA,CAC1BC,IAAgB,EAChB,GAAGC,OAA0D,EAC/C;EACd,IAAIA,OAAO,CAACV,MAAM,GAAG,CAAC,EAAE;IACtB,MAAM,IAAIW,KAAK,CAAC,wCAAwC,CAAC;EAC3D;EAEA,IAAID,OAAO,CAACV,MAAM,KAAK,CAAC,EAAE;IACxB,OAAO;MACLS,IAAI,EAAEzB,QAAQ,CAACyB,IAAI,CAAC;MACpBG,MAAM,EACJ,OAAOF,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,GAAGA,OAAO,CAAC,CAAC,CAAC,GAAG1B,QAAQ,CAAC0B,OAAO,CAAC,CAAC,CAAC,CAAC;MACpE,CAAC5B,UAAU,IAAI;QACb,OAAO,IAAI;MACb;IACF,CAAC;EACH;EAEA,MAAM+B,UAAU,GAAGH,OAAO,CAACI,EAAE,CAAC,CAAC,CAAC,CAAE;EAElC,OAAO;IACLL,IAAI,EAAED,YAAY,CAChBC,IAAI,EACJ,GAAIC,OAAO,CAACK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CACzB,CAAC;IACDH,MAAM,EAAE,OAAOC,UAAU,KAAK,QAAQ,GAAGA,UAAU,GAAG7B,QAAQ,CAAC6B,UAAU,CAAC;IAC1E,CAAC/B,UAAU,IAAI;MACb,OAAO,IAAI;IACb;EACF,CAAC;AACH;AAEA,OAAO,SAASkC,aAAaA,CAAC/B,MAAc,EAAU;EACpD,MAAMgC,SAAS,GAAGhC,MAAM,CAACH,UAAU,CAAC,CAAC,CAAC;EAEtC,MAAMoC,IAAI,GACR1B,cAAc,CAACyB,SAAS,CAAC,GACvB,gBAAgBD,aAAa,CAACC,SAAS,CAACR,IAAI,CAAC,OAC3C,OAAOQ,SAAS,CAACL,MAAM,KAAK,QAAQ,GAClCK,SAAS,CAACL,MAAM,GAChBI,aAAa,CAACC,SAAS,CAACL,MAAM,CAAC,GAChC,GACH,UAAUK,SAAS,CAACrC,GAAG,GAAG;EAE9B,OAAOsC,IAAI;AACb;AAEA,OAAO,SAASC,gBAAgBA,CAAClC,MAAc,EAAU;EACvD,OAAO,uBAAuB+B,aAAa,CAAC/B,MAAM,CAAC,GAAG;AACxD","ignoreList":[]}
|