@alloy-js/core 0.24.0-dev.2 → 0.24.0-dev.7
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 +8 -0
- package/dist/dev/src/components/AccessExpression.test.js +30 -38
- package/dist/dev/src/components/AccessExpression.test.js.map +1 -1
- package/dist/dev/src/components/Output.js +3 -2
- package/dist/dev/src/components/Output.js.map +1 -1
- package/dist/dev/src/components/SourceFile.js.map +1 -1
- package/dist/dev/src/content-slot.test.js +16 -18
- package/dist/dev/src/content-slot.test.js.map +1 -1
- package/dist/dev/src/context.js +30 -3
- package/dist/dev/src/context.js.map +1 -1
- package/dist/dev/src/debug/diagnostics.test.js +1 -1
- package/dist/dev/src/debug/diagnostics.test.js.map +1 -1
- package/dist/dev/src/debug/effects.test.js +1 -1
- package/dist/dev/src/debug/effects.test.js.map +1 -1
- package/dist/dev/src/debug/file-streaming.js +103 -0
- package/dist/dev/src/debug/file-streaming.js.map +1 -0
- package/dist/dev/src/debug/files.test.js +4 -5
- package/dist/dev/src/debug/files.test.js.map +1 -1
- package/dist/dev/src/debug/index.js +4 -6
- package/dist/dev/src/debug/index.js.map +1 -1
- package/dist/dev/src/debug/message-format.test.js +50 -52
- package/dist/dev/src/debug/message-format.test.js.map +1 -1
- package/dist/dev/src/debug/render-tree-orphans.test.js +13 -23
- package/dist/dev/src/debug/render-tree-orphans.test.js.map +1 -1
- package/dist/dev/src/debug/render.js +529 -352
- package/dist/dev/src/debug/render.js.map +1 -1
- package/dist/dev/src/debug/render.test.js +171 -92
- package/dist/dev/src/debug/render.test.js.map +1 -1
- package/dist/dev/src/debug/trace-writer.js +127 -15
- package/dist/dev/src/debug/trace-writer.js.map +1 -1
- package/dist/dev/src/debug/trace.js +0 -36
- package/dist/dev/src/debug/trace.js.map +1 -1
- package/dist/dev/src/devtools/devtools-server.js +55 -32
- package/dist/dev/src/devtools/devtools-server.js.map +1 -1
- package/dist/dev/src/devtools-entry.browser.js.map +1 -1
- package/dist/dev/src/devtools-entry.js.map +1 -1
- package/dist/dev/src/diagnostics.js +19 -1
- package/dist/dev/src/diagnostics.js.map +1 -1
- package/dist/dev/src/index.js +5 -2
- package/dist/dev/src/index.js.map +1 -1
- package/dist/dev/src/jsx-runtime.js +14 -8
- package/dist/dev/src/jsx-runtime.js.map +1 -1
- package/dist/dev/src/output-types.js +2 -0
- package/dist/dev/src/output-types.js.map +1 -0
- package/dist/dev/src/reactivity.js +155 -13
- package/dist/dev/src/reactivity.js.map +1 -1
- package/dist/dev/src/render/get-string-width.js +61 -0
- package/dist/dev/src/render/get-string-width.js.map +1 -0
- package/dist/dev/src/render/index.js +2 -0
- package/dist/dev/src/render/index.js.map +1 -0
- package/dist/dev/src/render/node-context.js +7 -0
- package/dist/dev/src/render/node-context.js.map +1 -0
- package/dist/dev/src/render/node.js +386 -0
- package/dist/dev/src/render/node.js.map +1 -0
- package/dist/dev/src/render/printer-support.js +180 -0
- package/dist/dev/src/render/printer-support.js.map +1 -0
- package/dist/dev/src/render/printer.js +797 -0
- package/dist/dev/src/render/printer.js.map +1 -0
- package/dist/dev/src/render-error.js +79 -0
- package/dist/dev/src/render-error.js.map +1 -0
- package/dist/dev/src/render-output.js +209 -0
- package/dist/dev/src/render-output.js.map +1 -0
- package/dist/dev/src/runtime/create-intrinsic.js +53 -0
- package/dist/dev/src/runtime/create-intrinsic.js.map +1 -0
- package/dist/dev/src/runtime/fragment.js +21 -0
- package/dist/dev/src/runtime/fragment.js.map +1 -0
- package/dist/dev/src/runtime/index.js +13 -0
- package/dist/dev/src/runtime/index.js.map +1 -0
- package/dist/dev/src/runtime/insert.js +453 -0
- package/dist/dev/src/runtime/insert.js.map +1 -0
- package/dist/dev/src/runtime/intrinsic.js +1 -11
- package/dist/dev/src/runtime/intrinsic.js.map +1 -1
- package/dist/dev/src/scheduler.js +38 -14
- package/dist/dev/src/scheduler.js.map +1 -1
- package/dist/dev/src/stc.js +2 -0
- package/dist/dev/src/stc.js.map +1 -1
- package/dist/dev/src/sti.js +1 -1
- package/dist/dev/src/sti.js.map +1 -1
- package/dist/dev/src/symbols/symbol-slot.test.js +5 -5
- package/dist/dev/src/symbols/symbol-slot.test.js.map +1 -1
- package/dist/dev/src/test-render.js +78 -0
- package/dist/dev/src/test-render.js.map +1 -0
- package/dist/dev/src/utils.js +47 -35
- package/dist/dev/src/utils.js.map +1 -1
- package/dist/dev/test/babel-e2e.test.js +218 -0
- package/dist/dev/test/babel-e2e.test.js.map +1 -0
- package/dist/dev/test/children.test.js +9 -11
- package/dist/dev/test/children.test.js.map +1 -1
- package/dist/dev/test/components/append-file.test.js +26 -27
- package/dist/dev/test/components/append-file.test.js.map +1 -1
- package/dist/dev/test/components/block.test.js +9 -11
- package/dist/dev/test/components/block.test.js.map +1 -1
- package/dist/dev/test/components/copy-file.test.js +1 -2
- package/dist/dev/test/components/copy-file.test.js.map +1 -1
- package/dist/dev/test/components/declaration.test.js +2 -2
- package/dist/dev/test/components/declaration.test.js.map +1 -1
- package/dist/dev/test/components/list.test.js +41 -43
- package/dist/dev/test/components/list.test.js.map +1 -1
- package/dist/dev/test/components/prose.test.js +4 -5
- package/dist/dev/test/components/prose.test.js.map +1 -1
- package/dist/dev/test/components/reference-or-content.test.js +32 -33
- package/dist/dev/test/components/reference-or-content.test.js.map +1 -1
- package/dist/dev/test/components/source-file.test.js +8 -7
- package/dist/dev/test/components/source-file.test.js.map +1 -1
- package/dist/dev/test/components/template-file.test.js +16 -17
- package/dist/dev/test/components/template-file.test.js.map +1 -1
- package/dist/dev/test/components/update-file.test.js +11 -12
- package/dist/dev/test/components/update-file.test.js.map +1 -1
- package/dist/dev/test/components/wrap.test.js +6 -8
- package/dist/dev/test/components/wrap.test.js.map +1 -1
- package/dist/dev/test/control-flow/for.test.js +58 -42
- package/dist/dev/test/control-flow/for.test.js.map +1 -1
- package/dist/dev/test/control-flow/match.test.js +15 -17
- package/dist/dev/test/control-flow/match.test.js.map +1 -1
- package/dist/dev/test/control-flow/show.test.js +5 -8
- package/dist/dev/test/control-flow/show.test.js.map +1 -1
- package/dist/dev/test/lazy-isempty.test.js +29 -31
- package/dist/dev/test/lazy-isempty.test.js.map +1 -1
- package/dist/dev/test/name-policy.test.js +2 -3
- package/dist/dev/test/name-policy.test.js.map +1 -1
- package/dist/dev/test/node.test.js +80 -0
- package/dist/dev/test/node.test.js.map +1 -0
- package/dist/dev/test/output-e2e.test.js +194 -0
- package/dist/dev/test/output-e2e.test.js.map +1 -0
- package/dist/dev/test/reactivity/circular-reactives.test.js +9 -9
- package/dist/dev/test/reactivity/circular-reactives.test.js.map +1 -1
- package/dist/dev/test/reactivity/cleanup.test.js +5 -6
- package/dist/dev/test/reactivity/cleanup.test.js.map +1 -1
- package/dist/dev/test/reactivity/ref-rendering.test.js +15 -15
- package/dist/dev/test/reactivity/ref-rendering.test.js.map +1 -1
- package/dist/dev/test/reactivity/test.test.js +18 -18
- package/dist/dev/test/reactivity/test.test.js.map +1 -1
- package/dist/dev/test/rendering/basic.test.js +18 -19
- package/dist/dev/test/rendering/basic.test.js.map +1 -1
- package/dist/dev/test/rendering/code.test.js +2 -3
- package/dist/dev/test/rendering/code.test.js.map +1 -1
- package/dist/dev/test/rendering/formatting.test.js +115 -121
- package/dist/dev/test/rendering/formatting.test.js.map +1 -1
- package/dist/dev/test/rendering/indent.test.js +23 -24
- package/dist/dev/test/rendering/indent.test.js.map +1 -1
- package/dist/dev/test/rendering/memoization.test.js +9 -5
- package/dist/dev/test/rendering/memoization.test.js.map +1 -1
- package/dist/dev/test/rendering/print-render-stack.test.js +20 -21
- package/dist/dev/test/rendering/print-render-stack.test.js.map +1 -1
- package/dist/dev/test/rendering/refkeys.test.js +1 -2
- package/dist/dev/test/rendering/refkeys.test.js.map +1 -1
- package/dist/dev/test/rendering/render-output-diagnostics.test.js +102 -0
- package/dist/dev/test/rendering/render-output-diagnostics.test.js.map +1 -0
- package/dist/dev/test/runtime.test.js +385 -0
- package/dist/dev/test/runtime.test.js.map +1 -0
- package/dist/dev/test/stc.test.js +0 -1
- package/dist/dev/test/stc.test.js.map +1 -1
- package/dist/dev/test/tree-test-utils.js +16 -0
- package/dist/dev/test/tree-test-utils.js.map +1 -0
- package/dist/dev/test/utils.test.js +34 -33
- package/dist/dev/test/utils.test.js.map +1 -1
- package/dist/dev/test/vitest.setup.js +2 -0
- package/dist/dev/test/vitest.setup.js.map +1 -0
- package/dist/dev/testing/devtools-utils.js +1 -1
- package/dist/dev/testing/devtools-utils.js.map +1 -1
- package/dist/dev/testing/extend-expect.js +30 -34
- package/dist/dev/testing/extend-expect.js.map +1 -1
- package/dist/dev/testing/render.js +7 -17
- package/dist/dev/testing/render.js.map +1 -1
- package/dist/devtools/index.html +17 -17
- package/dist/src/components/AccessExpression.test.d.ts +1 -1
- package/dist/src/components/AccessExpression.test.d.ts.map +1 -1
- package/dist/src/components/AccessExpression.test.js +5 -13
- package/dist/src/components/AccessExpression.test.js.map +1 -1
- package/dist/src/components/Output.d.ts +1 -1
- package/dist/src/components/Output.d.ts.map +1 -1
- package/dist/src/components/Output.js +2 -1
- package/dist/src/components/Output.js.map +1 -1
- package/dist/src/components/ReferenceOrContent.d.ts +1 -1
- package/dist/src/components/ReferenceOrContent.d.ts.map +1 -1
- package/dist/src/components/SourceFile.d.ts +1 -1
- package/dist/src/components/SourceFile.d.ts.map +1 -1
- package/dist/src/components/SourceFile.js.map +1 -1
- package/dist/src/content-slot.test.d.ts +1 -1
- package/dist/src/content-slot.test.d.ts.map +1 -1
- package/dist/src/content-slot.test.js +8 -10
- package/dist/src/content-slot.test.js.map +1 -1
- package/dist/src/context/format-options.d.ts +1 -1
- package/dist/src/context/format-options.d.ts.map +1 -1
- package/dist/src/context.d.ts +9 -1
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +30 -3
- package/dist/src/context.js.map +1 -1
- package/dist/src/debug/diagnostics.test.js +1 -1
- package/dist/src/debug/diagnostics.test.js.map +1 -1
- package/dist/src/debug/effects.test.js +1 -1
- package/dist/src/debug/effects.test.js.map +1 -1
- package/dist/src/debug/file-streaming.d.ts +22 -0
- package/dist/src/debug/file-streaming.d.ts.map +1 -0
- package/dist/src/debug/file-streaming.js +103 -0
- package/dist/src/debug/file-streaming.js.map +1 -0
- package/dist/src/debug/files.test.js +4 -5
- package/dist/src/debug/files.test.js.map +1 -1
- package/dist/src/debug/index.d.ts +5 -7
- package/dist/src/debug/index.d.ts.map +1 -1
- package/dist/src/debug/index.js +4 -6
- package/dist/src/debug/index.js.map +1 -1
- package/dist/src/debug/message-format.test.js +16 -18
- package/dist/src/debug/message-format.test.js.map +1 -1
- package/dist/src/debug/render-tree-orphans.test.js +8 -18
- package/dist/src/debug/render-tree-orphans.test.js.map +1 -1
- package/dist/src/debug/render.d.ts +71 -21
- package/dist/src/debug/render.d.ts.map +1 -1
- package/dist/src/debug/render.js +529 -352
- package/dist/src/debug/render.js.map +1 -1
- package/dist/src/debug/render.test.js +137 -74
- package/dist/src/debug/render.test.js.map +1 -1
- package/dist/src/debug/trace-writer.d.ts +6 -1
- package/dist/src/debug/trace-writer.d.ts.map +1 -1
- package/dist/src/debug/trace-writer.js +127 -15
- package/dist/src/debug/trace-writer.js.map +1 -1
- package/dist/src/debug/trace.d.ts +0 -36
- package/dist/src/debug/trace.d.ts.map +1 -1
- package/dist/src/debug/trace.js +0 -36
- package/dist/src/debug/trace.js.map +1 -1
- package/dist/src/devtools/devtools-protocol.d.ts +34 -1
- package/dist/src/devtools/devtools-protocol.d.ts.map +1 -1
- package/dist/src/devtools/devtools-server.d.ts.map +1 -1
- package/dist/src/devtools/devtools-server.js +55 -32
- package/dist/src/devtools/devtools-server.js.map +1 -1
- package/dist/src/devtools-entry.browser.d.ts +1 -1
- package/dist/src/devtools-entry.browser.d.ts.map +1 -1
- package/dist/src/devtools-entry.browser.js.map +1 -1
- package/dist/src/devtools-entry.d.ts +1 -1
- package/dist/src/devtools-entry.d.ts.map +1 -1
- package/dist/src/devtools-entry.js.map +1 -1
- package/dist/src/diagnostics.d.ts +4 -0
- package/dist/src/diagnostics.d.ts.map +1 -1
- package/dist/src/diagnostics.js +19 -1
- package/dist/src/diagnostics.js.map +1 -1
- package/dist/src/index.d.ts +5 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/jsx-runtime.d.ts +13 -4
- package/dist/src/jsx-runtime.d.ts.map +1 -1
- package/dist/src/jsx-runtime.js +14 -8
- package/dist/src/jsx-runtime.js.map +1 -1
- package/dist/src/output-types.d.ts +40 -0
- package/dist/src/output-types.d.ts.map +1 -0
- package/dist/src/output-types.js +2 -0
- package/dist/src/output-types.js.map +1 -0
- package/dist/src/reactivity.d.ts +49 -18
- package/dist/src/reactivity.d.ts.map +1 -1
- package/dist/src/reactivity.js +155 -13
- package/dist/src/reactivity.js.map +1 -1
- package/dist/src/render/get-string-width.d.ts +19 -0
- package/dist/src/render/get-string-width.d.ts.map +1 -0
- package/dist/src/render/get-string-width.js +61 -0
- package/dist/src/render/get-string-width.js.map +1 -0
- package/dist/src/render/index.d.ts +2 -0
- package/dist/src/render/index.d.ts.map +1 -0
- package/dist/src/render/index.js +2 -0
- package/dist/src/render/index.js.map +1 -0
- package/dist/src/render/node-context.d.ts +5 -0
- package/dist/src/render/node-context.d.ts.map +1 -0
- package/dist/src/render/node-context.js +7 -0
- package/dist/src/render/node-context.js.map +1 -0
- package/dist/src/render/node.d.ts +146 -0
- package/dist/src/render/node.d.ts.map +1 -0
- package/dist/src/render/node.js +386 -0
- package/dist/src/render/node.js.map +1 -0
- package/dist/src/render/printer-support.d.ts +50 -0
- package/dist/src/render/printer-support.d.ts.map +1 -0
- package/dist/src/render/printer-support.js +180 -0
- package/dist/src/render/printer-support.js.map +1 -0
- package/dist/src/render/printer.d.ts +35 -0
- package/dist/src/render/printer.d.ts.map +1 -0
- package/dist/src/render/printer.js +797 -0
- package/dist/src/render/printer.js.map +1 -0
- package/dist/src/render-error.d.ts +4 -0
- package/dist/src/render-error.d.ts.map +1 -0
- package/dist/src/render-error.js +79 -0
- package/dist/src/render-error.js.map +1 -0
- package/dist/src/render-output.d.ts +42 -0
- package/dist/src/render-output.d.ts.map +1 -0
- package/dist/src/render-output.js +209 -0
- package/dist/src/render-output.js.map +1 -0
- package/dist/src/runtime/component.d.ts +2 -2
- package/dist/src/runtime/component.d.ts.map +1 -1
- package/dist/src/runtime/create-intrinsic.d.ts +28 -0
- package/dist/src/runtime/create-intrinsic.d.ts.map +1 -0
- package/dist/src/runtime/create-intrinsic.js +53 -0
- package/dist/src/runtime/create-intrinsic.js.map +1 -0
- package/dist/src/runtime/fragment.d.ts +16 -0
- package/dist/src/runtime/fragment.d.ts.map +1 -0
- package/dist/src/runtime/fragment.js +21 -0
- package/dist/src/runtime/fragment.js.map +1 -0
- package/dist/src/runtime/index.d.ts +12 -0
- package/dist/src/runtime/index.d.ts.map +1 -0
- package/dist/src/runtime/index.js +13 -0
- package/dist/src/runtime/index.js.map +1 -0
- package/dist/src/runtime/insert.d.ts +29 -0
- package/dist/src/runtime/insert.d.ts.map +1 -0
- package/dist/src/runtime/insert.js +453 -0
- package/dist/src/runtime/insert.js.map +1 -0
- package/dist/src/runtime/intrinsic.d.ts +12 -29
- package/dist/src/runtime/intrinsic.d.ts.map +1 -1
- package/dist/src/runtime/intrinsic.js +1 -11
- package/dist/src/runtime/intrinsic.js.map +1 -1
- package/dist/src/scheduler.d.ts.map +1 -1
- package/dist/src/scheduler.js +38 -14
- package/dist/src/scheduler.js.map +1 -1
- package/dist/src/stc.d.ts.map +1 -1
- package/dist/src/stc.js +2 -0
- package/dist/src/stc.js.map +1 -1
- package/dist/src/sti.d.ts +7 -6
- package/dist/src/sti.d.ts.map +1 -1
- package/dist/src/sti.js +1 -1
- package/dist/src/sti.js.map +1 -1
- package/dist/src/symbols/symbol-slot.test.js +5 -5
- package/dist/src/symbols/symbol-slot.test.js.map +1 -1
- package/dist/src/test-render.d.ts +31 -0
- package/dist/src/test-render.d.ts.map +1 -0
- package/dist/src/test-render.js +78 -0
- package/dist/src/test-render.js.map +1 -0
- package/dist/src/utils.d.ts +1 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +40 -28
- package/dist/src/utils.js.map +1 -1
- package/dist/src/write-output.d.ts +1 -1
- package/dist/src/write-output.d.ts.map +1 -1
- package/dist/test/babel-e2e.test.d.ts +13 -0
- package/dist/test/babel-e2e.test.d.ts.map +1 -0
- package/dist/test/babel-e2e.test.js +218 -0
- package/dist/test/babel-e2e.test.js.map +1 -0
- package/dist/test/children.test.js +5 -7
- package/dist/test/children.test.js.map +1 -1
- package/dist/test/components/append-file.test.d.ts +1 -1
- package/dist/test/components/append-file.test.d.ts.map +1 -1
- package/dist/test/components/append-file.test.js +0 -1
- package/dist/test/components/append-file.test.js.map +1 -1
- package/dist/test/components/block.test.d.ts +1 -1
- package/dist/test/components/block.test.d.ts.map +1 -1
- package/dist/test/components/block.test.js +4 -6
- package/dist/test/components/block.test.js.map +1 -1
- package/dist/test/components/copy-file.test.d.ts +1 -1
- package/dist/test/components/copy-file.test.d.ts.map +1 -1
- package/dist/test/components/copy-file.test.js +1 -2
- package/dist/test/components/copy-file.test.js.map +1 -1
- package/dist/test/components/declaration.test.js +2 -2
- package/dist/test/components/declaration.test.js.map +1 -1
- package/dist/test/components/list.test.d.ts +1 -1
- package/dist/test/components/list.test.d.ts.map +1 -1
- package/dist/test/components/list.test.js +20 -22
- package/dist/test/components/list.test.js.map +1 -1
- package/dist/test/components/prose.test.d.ts +1 -1
- package/dist/test/components/prose.test.d.ts.map +1 -1
- package/dist/test/components/prose.test.js +0 -1
- package/dist/test/components/prose.test.js.map +1 -1
- package/dist/test/components/reference-or-content.test.js +8 -9
- package/dist/test/components/reference-or-content.test.js.map +1 -1
- package/dist/test/components/source-file.test.d.ts +1 -1
- package/dist/test/components/source-file.test.d.ts.map +1 -1
- package/dist/test/components/source-file.test.js +5 -4
- package/dist/test/components/source-file.test.js.map +1 -1
- package/dist/test/components/template-file.test.d.ts +1 -1
- package/dist/test/components/template-file.test.d.ts.map +1 -1
- package/dist/test/components/template-file.test.js +0 -1
- package/dist/test/components/template-file.test.js.map +1 -1
- package/dist/test/components/update-file.test.d.ts +1 -1
- package/dist/test/components/update-file.test.d.ts.map +1 -1
- package/dist/test/components/update-file.test.js +1 -2
- package/dist/test/components/update-file.test.js.map +1 -1
- package/dist/test/components/wrap.test.d.ts +1 -1
- package/dist/test/components/wrap.test.d.ts.map +1 -1
- package/dist/test/components/wrap.test.js +3 -5
- package/dist/test/components/wrap.test.js.map +1 -1
- package/dist/test/control-flow/for.test.d.ts +1 -1
- package/dist/test/control-flow/for.test.d.ts.map +1 -1
- package/dist/test/control-flow/for.test.js +40 -24
- package/dist/test/control-flow/for.test.js.map +1 -1
- package/dist/test/control-flow/match.test.d.ts +1 -1
- package/dist/test/control-flow/match.test.d.ts.map +1 -1
- package/dist/test/control-flow/match.test.js +4 -6
- package/dist/test/control-flow/match.test.js.map +1 -1
- package/dist/test/control-flow/show.test.d.ts +1 -1
- package/dist/test/control-flow/show.test.d.ts.map +1 -1
- package/dist/test/control-flow/show.test.js +3 -6
- package/dist/test/control-flow/show.test.js.map +1 -1
- package/dist/test/lazy-isempty.test.d.ts +1 -1
- package/dist/test/lazy-isempty.test.d.ts.map +1 -1
- package/dist/test/lazy-isempty.test.js +16 -18
- package/dist/test/lazy-isempty.test.js.map +1 -1
- package/dist/test/name-policy.test.d.ts +1 -1
- package/dist/test/name-policy.test.d.ts.map +1 -1
- package/dist/test/name-policy.test.js +0 -1
- package/dist/test/name-policy.test.js.map +1 -1
- package/dist/test/node.test.d.ts +2 -0
- package/dist/test/node.test.d.ts.map +1 -0
- package/dist/test/node.test.js +80 -0
- package/dist/test/node.test.js.map +1 -0
- package/dist/test/output-e2e.test.d.ts +13 -0
- package/dist/test/output-e2e.test.d.ts.map +1 -0
- package/dist/test/output-e2e.test.js +194 -0
- package/dist/test/output-e2e.test.js.map +1 -0
- package/dist/test/reactivity/circular-reactives.test.js +6 -6
- package/dist/test/reactivity/circular-reactives.test.js.map +1 -1
- package/dist/test/reactivity/cleanup.test.js +2 -3
- package/dist/test/reactivity/cleanup.test.js.map +1 -1
- package/dist/test/reactivity/ref-rendering.test.js +15 -15
- package/dist/test/reactivity/ref-rendering.test.js.map +1 -1
- package/dist/test/reactivity/test.test.js +15 -15
- package/dist/test/reactivity/test.test.js.map +1 -1
- package/dist/test/rendering/basic.test.d.ts +1 -1
- package/dist/test/rendering/basic.test.d.ts.map +1 -1
- package/dist/test/rendering/basic.test.js +0 -1
- package/dist/test/rendering/basic.test.js.map +1 -1
- package/dist/test/rendering/code.test.d.ts +1 -1
- package/dist/test/rendering/code.test.d.ts.map +1 -1
- package/dist/test/rendering/code.test.js +0 -1
- package/dist/test/rendering/code.test.js.map +1 -1
- package/dist/test/rendering/formatting.test.d.ts +1 -1
- package/dist/test/rendering/formatting.test.d.ts.map +1 -1
- package/dist/test/rendering/formatting.test.js +17 -23
- package/dist/test/rendering/formatting.test.js.map +1 -1
- package/dist/test/rendering/indent.test.d.ts +1 -1
- package/dist/test/rendering/indent.test.d.ts.map +1 -1
- package/dist/test/rendering/indent.test.js +0 -1
- package/dist/test/rendering/indent.test.js.map +1 -1
- package/dist/test/rendering/memoization.test.js +7 -3
- package/dist/test/rendering/memoization.test.js.map +1 -1
- package/dist/test/rendering/print-render-stack.test.d.ts +1 -1
- package/dist/test/rendering/print-render-stack.test.d.ts.map +1 -1
- package/dist/test/rendering/print-render-stack.test.js +0 -1
- package/dist/test/rendering/print-render-stack.test.js.map +1 -1
- package/dist/test/rendering/refkeys.test.d.ts +1 -1
- package/dist/test/rendering/refkeys.test.d.ts.map +1 -1
- package/dist/test/rendering/refkeys.test.js +0 -1
- package/dist/test/rendering/refkeys.test.js.map +1 -1
- package/dist/test/rendering/render-output-diagnostics.test.d.ts +2 -0
- package/dist/test/rendering/render-output-diagnostics.test.d.ts.map +1 -0
- package/dist/test/rendering/render-output-diagnostics.test.js +82 -0
- package/dist/test/rendering/render-output-diagnostics.test.js.map +1 -0
- package/dist/test/runtime.test.d.ts +11 -0
- package/dist/test/runtime.test.d.ts.map +1 -0
- package/dist/test/runtime.test.js +385 -0
- package/dist/test/runtime.test.js.map +1 -0
- package/dist/test/stc.test.d.ts +1 -1
- package/dist/test/stc.test.d.ts.map +1 -1
- package/dist/test/stc.test.js +0 -1
- package/dist/test/stc.test.js.map +1 -1
- package/dist/test/tree-test-utils.d.ts +3 -0
- package/dist/test/tree-test-utils.d.ts.map +1 -0
- package/dist/test/tree-test-utils.js +16 -0
- package/dist/test/tree-test-utils.js.map +1 -0
- package/dist/test/utils.test.d.ts +1 -1
- package/dist/test/utils.test.d.ts.map +1 -1
- package/dist/test/utils.test.js +12 -11
- package/dist/test/utils.test.js.map +1 -1
- package/dist/test/vitest.setup.d.ts +2 -0
- package/dist/test/vitest.setup.d.ts.map +1 -0
- package/dist/test/vitest.setup.js +2 -0
- package/dist/test/vitest.setup.js.map +1 -0
- package/dist/testing/devtools-utils.d.ts.map +1 -1
- package/dist/testing/devtools-utils.js +1 -1
- package/dist/testing/devtools-utils.js.map +1 -1
- package/dist/testing/extend-expect.d.ts.map +1 -1
- package/dist/testing/extend-expect.js +30 -34
- package/dist/testing/extend-expect.js.map +1 -1
- package/dist/testing/render.d.ts +7 -9
- package/dist/testing/render.d.ts.map +1 -1
- package/dist/testing/render.js +7 -17
- package/dist/testing/render.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/api/components/Output.md +0 -3
- package/docs/api/components/SourceFile.md +0 -3
- package/docs/api/functions/createComment.md +18 -0
- package/docs/api/functions/createElement.md +19 -0
- package/docs/api/functions/createFragment.md +17 -0
- package/docs/api/functions/createTextNode.md +18 -0
- package/docs/api/functions/emitDiagnosticForTree.md +19 -0
- package/docs/api/functions/ensureIsEmpty.md +1 -1
- package/docs/api/functions/getContextForNode.md +18 -0
- package/docs/api/functions/getContextForRenderNode.md +4 -4
- package/docs/api/functions/getDiagnosticsForTree.md +7 -5
- package/docs/api/functions/getRegisteredDiagnosticsForTree.md +18 -0
- package/docs/api/functions/index.md +17 -12
- package/docs/api/functions/isCustomContext.md +4 -4
- package/docs/api/functions/notifyContentState.md +6 -0
- package/docs/api/functions/printTree.md +6 -16
- package/docs/api/functions/registerDiagnosticsForTree.md +19 -0
- package/docs/api/functions/render.md +1 -2
- package/docs/api/functions/renderAsync.md +1 -2
- package/docs/api/functions/renderTree.md +8 -5
- package/docs/api/functions/reportDiagnosticsForTree.md +18 -0
- package/docs/api/functions/runInContext.md +28 -0
- package/docs/api/functions/sourceFilesForTree.md +6 -16
- package/docs/api/index.md +3 -3
- package/docs/api/testing/functions/index.md +1 -1
- package/docs/api/testing/functions/renderToString.md +1 -1
- package/docs/api/types/AlloyNode.md +22 -0
- package/docs/api/types/Child.md +1 -1
- package/docs/api/types/CommentNode.md +15 -0
- package/docs/api/types/Context.md +13 -15
- package/docs/api/types/ElementNode.md +18 -0
- package/docs/api/types/FragmentNode.md +12 -0
- package/docs/api/types/Insertable.md +7 -0
- package/docs/api/types/NodeType.md +5 -0
- package/docs/api/types/OutputDirectory.md +0 -50
- package/docs/api/types/PrintTreeOptions.md +0 -1
- package/docs/api/types/RenderTreeOptions.md +7 -0
- package/docs/api/types/StiComponentCreator.md +4 -4
- package/docs/api/types/StiSignature.md +1 -1
- package/docs/api/types/TextNode.md +16 -0
- package/docs/api/types/index.md +10 -28
- package/docs/api/variables/COMMENT_NODE.md +5 -0
- package/docs/api/variables/ELEMENT_NODE.md +11 -0
- package/docs/api/variables/FRAGMENT_NODE.md +5 -0
- package/docs/api/variables/TEXT_NODE.md +5 -0
- package/docs/api/variables/index.md +4 -2
- package/docs/formatting.md +1 -1
- package/docs/rendering.md +4 -4
- package/package.json +6 -6
- package/src/components/AccessExpression.test.tsx +5 -13
- package/src/components/Output.tsx +2 -1
- package/src/components/SourceFile.tsx +1 -1
- package/src/content-slot.test.tsx +8 -10
- package/src/context/format-options.ts +1 -1
- package/src/context.ts +37 -4
- package/src/debug/diagnostics.test.tsx +1 -1
- package/src/debug/effects.test.tsx +1 -1
- package/src/debug/file-streaming.ts +115 -0
- package/src/debug/files.test.tsx +15 -11
- package/src/debug/index.ts +11 -11
- package/src/debug/message-format.test.tsx +32 -19
- package/src/debug/render-tree-orphans.test.tsx +10 -19
- package/src/debug/render.test.tsx +206 -78
- package/src/debug/render.ts +642 -495
- package/src/debug/trace-writer.ts +168 -14
- package/src/debug/trace.ts +0 -20
- package/src/devtools/devtools-protocol.ts +43 -0
- package/src/devtools/devtools-server.ts +57 -32
- package/src/devtools-entry.browser.ts +5 -0
- package/src/devtools-entry.ts +5 -0
- package/src/diagnostics.ts +31 -0
- package/src/index.ts +66 -2
- package/src/jsx-runtime.ts +16 -14
- package/src/output-types.ts +47 -0
- package/src/reactivity.ts +186 -40
- package/src/render/get-string-width.ts +201 -0
- package/src/render/index.ts +1 -0
- package/src/render/node-context.ts +14 -0
- package/src/render/node.ts +442 -0
- package/src/render/printer-support.ts +209 -0
- package/src/render/printer.ts +817 -0
- package/src/render-error.ts +98 -0
- package/src/render-output.ts +243 -0
- package/src/runtime/component.ts +2 -2
- package/src/runtime/create-intrinsic.ts +56 -0
- package/src/runtime/fragment.ts +22 -0
- package/src/runtime/index.ts +12 -0
- package/src/runtime/insert.ts +569 -0
- package/src/runtime/intrinsic.ts +14 -70
- package/src/scheduler.ts +40 -25
- package/src/stc.ts +3 -0
- package/src/sti.ts +17 -20
- package/src/symbols/symbol-slot.test.tsx +5 -5
- package/src/test-render.ts +103 -0
- package/src/utils.tsx +55 -37
- package/src/write-output.ts +1 -1
- package/temp/api-testing.json +390 -14
- package/temp/api.json +4320 -4144
- package/test/babel-e2e.test.ts +224 -0
- package/test/children.test.tsx +4 -7
- package/test/components/append-file.test.tsx +0 -1
- package/test/components/block.test.tsx +4 -6
- package/test/components/copy-file.test.tsx +2 -2
- package/test/components/declaration.test.tsx +2 -2
- package/test/components/list.test.tsx +20 -29
- package/test/components/prose.test.tsx +0 -1
- package/test/components/reference-or-content.test.tsx +8 -9
- package/test/components/source-file.test.tsx +4 -4
- package/test/components/template-file.test.tsx +0 -1
- package/test/components/update-file.test.tsx +1 -2
- package/test/components/wrap.test.tsx +3 -5
- package/test/control-flow/for.test.tsx +39 -31
- package/test/control-flow/match.test.tsx +4 -6
- package/test/control-flow/show.test.tsx +3 -6
- package/test/lazy-isempty.test.tsx +17 -19
- package/test/name-policy.test.tsx +0 -1
- package/test/node.test.ts +90 -0
- package/test/output-e2e.test.ts +198 -0
- package/test/reactivity/circular-reactives.test.tsx +6 -6
- package/test/reactivity/cleanup.test.tsx +2 -3
- package/test/reactivity/ref-rendering.test.tsx +15 -15
- package/test/reactivity/test.test.tsx +14 -14
- package/test/rendering/basic.test.tsx +0 -1
- package/test/rendering/code.test.tsx +0 -1
- package/test/rendering/formatting.test.tsx +21 -29
- package/test/rendering/indent.test.tsx +0 -1
- package/test/rendering/memoization.test.tsx +7 -3
- package/test/rendering/print-render-stack.test.tsx +0 -1
- package/test/rendering/refkeys.test.tsx +0 -1
- package/test/rendering/render-output-diagnostics.test.tsx +120 -0
- package/test/runtime.test.ts +448 -0
- package/test/stc.test.tsx +0 -1
- package/test/tree-test-utils.ts +23 -0
- package/test/utils.test.tsx +10 -9
- package/test/vitest.setup.ts +1 -0
- package/testing/devtools-utils.ts +2 -0
- package/testing/extend-expect.ts +32 -47
- package/testing/render.ts +17 -21
- package/vitest.config.ts +3 -0
- package/dist/dev/src/print-hook.js +0 -10
- package/dist/dev/src/print-hook.js.map +0 -1
- package/dist/dev/src/render.js +0 -872
- package/dist/dev/src/render.js.map +0 -1
- package/dist/src/print-hook.d.ts +0 -14
- package/dist/src/print-hook.d.ts.map +0 -1
- package/dist/src/print-hook.js +0 -10
- package/dist/src/print-hook.js.map +0 -1
- package/dist/src/render.d.ts +0 -155
- package/dist/src/render.d.ts.map +0 -1
- package/dist/src/render.js +0 -872
- package/dist/src/render.js.map +0 -1
- package/docs/api/functions/createIntrinsic.md +0 -19
- package/docs/api/functions/createRenderTreeHook.md +0 -19
- package/docs/api/functions/getElementCache.md +0 -17
- package/docs/api/functions/isIntrinsicElement.md +0 -18
- package/docs/api/functions/isPrintHook.md +0 -18
- package/docs/api/types/AlignIntrinsicElement.md +0 -5
- package/docs/api/types/BrIntrinsicElement.md +0 -5
- package/docs/api/types/BreakParentIntrinsicElement.md +0 -5
- package/docs/api/types/DedentIntrinsicElement.md +0 -5
- package/docs/api/types/DedentToRootIntrinsicElement.md +0 -5
- package/docs/api/types/ElementCache.md +0 -5
- package/docs/api/types/ElementCacheKey.md +0 -5
- package/docs/api/types/FillIntrinsicElement.md +0 -5
- package/docs/api/types/GroupIntrinsicElement.md +0 -5
- package/docs/api/types/HardlineIntrinsicElement.md +0 -5
- package/docs/api/types/HbrIntrinsicElement.md +0 -5
- package/docs/api/types/IfBreakIntrinsicElement.md +0 -5
- package/docs/api/types/IndentIfBreakIntrinsicElement.md +0 -5
- package/docs/api/types/IndentIntrinsicElement.md +0 -5
- package/docs/api/types/IntrinsicElement.md +0 -5
- package/docs/api/types/IntrinsicElementBase.md +0 -9
- package/docs/api/types/LbrIntrinsicElement.md +0 -5
- package/docs/api/types/LineIntrinsicElement.md +0 -5
- package/docs/api/types/LineSuffixBoundaryIntrinsicElement.md +0 -5
- package/docs/api/types/LineSuffixIntrinsicElement.md +0 -5
- package/docs/api/types/LiterallineIntrinsicElement.md +0 -5
- package/docs/api/types/MarkAsRootIntrinsicElement.md +0 -5
- package/docs/api/types/PrintHook.md +0 -10
- package/docs/api/types/RenderedTextTree.md +0 -5
- package/docs/api/types/SbrIntrinsicElement.md +0 -5
- package/docs/api/types/SoftlineIntrinsicElement.md +0 -5
- package/docs/api/variables/intrinsicElementKey.md +0 -5
- package/docs/api/variables/printHookTag.md +0 -7
- package/src/print-hook.ts +0 -22
- package/src/render.ts +0 -1154
package/dist/dev/src/sti.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["code","text","createIntrinsic","sti","name","args","props","fn","children","propsWithChildren","template","substitutions"],"sources":["../../../src/sti.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,IAAI,EAAEC,IAAI,QAAQ,WAAW;
|
|
1
|
+
{"version":3,"names":["code","text","createIntrinsic","sti","name","args","props","fn","children","propsWithChildren","template","substitutions"],"sources":["../../../src/sti.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,IAAI,EAAEC,IAAI,QAAQ,WAAW;AAGtC,SAASC,eAAe,QAAQ,+BAA+B;AAsB/D,OAAO,SAASC,GAAGA,CACjBC,IAAO,EACU;EACjB,OAAO,CAAC,GAAGC,IAAI,KAAK;IAClB,MAAMC,KAAuC,GAAGD,IAAI,CAAC,CAAC,CAAC;IACvD,MAAME,EAAuB,GAAGA,CAAA,KAAML,eAAe,CAACE,IAAI,EAAEE,KAAK,CAAC;IAClEC,EAAE,CAACC,QAAQ,GAAG,CAAC,GAAGA,QAAoB,KAAK;MACzC,MAAMC,iBAAiB,GAAG;QACxB,IAAIH,KAAK,IAAI,CAAC,CAAC,CAAC;QAChBE;MACF,CAAC;MAED,OAAO,MAAMN,eAAe,CAACE,IAAI,EAAEK,iBAAwB,CAAC;IAC9D,CAAC;IAEDF,EAAE,CAACP,IAAI,GAAG,CAACU,QAAQ,EAAE,GAAGC,aAAa,KAAK;MACxC,MAAMF,iBAAiB,GAAG;QACxB,IAAIJ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClBG,QAAQ,EAAER,IAAI,CAACU,QAAQ,EAAE,GAAGC,aAAa;MAC3C,CAAC;MAED,OAAO,MAAMT,eAAe,CAACE,IAAI,EAAEK,iBAAwB,CAAC;IAC9D,CAAC;IAEDF,EAAE,CAACN,IAAI,GAAG,CAACS,QAAQ,EAAE,GAAGC,aAAa,KAAK;MACxC,MAAMF,iBAAiB,GAAG;QACxB,IAAIJ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClBG,QAAQ,EAAEP,IAAI,CAACS,QAAQ,EAAE,GAAGC,aAAa;MAC3C,CAAC;MAED,OAAO,MAAMT,eAAe,CAACE,IAAI,EAAEK,iBAAwB,CAAC;IAC9D,CAAC;IACD,OAAOF,EAAE;EACX,CAAC;AACH","ignoreList":[]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import { shallowRef } from "@vue/reactivity";
|
|
3
3
|
import { expect, it } from "vitest";
|
|
4
|
-
import { getDiagnosticsForTree, renderTree } from "../render.js";
|
|
5
4
|
import { flushJobs } from "../scheduler.js";
|
|
5
|
+
import { getDiagnosticsForTree, renderTree } from "../test-render.js";
|
|
6
6
|
import { BasicSymbol } from "./basic-symbol.js";
|
|
7
7
|
import { emitSymbol } from "./symbol-flow.js";
|
|
8
8
|
import { createSymbolSlot } from "./symbol-slot.js";
|
|
9
9
|
it("captures firstSymbol", async () => {
|
|
10
10
|
const Slot = createSymbolSlot();
|
|
11
|
-
|
|
11
|
+
expect(_$createComponent(Slot, {
|
|
12
12
|
children: () => {
|
|
13
13
|
emitSymbol(new BasicSymbol("a", undefined));
|
|
14
14
|
}
|
|
@@ -16,7 +16,7 @@ it("captures firstSymbol", async () => {
|
|
|
16
16
|
fileName: import.meta.url,
|
|
17
17
|
lineNumber: 13,
|
|
18
18
|
columnNumber: 5
|
|
19
|
-
}));
|
|
19
|
+
})).toRenderTo("");
|
|
20
20
|
await flushJobs();
|
|
21
21
|
expect(Slot.firstSymbol.value).toBeDefined();
|
|
22
22
|
expect(Slot.firstSymbol.value.name).toBe("a");
|
|
@@ -49,7 +49,7 @@ it("emits error diagnostic when rendered more than once", async () => {
|
|
|
49
49
|
it("captures firstSymbol when emitting a ref to a symbol", async () => {
|
|
50
50
|
const Slot = createSymbolSlot();
|
|
51
51
|
const symref = shallowRef();
|
|
52
|
-
|
|
52
|
+
expect(_$createComponent(Slot, {
|
|
53
53
|
children: () => {
|
|
54
54
|
emitSymbol(symref);
|
|
55
55
|
}
|
|
@@ -57,7 +57,7 @@ it("captures firstSymbol when emitting a ref to a symbol", async () => {
|
|
|
57
57
|
fileName: import.meta.url,
|
|
58
58
|
lineNumber: 56,
|
|
59
59
|
columnNumber: 5
|
|
60
|
-
}));
|
|
60
|
+
})).toRenderTo("");
|
|
61
61
|
await flushJobs();
|
|
62
62
|
expect(Slot.firstSymbol.value).toBeUndefined();
|
|
63
63
|
symref.value = new BasicSymbol("a", undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["shallowRef","expect","it","
|
|
1
|
+
{"version":3,"names":["shallowRef","expect","it","flushJobs","getDiagnosticsForTree","renderTree","BasicSymbol","emitSymbol","createSymbolSlot","Slot","_$createComponent","children","undefined","fileName","import","meta","url","lineNumber","columnNumber","toRenderTo","firstSymbol","value","toBeDefined","name","toBe","tree","diagnostics","length","severity","message","toContain","symref","toBeUndefined"],"sources":["../../../../src/symbols/symbol-slot.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Direct AlloyNode-tree rendering helpers.
|
|
3
|
+
*
|
|
4
|
+
* `renderTree` produces an `ElementNode` root for assertions that need
|
|
5
|
+
* to inspect tree shape directly (used by component-level tests that
|
|
6
|
+
* don't go through `<SourceFile>`); `printTree` formats the tree with
|
|
7
|
+
* Alloy's direct printer. These are the lower-level entry points behind
|
|
8
|
+
* `render`/`renderAsync` and the testing matchers.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { attachDiagnosticsCollector, DiagnosticsCollector, getRegisteredDiagnosticsForTree, registerDiagnosticsForTree } from "./diagnostics.js";
|
|
12
|
+
import { root, runInContext } from "./reactivity.js";
|
|
13
|
+
import { printNode } from "./render-output.js";
|
|
14
|
+
import { getContextForNode } from "./render/node-context.js";
|
|
15
|
+
import { createElement, ElementNode } from "./render/node.js";
|
|
16
|
+
import { insert } from "./runtime/insert.js";
|
|
17
|
+
import { flushJobs } from "./scheduler.js";
|
|
18
|
+
/** Render `children` into a fresh root AlloyNode. */
|
|
19
|
+
export function renderTree(children, opts) {
|
|
20
|
+
const rootNode = createElement("alloy:root");
|
|
21
|
+
const collector = new DiagnosticsCollector();
|
|
22
|
+
root(() => {
|
|
23
|
+
runInContext(() => {
|
|
24
|
+
attachDiagnosticsCollector(collector);
|
|
25
|
+
insert(rootNode, children);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
if (!opts?.noFlush) flushJobs();
|
|
29
|
+
registerDiagnosticsForTree(rootNode, collector);
|
|
30
|
+
return rootNode;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** Print an AlloyNode tree to a string. */
|
|
34
|
+
export function printTree(node, opts) {
|
|
35
|
+
if (!opts?.noFlush) flushJobs();
|
|
36
|
+
return printNode(node, opts);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** Diagnostics collected during the render of `rootNode`. */
|
|
40
|
+
export function getDiagnosticsForTree(rootNode) {
|
|
41
|
+
return getRegisteredDiagnosticsForTree(rootNode);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Collect source files from an AlloyNode tree as a `path → contents`
|
|
46
|
+
* map. If no `<SourceFile>` markers are found, returns the printed
|
|
47
|
+
* string of the whole tree. Used by the `toRenderTo` matcher; unlike
|
|
48
|
+
* `sourceFilesForTree`, this does NOT default `insertFinalNewLine`,
|
|
49
|
+
* preserving the raw printed body for test assertions.
|
|
50
|
+
*/
|
|
51
|
+
export function getFilesFromTree(rootNode, opts) {
|
|
52
|
+
const files = {};
|
|
53
|
+
visit(rootNode);
|
|
54
|
+
if (Object.keys(files).length === 0) {
|
|
55
|
+
return printTree(rootNode, opts);
|
|
56
|
+
}
|
|
57
|
+
return files;
|
|
58
|
+
function visit(node) {
|
|
59
|
+
if (node instanceof ElementNode && node.localName === "alloy:source-file") {
|
|
60
|
+
const ctx = getContextForNode(node);
|
|
61
|
+
const sf = ctx?.meta?.sourceFile;
|
|
62
|
+
if (sf) {
|
|
63
|
+
const printOpts = ctx.meta.printOptions;
|
|
64
|
+
files[sf.path] = printTree(node, {
|
|
65
|
+
printWidth: opts?.printWidth ?? printOpts?.printWidth,
|
|
66
|
+
tabWidth: opts?.tabWidth ?? printOpts?.tabWidth,
|
|
67
|
+
useTabs: opts?.useTabs ?? printOpts?.useTabs,
|
|
68
|
+
insertFinalNewLine: opts?.insertFinalNewLine ?? printOpts?.insertFinalNewLine,
|
|
69
|
+
noFlush: true
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
for (let c = node.firstChild; c !== null; c = c.nextSibling) {
|
|
74
|
+
visit(c);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=test-render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["attachDiagnosticsCollector","DiagnosticsCollector","getRegisteredDiagnosticsForTree","registerDiagnosticsForTree","root","runInContext","printNode","getContextForNode","createElement","ElementNode","insert","flushJobs","renderTree","children","opts","rootNode","collector","noFlush","printTree","node","getDiagnosticsForTree","getFilesFromTree","files","visit","Object","keys","length","localName","ctx","sf","meta","sourceFile","printOpts","printOptions","path","printWidth","tabWidth","useTabs","insertFinalNewLine","c","firstChild","nextSibling"],"sources":["../../../src/test-render.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/dev/src/utils.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { memo as _$memo, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import { toRaw } from "@vue/reactivity";
|
|
3
|
-
import { createCustomContext,
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { createCustomContext, getContext, memo, onCleanup, ref, root, setContextEmptyChangeListener, untrack } from "./reactivity.js";
|
|
4
|
+
import { AlloyNode, FRAGMENT_NODE } from "./render/node.js";
|
|
6
5
|
import { isComponentCreator } from "./runtime/component.js";
|
|
7
6
|
const defaultJoinOptions = {
|
|
8
7
|
joiner: "\n",
|
|
@@ -69,7 +68,7 @@ export function mapJoin(src, cb, rawOptions = {}) {
|
|
|
69
68
|
let slot = itemSlots[index];
|
|
70
69
|
if (!slot) {
|
|
71
70
|
slot = {
|
|
72
|
-
|
|
71
|
+
empty: true
|
|
73
72
|
};
|
|
74
73
|
itemSlots[index] = slot;
|
|
75
74
|
}
|
|
@@ -119,7 +118,7 @@ export function mapJoin(src, cb, rawOptions = {}) {
|
|
|
119
118
|
}
|
|
120
119
|
const previousNonEmpty = findPrevNonEmpty(index - 1);
|
|
121
120
|
const rightSlot = itemSlots[index];
|
|
122
|
-
const shouldShow = previousNonEmpty !== -1 && rightSlot !== undefined && rightSlot.
|
|
121
|
+
const shouldShow = previousNonEmpty !== -1 && rightSlot !== undefined && rightSlot.empty === false;
|
|
123
122
|
const newValue = shouldShow ? options.joiner : undefined;
|
|
124
123
|
if (joinerRef.value !== newValue) {
|
|
125
124
|
joinerRef.value = newValue;
|
|
@@ -130,7 +129,7 @@ export function mapJoin(src, cb, rawOptions = {}) {
|
|
|
130
129
|
function findNextNonEmpty(from) {
|
|
131
130
|
for (let i = Math.max(from, 0); i < itemSlots.length; i++) {
|
|
132
131
|
const slot = itemSlots[i];
|
|
133
|
-
if (slot && slot.
|
|
132
|
+
if (slot && slot.empty === false) {
|
|
134
133
|
return i;
|
|
135
134
|
}
|
|
136
135
|
}
|
|
@@ -141,7 +140,7 @@ export function mapJoin(src, cb, rawOptions = {}) {
|
|
|
141
140
|
function findPrevNonEmpty(from) {
|
|
142
141
|
for (let i = Math.min(from, itemSlots.length - 1); i >= 0; i--) {
|
|
143
142
|
const slot = itemSlots[i];
|
|
144
|
-
if (slot && slot.
|
|
143
|
+
if (slot && slot.empty === false) {
|
|
145
144
|
return i;
|
|
146
145
|
}
|
|
147
146
|
}
|
|
@@ -227,13 +226,12 @@ export function mapJoin(src, cb, rawOptions = {}) {
|
|
|
227
226
|
for (; startIndex < itemsLen; startIndex++) {
|
|
228
227
|
const slot = getOrCreateSlot(startIndex);
|
|
229
228
|
slot.item = items[startIndex];
|
|
230
|
-
const emptyFlag = slot.isEmpty;
|
|
231
229
|
if (slot.disposer) {
|
|
232
|
-
if (
|
|
230
|
+
if (slot.empty === false) {
|
|
233
231
|
if (context) {
|
|
234
232
|
context.childrenWithContent--;
|
|
235
233
|
}
|
|
236
|
-
|
|
234
|
+
slot.empty = true;
|
|
237
235
|
applyEmptyStateChange(startIndex, true, false);
|
|
238
236
|
}
|
|
239
237
|
slot.disposer();
|
|
@@ -242,24 +240,22 @@ export function mapJoin(src, cb, rawOptions = {}) {
|
|
|
242
240
|
mapped[startIndex * 2] = createCustomContext(cb => {
|
|
243
241
|
return root(disposer => {
|
|
244
242
|
const nestedContext = getContext();
|
|
245
|
-
const isEmptyFlag = ensureIsEmpty(nestedContext);
|
|
246
243
|
slot.disposer = disposer;
|
|
247
244
|
disposer();
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
}
|
|
245
|
+
|
|
246
|
+
// Single-subscriber callback: fires synchronously on every
|
|
247
|
+
// empty↔non-empty transition of this slot's nested context.
|
|
248
|
+
// No Ref/effect allocation per slot; cleared via
|
|
249
|
+
// `onCleanup` so a recycled slot's old context can never
|
|
250
|
+
// mutate the new slot's bookkeeping.
|
|
251
|
+
setContextEmptyChangeListener(nestedContext, isEmpty => {
|
|
252
|
+
const wasEmpty = slot.empty;
|
|
253
|
+
if (wasEmpty === isEmpty) return;
|
|
254
|
+
slot.empty = isEmpty;
|
|
255
|
+
applyEmptyStateChange(cleanupIndex, isEmpty, wasEmpty);
|
|
256
|
+
});
|
|
257
|
+
onCleanup(() => {
|
|
258
|
+
setContextEmptyChangeListener(nestedContext, undefined);
|
|
263
259
|
});
|
|
264
260
|
cb(mapper(items[cleanupIndex], cleanupIndex));
|
|
265
261
|
});
|
|
@@ -281,11 +277,11 @@ export function mapJoin(src, cb, rawOptions = {}) {
|
|
|
281
277
|
continue;
|
|
282
278
|
}
|
|
283
279
|
slot.disposer?.();
|
|
284
|
-
if (slot.
|
|
280
|
+
if (slot.empty === false) {
|
|
285
281
|
if (context) {
|
|
286
282
|
context.childrenWithContent--;
|
|
287
283
|
}
|
|
288
|
-
slot.
|
|
284
|
+
slot.empty = true;
|
|
289
285
|
applyEmptyStateChange(startIndex, true, false);
|
|
290
286
|
}
|
|
291
287
|
}
|
|
@@ -377,6 +373,22 @@ export function children(fn, options = {}) {
|
|
|
377
373
|
return children.map(collectChildren).flat();
|
|
378
374
|
} else if (typeof children === "function" && !isComponentCreator(children)) {
|
|
379
375
|
return collectChildren(children());
|
|
376
|
+
} else if (children instanceof AlloyNode) {
|
|
377
|
+
// A FragmentNode is the AlloyNode equivalent of an array — flatten
|
|
378
|
+
// by walking its sibling list. Other node kinds are opaque leaves.
|
|
379
|
+
if (children.nodeType === FRAGMENT_NODE) {
|
|
380
|
+
const out = [];
|
|
381
|
+
for (let n = children.firstChild; n !== null; n = n.nextSibling) {
|
|
382
|
+
const collected = collectChildren(n);
|
|
383
|
+
if (Array.isArray(collected)) {
|
|
384
|
+
out.push(...collected);
|
|
385
|
+
} else {
|
|
386
|
+
out.push(collected);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
return out;
|
|
390
|
+
}
|
|
391
|
+
return children;
|
|
380
392
|
} else {
|
|
381
393
|
return children;
|
|
382
394
|
}
|
|
@@ -450,31 +462,31 @@ export function baseListPropsToMapJoinArgs(props) {
|
|
|
450
462
|
punctuation = props.comma ? "," : props.semicolon ? ";" : "";
|
|
451
463
|
joiner = [punctuation, _$memo(() => _$memo(() => !!props.softline)() ? _$createIntrinsic("sbr", {}, {
|
|
452
464
|
fileName: import.meta.url,
|
|
453
|
-
lineNumber:
|
|
465
|
+
lineNumber: 618,
|
|
454
466
|
columnNumber: 11
|
|
455
467
|
}) : _$memo(() => !!props.hardline)() ? _$createIntrinsic("hbr", {}, {
|
|
456
468
|
fileName: import.meta.url,
|
|
457
|
-
lineNumber:
|
|
469
|
+
lineNumber: 620,
|
|
458
470
|
columnNumber: 11
|
|
459
471
|
}) : _$memo(() => !!props.literalline)() ? _$createIntrinsic("lbr", {}, {
|
|
460
472
|
fileName: import.meta.url,
|
|
461
|
-
lineNumber:
|
|
473
|
+
lineNumber: 622,
|
|
462
474
|
columnNumber: 11
|
|
463
475
|
}) : _$memo(() => !!props.line)() ? _$createIntrinsic("br", {}, {
|
|
464
476
|
fileName: import.meta.url,
|
|
465
|
-
lineNumber:
|
|
477
|
+
lineNumber: 624,
|
|
466
478
|
columnNumber: 11
|
|
467
479
|
}) : _$memo(() => !!props.space)() ? [" "] : _$memo(() => !!props.doubleHardline)() ? [_$createIntrinsic("hbr", {}, {
|
|
468
480
|
fileName: import.meta.url,
|
|
469
|
-
lineNumber:
|
|
481
|
+
lineNumber: 629,
|
|
470
482
|
columnNumber: 13
|
|
471
483
|
}), _$createIntrinsic("hbr", {}, {
|
|
472
484
|
fileName: import.meta.url,
|
|
473
|
-
lineNumber:
|
|
485
|
+
lineNumber: 630,
|
|
474
486
|
columnNumber: 13
|
|
475
487
|
})] : _$createIntrinsic("hbr", {}, {
|
|
476
488
|
fileName: import.meta.url,
|
|
477
|
-
lineNumber:
|
|
489
|
+
lineNumber: 632,
|
|
478
490
|
columnNumber: 11
|
|
479
491
|
}), false, "_$memo(\u2026)(\u2026) ? \u2026")];
|
|
480
492
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["toRaw","createCustomContext","effect","ensureIsEmpty","getContext","memo","onCleanup","ref","root","untrack","isComponentCreator","defaultJoinOptions","joiner","ender","mapJoin","src","cb","rawOptions","options","undefined","itemSlots","getOrCreateSlot","index","slot","isEmpty","firstNonEmptyIndex","isInfrastructure","lastNonEmptyIndex","mapped","enderMemo","createJoinerRef","ensureJoinerSlot","updateJoinerForIndex","joinerRef","length","value","previousNonEmpty","findPrevNonEmpty","rightSlot","shouldShow","newValue","findNextNonEmpty","from","i","Math","max","min","recalculateNonEmptyBounds","first","refreshJoiners","applyEmptyStateChange","wasEmpty","previousItemsLen","disposer","itemsSource","itemsSourceRaw","items","Array","isArray","skipFalsy","filter","item","context","itemsLen","compare","getCompareFunction","mapper","getMapperFunction","startIndex","emptyFlag","childrenWithContent","cleanupIndex","nestedContext","isEmptyFlag","prev","debug","name","type","isIterable","compareArray","compareMap","Set","mapArray","mapMap","elem1","elem2","record1","record2","x","next","join","mergedOptions","joined","entries","push","children","fn","preserveFragments","map","collectChildren","flat","childrenArray","c","findKeyedChild","tag","child","isKeyedChild","findKeyedChildren","keyedChildren","findUnkeyedChildren","traverseOutput","sourceDirectory","visitor","visitDirectory","contents","kind","visitFile","baseListPropsToMapJoinArgs","props","punctuation","comma","semicolon","_$memo","softline","_$createIntrinsic","fileName","import","meta","url","lineNumber","columnNumber","hardline","literalline","line","space","doubleHardline","enderPunctuation"],"sources":["../../../src/utils.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["toRaw","createCustomContext","getContext","memo","onCleanup","ref","root","setContextEmptyChangeListener","untrack","AlloyNode","FRAGMENT_NODE","isComponentCreator","defaultJoinOptions","joiner","ender","mapJoin","src","cb","rawOptions","options","undefined","itemSlots","getOrCreateSlot","index","slot","empty","firstNonEmptyIndex","isInfrastructure","lastNonEmptyIndex","mapped","enderMemo","createJoinerRef","ensureJoinerSlot","updateJoinerForIndex","joinerRef","length","value","previousNonEmpty","findPrevNonEmpty","rightSlot","shouldShow","newValue","findNextNonEmpty","from","i","Math","max","min","recalculateNonEmptyBounds","first","refreshJoiners","applyEmptyStateChange","isEmpty","wasEmpty","previousItemsLen","disposer","itemsSource","itemsSourceRaw","items","Array","isArray","skipFalsy","filter","item","context","itemsLen","compare","getCompareFunction","mapper","getMapperFunction","startIndex","childrenWithContent","cleanupIndex","nestedContext","isIterable","compareArray","compareMap","Set","mapArray","mapMap","elem1","elem2","record1","record2","x","next","join","mergedOptions","joined","entries","push","children","fn","preserveFragments","map","collectChildren","flat","nodeType","out","n","firstChild","nextSibling","collected","childrenArray","c","findKeyedChild","tag","child","isKeyedChild","findKeyedChildren","keyedChildren","findUnkeyedChildren","traverseOutput","sourceDirectory","visitor","visitDirectory","contents","kind","visitFile","baseListPropsToMapJoinArgs","props","punctuation","comma","semicolon","_$memo","softline","_$createIntrinsic","fileName","import","meta","url","lineNumber","columnNumber","hardline","literalline","line","space","doubleHardline","enderPunctuation"],"sources":["../../../src/utils.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* End-to-end test: compile real JSX through the Alloy babel preset with
|
|
3
|
+
* then execute the compiled output against the new runtime.
|
|
4
|
+
*
|
|
5
|
+
* Validates that:
|
|
6
|
+
* - The preset routes runtime imports to `@alloy-js/core/jsx-runtime`.
|
|
7
|
+
* - The compiled output (using `_$createIntrinsic` / `_$createComponent`
|
|
8
|
+
* / `_$memo` / `_$mergeProps`) executes correctly under the new
|
|
9
|
+
* runtime semantics (component thunks invoked via `runInContext`,
|
|
10
|
+
* intrinsics returning AlloyNodes eagerly).
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
// @ts-expect-error — @babel/core has no bundled types in this workspace
|
|
14
|
+
import { transformSync } from "@babel/core";
|
|
15
|
+
// @ts-expect-error — preset has no types
|
|
16
|
+
import alloyPreset from "@alloy-js/babel-preset";
|
|
17
|
+
// @ts-expect-error — preset-typescript has no types
|
|
18
|
+
import typescriptPreset from "@babel/preset-typescript";
|
|
19
|
+
import { describe, expect, it } from "vitest";
|
|
20
|
+
import { createElement } from "../src/render/node.js";
|
|
21
|
+
import { insert } from "../src/runtime/index.js";
|
|
22
|
+
import { flushJobs } from "../src/scheduler.js";
|
|
23
|
+
import { textContent } from "./tree-test-utils.js";
|
|
24
|
+
function compile(src) {
|
|
25
|
+
const result = transformSync(src, {
|
|
26
|
+
filename: "test.tsx",
|
|
27
|
+
presets: [typescriptPreset, [alloyPreset]]
|
|
28
|
+
});
|
|
29
|
+
if (!result?.code) throw new Error("compile failed");
|
|
30
|
+
return result.code;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Build a function that evaluates the compiled module body with our
|
|
35
|
+
* jsx-runtime exports injected, and returns the named export.
|
|
36
|
+
*/
|
|
37
|
+
async function evalCompiled(src, exportName) {
|
|
38
|
+
const code = compile(src);
|
|
39
|
+
// Replace the auto-imports with a destructure from a passed-in runtime.
|
|
40
|
+
const runtimeStub = `const __rt = arguments[0]; const __core = arguments[1];`;
|
|
41
|
+
// Strip all `import { ... } from "@alloy-js/core/jsx-runtime";` lines
|
|
42
|
+
// and replace them with destructuring from __rt.
|
|
43
|
+
const importRegex = /import\s*\{\s*([^}]+)\s*\}\s*from\s*"@alloy-js\/core\/jsx-runtime";?/g;
|
|
44
|
+
const destructures = [];
|
|
45
|
+
let body = code.replace(importRegex, (_match, names) => {
|
|
46
|
+
// Convert `foo as _$foo` (import alias) → `foo: _$foo` (destructure alias).
|
|
47
|
+
const destructureNames = names.replace(/(\w+)\s+as\s+(\w+)/g, "$1: $2");
|
|
48
|
+
destructures.push(`const {${destructureNames}} = __rt;`);
|
|
49
|
+
return "";
|
|
50
|
+
});
|
|
51
|
+
// Bare @alloy-js/core imports (Show, Switch, Match, For, …) come from
|
|
52
|
+
// the second runtime argument.
|
|
53
|
+
const coreImportRegex = /import\s*\{\s*([^}]+)\s*\}\s*from\s*"@alloy-js\/core";?/g;
|
|
54
|
+
body = body.replace(coreImportRegex, (_match, names) => {
|
|
55
|
+
const destructureNames = names.replace(/(\w+)\s+as\s+(\w+)/g, "$1: $2");
|
|
56
|
+
// Built-ins live in the runtime module; everything
|
|
57
|
+
// else comes from core. Split the names by what the runtime
|
|
58
|
+
// re-exports.
|
|
59
|
+
destructures.push(`const {${destructureNames}} = { ...__core, ...__rt };`);
|
|
60
|
+
return "";
|
|
61
|
+
});
|
|
62
|
+
// The compiled module uses ESM `export { App }`. Convert to a return.
|
|
63
|
+
body = body.replace(/export\s*\{\s*([^}]+)\s*\}\s*;?/g, (_, names) => {
|
|
64
|
+
const list = names.split(",").map(s => s.trim());
|
|
65
|
+
return `return { ${list.join(",")} };`;
|
|
66
|
+
});
|
|
67
|
+
// import.meta.url isn't available; stub it.
|
|
68
|
+
body = body.replace(/import\.meta\.url/g, '"test://test.tsx"');
|
|
69
|
+
const wrapped = `${runtimeStub}\n${destructures.join("\n")}\n${body}`;
|
|
70
|
+
const fn = new Function(wrapped);
|
|
71
|
+
const runtime = await import("../src/runtime/index.js");
|
|
72
|
+
const core = await import("../src/index.js");
|
|
73
|
+
return fn(runtime, core)[exportName];
|
|
74
|
+
}
|
|
75
|
+
function renderToString(thunk) {
|
|
76
|
+
const parent = createElement("group");
|
|
77
|
+
insert(parent, thunk);
|
|
78
|
+
flushJobs();
|
|
79
|
+
return textContent(parent);
|
|
80
|
+
}
|
|
81
|
+
function printNode(node) {
|
|
82
|
+
flushJobs();
|
|
83
|
+
return textContent(node);
|
|
84
|
+
}
|
|
85
|
+
describe("babel preset — end-to-end", () => {
|
|
86
|
+
it("compiles intrinsics and produces AlloyNode output", async () => {
|
|
87
|
+
const src = `
|
|
88
|
+
const App = () => <group>hello, world</group>;
|
|
89
|
+
export { App };
|
|
90
|
+
`;
|
|
91
|
+
const App = await evalCompiled(src, "App");
|
|
92
|
+
// App is a plain function (no createComponent wrapper at the top).
|
|
93
|
+
const node = App();
|
|
94
|
+
expect(printNode(node)).toBe("hello, world");
|
|
95
|
+
});
|
|
96
|
+
it("compiles component invocations and threads props correctly", async () => {
|
|
97
|
+
const src = `
|
|
98
|
+
const Greet = (props) => <group>hello, {props.name}!</group>;
|
|
99
|
+
const App = () => <indent><Greet name="world" /></indent>;
|
|
100
|
+
export { App };
|
|
101
|
+
`;
|
|
102
|
+
const App = await evalCompiled(src, "App");
|
|
103
|
+
const node = App();
|
|
104
|
+
expect(printNode(node)).toBe("hello, world!");
|
|
105
|
+
});
|
|
106
|
+
it("compiles fragments and arrays of children", async () => {
|
|
107
|
+
const src = `
|
|
108
|
+
const App = () => <><group>a</group>{"-"}<group>b</group></>;
|
|
109
|
+
export { App };
|
|
110
|
+
`;
|
|
111
|
+
const App = await evalCompiled(src, "App");
|
|
112
|
+
// Top-level fragment: App() returns an array (Children) per plugin
|
|
113
|
+
// output. Insert into a parent and print.
|
|
114
|
+
expect(renderToString(App())).toBe("a-b");
|
|
115
|
+
});
|
|
116
|
+
it("compiles nested components composing through intrinsics", async () => {
|
|
117
|
+
const src = `
|
|
118
|
+
const Inner = (props) => <group>[{props.value}]</group>;
|
|
119
|
+
const Mid = (props) => <indent><Inner value={props.value} /></indent>;
|
|
120
|
+
const App = () => <group><Mid value="x" /></group>;
|
|
121
|
+
export { App };
|
|
122
|
+
`;
|
|
123
|
+
const App = await evalCompiled(src, "App");
|
|
124
|
+
expect(printNode(App())).toBe("[x]");
|
|
125
|
+
});
|
|
126
|
+
it("Show built-in works with alloy preset", async () => {
|
|
127
|
+
const src = `
|
|
128
|
+
import { Show } from "@alloy-js/core";
|
|
129
|
+
const App = (props) => <group><Show when={props.cond} fallback="no">yes</Show></group>;
|
|
130
|
+
export { App };
|
|
131
|
+
`;
|
|
132
|
+
const App = await evalCompiled(src, "App");
|
|
133
|
+
expect(printNode(App({
|
|
134
|
+
cond: true
|
|
135
|
+
}))).toBe("yes");
|
|
136
|
+
expect(printNode(App({
|
|
137
|
+
cond: false
|
|
138
|
+
}))).toBe("no");
|
|
139
|
+
});
|
|
140
|
+
it("Switch/Match built-ins work with alloy preset", async () => {
|
|
141
|
+
const src = `
|
|
142
|
+
import { Switch, Match } from "@alloy-js/core";
|
|
143
|
+
const App = (props) => (
|
|
144
|
+
<group>
|
|
145
|
+
<Switch>
|
|
146
|
+
<Match when={props.kind === "a"}>A!</Match>
|
|
147
|
+
<Match when={props.kind === "b"}>B!</Match>
|
|
148
|
+
<Match else>other</Match>
|
|
149
|
+
</Switch>
|
|
150
|
+
</group>
|
|
151
|
+
);
|
|
152
|
+
export { App };
|
|
153
|
+
`;
|
|
154
|
+
const App = await evalCompiled(src, "App");
|
|
155
|
+
expect(printNode(App({
|
|
156
|
+
kind: "a"
|
|
157
|
+
}))).toBe("A!");
|
|
158
|
+
expect(printNode(App({
|
|
159
|
+
kind: "b"
|
|
160
|
+
}))).toBe("B!");
|
|
161
|
+
expect(printNode(App({
|
|
162
|
+
kind: "c"
|
|
163
|
+
}))).toBe("other");
|
|
164
|
+
});
|
|
165
|
+
it("For built-in works with alloy preset", async () => {
|
|
166
|
+
const src = `
|
|
167
|
+
import { For } from "@alloy-js/core";
|
|
168
|
+
const App = (props) => (
|
|
169
|
+
<group>
|
|
170
|
+
<For each={props.items}>{(item) => <group>[{item}]</group>}</For>
|
|
171
|
+
</group>
|
|
172
|
+
);
|
|
173
|
+
export { App };
|
|
174
|
+
`;
|
|
175
|
+
const App = await evalCompiled(src, "App");
|
|
176
|
+
expect(printNode(App({
|
|
177
|
+
items: ["a", "b", "c"]
|
|
178
|
+
}))).toBe("[a][b][c]");
|
|
179
|
+
});
|
|
180
|
+
it("For with joiner with alloy preset", async () => {
|
|
181
|
+
const src = `
|
|
182
|
+
import { For } from "@alloy-js/core";
|
|
183
|
+
const App = (props) => (
|
|
184
|
+
<group>
|
|
185
|
+
<For each={props.items} joiner=",">{(item) => <group>{item}</group>}</For>
|
|
186
|
+
</group>
|
|
187
|
+
);
|
|
188
|
+
export { App };
|
|
189
|
+
`;
|
|
190
|
+
const App = await evalCompiled(src, "App");
|
|
191
|
+
expect(printNode(App({
|
|
192
|
+
items: ["x", "y", "z"]
|
|
193
|
+
}))).toBe("x,y,z");
|
|
194
|
+
expect(printNode(App({
|
|
195
|
+
items: []
|
|
196
|
+
}))).toBe("");
|
|
197
|
+
});
|
|
198
|
+
it("Context.Provider value flows to descendants with alloy preset", async () => {
|
|
199
|
+
const src = `
|
|
200
|
+
import { createContext, useContext } from "@alloy-js/core";
|
|
201
|
+
const Ctx = createContext();
|
|
202
|
+
const Reader = () => {
|
|
203
|
+
const v = useContext(Ctx);
|
|
204
|
+
return <group>v={v}</group>;
|
|
205
|
+
};
|
|
206
|
+
const App = () => (
|
|
207
|
+
<Ctx.Provider value="hello">
|
|
208
|
+
<group><Reader /></group>
|
|
209
|
+
</Ctx.Provider>
|
|
210
|
+
);
|
|
211
|
+
export { App };
|
|
212
|
+
`;
|
|
213
|
+
const App = await evalCompiled(src, "App");
|
|
214
|
+
// Top-level Component yields a thunk; route through insert into a parent.
|
|
215
|
+
expect(renderToString(App())).toBe("v=hello");
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
//# sourceMappingURL=babel-e2e.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["transformSync","alloyPreset","typescriptPreset","describe","expect","it","createElement","insert","flushJobs","textContent","compile","src","result","filename","presets","code","Error","evalCompiled","exportName","runtimeStub","importRegex","destructures","body","replace","_match","names","destructureNames","push","coreImportRegex","_","list","split","map","s","trim","join","wrapped","fn","Function","runtime","core","renderToString","thunk","parent","printNode","node","App","toBe","cond","kind","items"],"sources":["../../../test/babel-e2e.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|