@alloy-js/core 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -0
- package/babel.config.cjs +4 -1
- package/dist/src/binder.d.ts +20 -13
- package/dist/src/binder.d.ts.map +1 -1
- package/dist/src/binder.js +33 -15
- package/dist/src/binder.js.map +1 -1
- package/dist/src/code.d.ts +2 -2
- package/dist/src/code.d.ts.map +1 -1
- package/dist/src/code.js +4 -4
- package/dist/src/code.js.map +1 -1
- package/dist/src/components/Block.d.ts +25 -0
- package/dist/src/components/Block.d.ts.map +1 -0
- package/dist/src/components/Block.js +25 -0
- package/dist/src/components/Block.js.map +1 -0
- package/dist/src/components/Declaration.d.ts +1 -1
- package/dist/src/components/Declaration.d.ts.map +1 -1
- package/dist/src/components/Declaration.js +4 -0
- package/dist/src/components/Declaration.js.map +1 -1
- package/dist/src/components/For.d.ts +44 -0
- package/dist/src/components/For.d.ts.map +1 -0
- package/dist/src/components/For.js +41 -0
- package/dist/src/components/For.js.map +1 -0
- package/dist/src/components/Indent.d.ts +6 -10
- package/dist/src/components/Indent.d.ts.map +1 -1
- package/dist/src/components/Indent.js +7 -18
- package/dist/src/components/Indent.js.map +1 -1
- package/dist/src/components/List.d.ts +38 -0
- package/dist/src/components/List.d.ts.map +1 -0
- package/dist/src/components/List.js +40 -0
- package/dist/src/components/List.js.map +1 -0
- package/dist/src/components/MemberDeclaration.d.ts +1 -1
- package/dist/src/components/MemberDeclaration.d.ts.map +1 -1
- package/dist/src/components/MemberDeclaration.js.map +1 -1
- package/dist/src/components/MemberName.d.ts +1 -1
- package/dist/src/components/MemberName.d.ts.map +1 -1
- package/dist/src/components/MemberName.js +1 -1
- package/dist/src/components/MemberName.js.map +1 -1
- package/dist/src/components/MemberScope.d.ts +1 -1
- package/dist/src/components/MemberScope.d.ts.map +1 -1
- package/dist/src/components/MemberScope.js.map +1 -1
- package/dist/src/components/Name.d.ts +1 -1
- package/dist/src/components/Name.d.ts.map +1 -1
- package/dist/src/components/Name.js +1 -1
- package/dist/src/components/Name.js.map +1 -1
- package/dist/src/components/Output.d.ts +3 -2
- package/dist/src/components/Output.d.ts.map +1 -1
- package/dist/src/components/Output.js +12 -2
- package/dist/src/components/Output.js.map +1 -1
- package/dist/src/components/Scope.d.ts +1 -1
- package/dist/src/components/Scope.d.ts.map +1 -1
- package/dist/src/components/Scope.js.map +1 -1
- package/dist/src/components/Show.d.ts +8 -0
- package/dist/src/components/Show.d.ts.map +1 -0
- package/dist/src/components/Show.js +4 -0
- package/dist/src/components/Show.js.map +1 -0
- package/dist/src/components/SourceDirectory.d.ts +2 -2
- package/dist/src/components/SourceDirectory.d.ts.map +1 -1
- package/dist/src/components/SourceDirectory.js +1 -0
- package/dist/src/components/SourceDirectory.js.map +1 -1
- package/dist/src/components/SourceFile.d.ts +4 -8
- package/dist/src/components/SourceFile.d.ts.map +1 -1
- package/dist/src/components/SourceFile.js +6 -13
- package/dist/src/components/SourceFile.js.map +1 -1
- package/dist/src/components/StatementList.d.ts +9 -0
- package/dist/src/components/StatementList.d.ts.map +1 -0
- package/dist/src/components/StatementList.js +17 -0
- package/dist/src/components/StatementList.js.map +1 -0
- package/dist/src/components/Switch.d.ts +41 -0
- package/dist/src/components/Switch.d.ts.map +1 -0
- package/dist/src/components/Switch.js +41 -0
- package/dist/src/components/Switch.js.map +1 -0
- package/dist/src/components/Wrap.d.ts +20 -0
- package/dist/src/components/Wrap.d.ts.map +1 -0
- package/dist/src/components/Wrap.js +15 -0
- package/dist/src/components/Wrap.js.map +1 -0
- package/dist/src/components/index.d.ts +8 -1
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +7 -0
- package/dist/src/components/index.js.map +1 -1
- package/dist/src/components/stc/index.d.ts +89 -18
- package/dist/src/components/stc/index.d.ts.map +1 -1
- package/dist/src/components/stc/index.js +17 -1
- package/dist/src/components/stc/index.js.map +1 -1
- package/dist/src/context/index.d.ts +0 -1
- package/dist/src/context/index.d.ts.map +1 -1
- package/dist/src/context/index.js +0 -1
- package/dist/src/context/index.js.map +1 -1
- package/dist/src/context/member-declaration.d.ts +1 -0
- package/dist/src/context/member-declaration.d.ts.map +1 -1
- package/dist/src/context/member-declaration.js +4 -1
- package/dist/src/context/member-declaration.js.map +1 -1
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +3 -3
- package/dist/src/context.js.map +1 -1
- package/dist/src/index.browser.d.ts +3 -0
- package/dist/src/index.browser.d.ts.map +1 -0
- package/dist/src/index.browser.js +3 -0
- package/dist/src/index.browser.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/jsx-runtime.d.ts +151 -7
- package/dist/src/jsx-runtime.d.ts.map +1 -1
- package/dist/src/jsx-runtime.js +113 -12
- package/dist/src/jsx-runtime.js.map +1 -1
- package/dist/src/render.d.ts +107 -132
- package/dist/src/render.d.ts.map +1 -1
- package/dist/src/render.js +272 -178
- package/dist/src/render.js.map +1 -1
- package/dist/src/stc.d.ts +14 -0
- package/dist/src/stc.d.ts.map +1 -0
- package/dist/src/stc.js +52 -0
- package/dist/src/stc.js.map +1 -0
- package/dist/src/tap.d.ts +19 -0
- package/dist/src/tap.d.ts.map +1 -0
- package/dist/src/tap.js +39 -0
- package/dist/src/tap.js.map +1 -0
- package/dist/src/utils.d.ts +22 -15
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +95 -59
- package/dist/src/utils.js.map +1 -1
- package/dist/test/browser-build.test.d.ts +2 -0
- package/dist/test/browser-build.test.d.ts.map +1 -0
- package/dist/test/components/block.test.d.ts +2 -0
- package/dist/test/components/block.test.d.ts.map +1 -0
- package/dist/test/components/declaration.test.d.ts +2 -0
- package/dist/test/components/declaration.test.d.ts.map +1 -0
- package/dist/test/components/list.test.d.ts +2 -0
- package/dist/test/components/list.test.d.ts.map +1 -0
- package/dist/test/components/wrap.test.d.ts +2 -0
- package/dist/test/components/wrap.test.d.ts.map +1 -0
- package/dist/test/control-flow/for.test.d.ts +2 -0
- package/dist/test/control-flow/for.test.d.ts.map +1 -0
- package/dist/test/control-flow/match.test.d.ts +2 -0
- package/dist/test/control-flow/match.test.d.ts.map +1 -0
- package/dist/test/control-flow/show.test.d.ts +2 -0
- package/dist/test/control-flow/show.test.d.ts.map +1 -0
- package/dist/test/reactivity/cleanup.test.d.ts +2 -0
- package/dist/test/reactivity/cleanup.test.d.ts.map +1 -0
- package/dist/test/reactivity/memo.test.d.ts +2 -0
- package/dist/test/reactivity/memo.test.d.ts.map +1 -0
- package/dist/test/reactivity/untrack.test.d.ts +2 -0
- package/dist/test/reactivity/untrack.test.d.ts.map +1 -0
- package/dist/test/rendering/formatting.test.d.ts +2 -0
- package/dist/test/rendering/formatting.test.d.ts.map +1 -0
- package/dist/test/rendering/memoization.test.d.ts +2 -0
- package/dist/test/rendering/memoization.test.d.ts.map +1 -0
- package/dist/test/split-props.test.d.ts +2 -0
- package/dist/test/split-props.test.d.ts.map +1 -0
- package/dist/test/stc.test.d.ts.map +1 -1
- package/dist/test/utils.test.d.ts.map +1 -1
- package/dist/testing/extend-expect.js +4 -4
- package/dist/testing/extend-expect.js.map +1 -1
- package/dist/testing/render.d.ts +2 -3
- package/dist/testing/render.d.ts.map +1 -1
- package/dist/testing/render.js +2 -4
- package/dist/testing/render.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -9
- package/src/binder.ts +60 -50
- package/src/code.ts +17 -12
- package/src/components/Block.tsx +44 -0
- package/src/components/Declaration.tsx +10 -4
- package/src/components/For.tsx +81 -0
- package/src/components/Indent.tsx +20 -27
- package/src/components/List.tsx +94 -0
- package/src/components/MemberDeclaration.tsx +9 -6
- package/src/components/MemberScope.tsx +4 -2
- package/src/components/Output.tsx +27 -14
- package/src/components/Scope.tsx +4 -2
- package/src/components/Show.tsx +11 -0
- package/src/components/SourceDirectory.tsx +6 -2
- package/src/components/SourceFile.tsx +13 -17
- package/src/components/StatementList.tsx +16 -0
- package/src/components/Switch.tsx +62 -0
- package/src/components/Wrap.tsx +29 -0
- package/src/components/index.tsx +8 -1
- package/src/components/stc/index.ts +18 -1
- package/src/context/index.ts +0 -1
- package/src/context/member-declaration.ts +9 -1
- package/src/context.ts +2 -3
- package/src/index.browser.ts +2 -0
- package/src/index.ts +2 -0
- package/src/jsx-runtime.ts +265 -23
- package/src/render.ts +382 -200
- package/src/stc.ts +95 -0
- package/src/tap.ts +69 -0
- package/src/utils.ts +162 -95
- package/temp/api.json +8042 -1886
- package/test/browser-build.test.ts +91 -0
- package/test/children.test.tsx +8 -10
- package/test/components/block.test.tsx +48 -0
- package/test/components/declaration.test.tsx +37 -0
- package/test/components/list.test.tsx +91 -0
- package/test/components/slot.test.tsx +31 -25
- package/test/components/source-file.test.tsx +11 -31
- package/test/components/wrap.test.tsx +42 -0
- package/test/control-flow/for.test.tsx +194 -0
- package/test/control-flow/match.test.tsx +49 -0
- package/test/control-flow/show.test.tsx +25 -0
- package/test/name-policy.test.tsx +5 -5
- package/test/reactivity/cleanup.test.tsx +91 -0
- package/test/reactivity/memo.test.tsx +17 -0
- package/test/reactivity/ref-rendering.test.tsx +3 -8
- package/test/reactivity/test.test.tsx +7 -6
- package/test/reactivity/untrack.test.ts +33 -0
- package/test/rendering/basic.test.tsx +25 -47
- package/test/rendering/code.test.tsx +3 -3
- package/test/rendering/formatting.test.tsx +487 -0
- package/test/rendering/indent.test.tsx +42 -529
- package/test/rendering/memoization.test.tsx +30 -0
- package/test/split-props.test.ts +87 -0
- package/test/stc.test.tsx +29 -8
- package/test/symbols.test.ts +132 -3
- package/test/utils.test.tsx +129 -20
- package/testing/extend-expect.ts +14 -4
- package/testing/render.ts +2 -4
- package/testing/vitest.d.ts +6 -1
- package/vitest.config.ts +1 -1
- package/dist/src/context/indent.d.ts +0 -5
- package/dist/src/context/indent.d.ts.map +0 -1
- package/dist/src/context/indent.js +0 -8
- package/dist/src/context/indent.js.map +0 -1
- package/dist/test/rendering/linebreaks.test.d.ts +0 -2
- package/dist/test/rendering/linebreaks.test.d.ts.map +0 -1
- package/src/context/indent.ts +0 -17
- package/test/rendering/linebreaks.test.tsx +0 -72
package/dist/src/stc.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { createIntrinsic } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { code } from "./code.js";
|
|
3
|
+
export function sti(name) {
|
|
4
|
+
return (...args) => {
|
|
5
|
+
const props = args[0];
|
|
6
|
+
const fn = () => createIntrinsic(name, props);
|
|
7
|
+
fn.children = (...children) => {
|
|
8
|
+
const propsWithChildren = {
|
|
9
|
+
...(props ?? {}),
|
|
10
|
+
children
|
|
11
|
+
};
|
|
12
|
+
return () => createIntrinsic(name, propsWithChildren);
|
|
13
|
+
};
|
|
14
|
+
fn.code = (template, ...substitutions) => {
|
|
15
|
+
const propsWithChildren = {
|
|
16
|
+
...(args[0] ?? {}),
|
|
17
|
+
children: code(template, ...substitutions)
|
|
18
|
+
};
|
|
19
|
+
return () => createIntrinsic(name, propsWithChildren);
|
|
20
|
+
};
|
|
21
|
+
return fn;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function stc(Component) {
|
|
25
|
+
return (...args) => {
|
|
26
|
+
const fn = () => Component(args[0]);
|
|
27
|
+
fn.component = Component;
|
|
28
|
+
fn.props = args[0];
|
|
29
|
+
fn.code = (template, ...substitutions) => {
|
|
30
|
+
const propsWithChildren = {
|
|
31
|
+
...(args[0] ?? {}),
|
|
32
|
+
children: code(template, ...substitutions)
|
|
33
|
+
};
|
|
34
|
+
const fn = () => Component(propsWithChildren);
|
|
35
|
+
fn.component = Component;
|
|
36
|
+
fn.props = args[0];
|
|
37
|
+
return fn;
|
|
38
|
+
};
|
|
39
|
+
fn.children = (...children) => {
|
|
40
|
+
const propsWithChildren = {
|
|
41
|
+
...(args[0] ?? {}),
|
|
42
|
+
children
|
|
43
|
+
};
|
|
44
|
+
const fn = () => Component(propsWithChildren);
|
|
45
|
+
fn.component = Component;
|
|
46
|
+
fn.props = args[0];
|
|
47
|
+
return fn;
|
|
48
|
+
};
|
|
49
|
+
return fn;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=stc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stc.js","names":["createIntrinsic","code","sti","name","args","props","fn","children","propsWithChildren","template","substitutions","stc","Component","component"],"sources":["../../src/stc.ts"],"sourcesContent":[null],"mappings":"AAAA,SAIEA,eAAe,QAGV,4BAA4B;AACnC,SAASC,IAAI,QAAQ,WAAW;AAEhC,OAAO,SAASC,GAAGA,CAAwCC,IAAO,EAAE;EAClE,OAAO,CACL,GAAGC,IAGgC,KAChC;IACH,MAAMC,KAA2C,GAAGD,IAAI,CAAC,CAAC,CAAC;IAC3D,MAAME,EAAE,GAAGA,CAAA,KAAMN,eAAe,CAACG,IAAI,EAAEE,KAAM,CAAC;IAC9CC,EAAE,CAACC,QAAQ,GAAG,CACZ,GAAGA,QAAoB,KACa;MACpC,MAAMC,iBAAiB,GAAG;QACxB,IAAIH,KAAK,IAAI,CAAC,CAAC,CAAC;QAChBE;MACF,CAAC;MAED,OAAO,MAAMP,eAAe,CAACG,IAAI,EAAEK,iBAAwB,CAAC;IAC9D,CAAC;IAEDF,EAAE,CAACL,IAAI,GAAG,CACRQ,QAA8B,EAC9B,GAAGC,aAAyB,KACQ;MACpC,MAAMF,iBAAiB,GAAG;QACxB,IAAIJ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClBG,QAAQ,EAAEN,IAAI,CAACQ,QAAQ,EAAE,GAAGC,aAAa;MAC3C,CAAC;MAED,OAAO,MAAMV,eAAe,CAACG,IAAI,EAAEK,iBAAwB,CAAC;IAC9D,CAAC;IACD,OAAOF,EAAE;EACX,CAAC;AACH;AAOA,OAAO,SAASK,GAAGA,CAAeC,SAAiC,EAAE;EACnE,OAAO,CACL,GAAGR,IAE+B,KAC/B;IACH,MAAME,EAML,GAAGA,CAAA,KAAMM,SAAS,CAACR,IAAI,CAAC,CAAC,CAAQ,CAAC;IACnCE,EAAE,CAACO,SAAS,GAAGD,SAAS;IACxBN,EAAE,CAACD,KAAK,GAAGD,IAAI,CAAC,CAAC,CAAE;IACnBE,EAAE,CAACL,IAAI,GAAG,CACRQ,QAA8B,EAC9B,GAAGC,aAAyB,KACJ;MACxB,MAAMF,iBAAiB,GAAG;QACxB,IAAIJ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClBG,QAAQ,EAAEN,IAAI,CAACQ,QAAQ,EAAE,GAAGC,aAAa;MAC3C,CAAC;MAED,MAAMJ,EAAE,GAAGA,CAAA,KAAMM,SAAS,CAACJ,iBAAwB,CAAC;MACpDF,EAAE,CAACO,SAAS,GAAGD,SAAS;MACxBN,EAAE,CAACD,KAAK,GAAGD,IAAI,CAAC,CAAC,CAAE;MACnB,OAAOE,EAAE;IACX,CAAC;IAEDA,EAAE,CAACC,QAAQ,GAAG,CAAC,GAAGA,QAAoB,KAA0B;MAC9D,MAAMC,iBAAiB,GAAG;QACxB,IAAIJ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClBG;MACF,CAAC;MAED,MAAMD,EAAE,GAAGA,CAAA,KAAMM,SAAS,CAACJ,iBAAwB,CAAC;MACpDF,EAAE,CAACO,SAAS,GAAGD,SAAS;MACxBN,EAAE,CAACD,KAAK,GAAGD,IAAI,CAAC,CAAC,CAAE;MACnB,OAAOE,EAAE;IACX,CAAC;IAED,OAAOA,EAAE;EACX,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ShallowRef } from "@vue/reactivity";
|
|
2
|
+
import { OutputScope, OutputSymbol } from "./binder.js";
|
|
3
|
+
import { SourceFileContext } from "./context/source-file.js";
|
|
4
|
+
import { ComponentDefinition } from "./jsx-runtime.js";
|
|
5
|
+
export interface Tap<T> extends ComponentDefinition {
|
|
6
|
+
ref: ShallowRef<T | undefined>;
|
|
7
|
+
}
|
|
8
|
+
export interface Tapper<T> {
|
|
9
|
+
(): T | undefined;
|
|
10
|
+
}
|
|
11
|
+
export interface Handler<T> {
|
|
12
|
+
(value: T): void;
|
|
13
|
+
}
|
|
14
|
+
export declare function createTap<T = unknown>(tapper: Tapper<T>, handler?: Handler<T>): Tap<T>;
|
|
15
|
+
export declare function createDeclarationTap<TSymbol extends OutputSymbol = OutputSymbol>(handler?: Handler<TSymbol>): Tap<TSymbol>;
|
|
16
|
+
export declare function createMemberTap<TSymbol extends OutputSymbol = OutputSymbol>(handler?: Handler<TSymbol>): Tap<TSymbol>;
|
|
17
|
+
export declare function createScopeTap<TScope extends OutputScope = OutputScope>(handler?: Handler<TScope>): Tap<TScope>;
|
|
18
|
+
export declare function createSourceFileTap(handler?: Handler<SourceFileContext>): Tap<SourceFileContext>;
|
|
19
|
+
//# sourceMappingURL=tap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tap.d.ts","sourceRoot":"","sources":["../../src/tap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAc,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,GAAG,CAAC,CAAC,CAAE,SAAQ,mBAAmB;IACjD,GAAG,EAAE,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,IAAI,CAAC,GAAG,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CAClB;AAED,wBAAgB,SAAS,CAAC,CAAC,GAAG,OAAO,EACnC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GACnB,GAAG,CAAC,CAAC,CAAC,CAcR;AAED,wBAAgB,oBAAoB,CAClC,OAAO,SAAS,YAAY,GAAG,YAAY,EAC3C,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,gBAI3B;AAED,wBAAgB,eAAe,CAAC,OAAO,SAAS,YAAY,GAAG,YAAY,EACzE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,gBAK3B;AAED,wBAAgB,cAAc,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,EACrE,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,eAK1B;AAED,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,0BAIvE"}
|
package/dist/src/tap.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { shallowRef } from "@vue/reactivity";
|
|
2
|
+
import { useContext } from "./context.js";
|
|
3
|
+
import { DeclarationContext } from "./context/declaration.js";
|
|
4
|
+
import { MemberDeclarationContext } from "./context/member-declaration.js";
|
|
5
|
+
import { useScope } from "./context/scope.js";
|
|
6
|
+
import { SourceFileContext } from "./context/source-file.js";
|
|
7
|
+
export function createTap(tapper, handler) {
|
|
8
|
+
const signal = shallowRef(undefined);
|
|
9
|
+
const fn = () => {
|
|
10
|
+
signal.value = tapper();
|
|
11
|
+
if (handler && signal.value !== undefined) {
|
|
12
|
+
handler(signal.value);
|
|
13
|
+
}
|
|
14
|
+
return "";
|
|
15
|
+
};
|
|
16
|
+
fn.ref = signal;
|
|
17
|
+
return fn;
|
|
18
|
+
}
|
|
19
|
+
export function createDeclarationTap(handler) {
|
|
20
|
+
return createTap(() => {
|
|
21
|
+
return useContext(DeclarationContext);
|
|
22
|
+
}, handler);
|
|
23
|
+
}
|
|
24
|
+
export function createMemberTap(handler) {
|
|
25
|
+
return createTap(() => {
|
|
26
|
+
return useContext(MemberDeclarationContext);
|
|
27
|
+
}, handler);
|
|
28
|
+
}
|
|
29
|
+
export function createScopeTap(handler) {
|
|
30
|
+
return createTap(() => {
|
|
31
|
+
return useScope();
|
|
32
|
+
}, handler);
|
|
33
|
+
}
|
|
34
|
+
export function createSourceFileTap(handler) {
|
|
35
|
+
return createTap(() => {
|
|
36
|
+
return useContext(SourceFileContext);
|
|
37
|
+
}, handler);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=tap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tap.js","names":["shallowRef","useContext","DeclarationContext","MemberDeclarationContext","useScope","SourceFileContext","createTap","tapper","handler","signal","undefined","fn","value","ref","createDeclarationTap","createMemberTap","createScopeTap","createSourceFileTap"],"sources":["../../src/tap.ts"],"sourcesContent":[null],"mappings":"AAAA,SAAqBA,UAAU,QAAQ,iBAAiB;AAExD,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,kBAAkB,QAAQ,0BAA0B;AAC7D,SAASC,wBAAwB,QAAQ,iCAAiC;AAC1E,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,iBAAiB,QAAQ,0BAA0B;AAe5D,OAAO,SAASC,SAASA,CACvBC,MAAiB,EACjBC,OAAoB,EACZ;EACR,MAAMC,MAAM,GAAGT,UAAU,CAAgBU,SAAS,CAAC;EACnD,MAAMC,EAAE,GAAGA,CAAA,KAAM;IACfF,MAAM,CAACG,KAAK,GAAGL,MAAM,CAAC,CAAC;IACvB,IAAIC,OAAO,IAAIC,MAAM,CAACG,KAAK,KAAKF,SAAS,EAAE;MACzCF,OAAO,CAACC,MAAM,CAACG,KAAK,CAAC;IACvB;IAEA,OAAO,EAAE;EACX,CAAC;EAEDD,EAAE,CAACE,GAAG,GAAGJ,MAAM;EAEf,OAAOE,EAAE;AACX;AAEA,OAAO,SAASG,oBAAoBA,CAElCN,OAA0B,EAAE;EAC5B,OAAOF,SAAS,CAAU,MAAM;IAC9B,OAAOL,UAAU,CAACC,kBAAkB,CAAC;EACvC,CAAC,EAAEM,OAAO,CAAC;AACb;AAEA,OAAO,SAASO,eAAeA,CAC7BP,OAA0B,EAC1B;EACA,OAAOF,SAAS,CAAU,MAAM;IAC9B,OAAOL,UAAU,CAACE,wBAAwB,CAAC;EAC7C,CAAC,EAAEK,OAAO,CAAC;AACb;AAEA,OAAO,SAASQ,cAAcA,CAC5BR,OAAyB,EACzB;EACA,OAAOF,SAAS,CAAS,MAAM;IAC7B,OAAOF,QAAQ,CAAC,CAAC;EACnB,CAAC,EAAEI,OAAO,CAAC;AACb;AAEA,OAAO,SAASS,mBAAmBA,CAACT,OAAoC,EAAE;EACxE,OAAOF,SAAS,CAAC,MAAM;IACrB,OAAOL,UAAU,CAACI,iBAAiB,CAAC;EACtC,CAAC,EAAEG,OAAO,CAAC;AACb","ignoreList":[]}
|
package/dist/src/utils.d.ts
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Children, ComponentCreator, CustomContext } from "./jsx-runtime.js";
|
|
2
2
|
import { OutputDirectory, OutputFile } from "./render.js";
|
|
3
3
|
export interface JoinOptions {
|
|
4
4
|
/**
|
|
5
5
|
* The string to place between each element.
|
|
6
6
|
*/
|
|
7
|
-
joiner?:
|
|
7
|
+
joiner?: Children;
|
|
8
8
|
/**
|
|
9
9
|
* When true, the joiner is placed at the end of the array. When a string,
|
|
10
10
|
* that string is placed at the end of the array. The ender is only emitted
|
|
11
11
|
* when the array has at least one element.
|
|
12
12
|
*/
|
|
13
|
-
ender?:
|
|
13
|
+
ender?: Children;
|
|
14
|
+
/**
|
|
15
|
+
* When true, falsy values with the exception of 0 are skipped.
|
|
16
|
+
*/
|
|
17
|
+
skipFalsy?: boolean;
|
|
14
18
|
}
|
|
15
19
|
/**
|
|
16
20
|
* Map a Map to an array using a mapper and place a joiner between each element.
|
|
@@ -23,7 +27,7 @@ export interface JoinOptions {
|
|
|
23
27
|
* @returns The mapped and joined array.
|
|
24
28
|
*
|
|
25
29
|
*/
|
|
26
|
-
export declare function mapJoin<T, U, V>(src: Map<T, U>, cb: (key: T, value: U) => V, options?: JoinOptions): (V | string)[];
|
|
30
|
+
export declare function mapJoin<T, U, V>(src: () => Map<T, U>, cb: (key: T, value: U, index: number) => V, options?: JoinOptions): () => (V | string | undefined | CustomContext)[];
|
|
27
31
|
/**
|
|
28
32
|
* Map a array or iterator to another array using a mapper and place a joiner
|
|
29
33
|
* between each element. Defaults to joining with a newline.
|
|
@@ -34,7 +38,7 @@ export declare function mapJoin<T, U, V>(src: Map<T, U>, cb: (key: T, value: U)
|
|
|
34
38
|
* @param options - Join options.
|
|
35
39
|
* @returns The mapped and joined array.
|
|
36
40
|
*/
|
|
37
|
-
export declare function mapJoin<T, V>(src: T[] | IterableIterator<T>, cb: (value: T) => V, options?: JoinOptions): (V | string)[];
|
|
41
|
+
export declare function mapJoin<T, V>(src: () => T[] | IterableIterator<T>, cb: (value: T, index: number) => V, options?: JoinOptions): () => (V | string | undefined | CustomContext)[];
|
|
38
42
|
/**
|
|
39
43
|
* Place a joiner between each element of an array or iterator. Defaults to
|
|
40
44
|
* joining with a newline.
|
|
@@ -42,20 +46,23 @@ export declare function mapJoin<T, V>(src: T[] | IterableIterator<T>, cb: (value
|
|
|
42
46
|
* @see mapJoin for mapping before joining.
|
|
43
47
|
* @returns The joined array
|
|
44
48
|
*/
|
|
45
|
-
export declare function join<T>(src: T[] | Iterator<T>, options?: JoinOptions):
|
|
49
|
+
export declare function join<T extends Children>(src: T[] | Iterator<T>, options?: JoinOptions): Children;
|
|
50
|
+
export interface ChildrenOptions {
|
|
51
|
+
/**
|
|
52
|
+
* When true, fragments and arrays are not flattened.
|
|
53
|
+
*/
|
|
54
|
+
preserveFragments?: boolean;
|
|
55
|
+
}
|
|
46
56
|
/**
|
|
47
57
|
* Returns a memo which is a list of all the provided children.
|
|
48
58
|
* If you want this as an array, see {@link childrenArray}.
|
|
49
59
|
*/
|
|
50
|
-
export declare function children(fn: () => Children): () => Children;
|
|
51
|
-
export declare function childrenArray(fn: () => Children):
|
|
52
|
-
export declare function findKeyedChild(children:
|
|
53
|
-
export declare function
|
|
54
|
-
export declare function
|
|
55
|
-
export declare function
|
|
56
|
-
code(template: TemplateStringsArray, ...substitutions: Children[]): ComponentCreator<T>;
|
|
57
|
-
children(...children: Children[]): ComponentCreator<T>;
|
|
58
|
-
};
|
|
60
|
+
export declare function children(fn: () => Children, options?: ChildrenOptions): () => Children;
|
|
61
|
+
export declare function childrenArray(fn: () => Children, options?: ChildrenOptions): Children[];
|
|
62
|
+
export declare function findKeyedChild(children: Children[], tag: symbol): ComponentCreator<import("@alloy-js/core/jsx-runtime").Props> | null;
|
|
63
|
+
export declare function findKeyedChildren(children: Children[], tag: symbol): ComponentCreator<import("@alloy-js/core/jsx-runtime").Props>[];
|
|
64
|
+
export declare function findUnkeyedChildren(children: Children[]): Children[];
|
|
65
|
+
export declare function isKeyedChild(child: Children): child is ComponentCreator;
|
|
59
66
|
/**
|
|
60
67
|
* A visitor to collect the output from {@link render}. Used by
|
|
61
68
|
* {@link traverseOutput}.
|
package/dist/src/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,gBAAgB,EAEhB,aAAa,EAOd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAU,MAAM,aAAa,CAAC;AAElE,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAC;IAElB;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7B,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,EAC1C,OAAO,CAAC,EAAE,WAAW,GACpB,MAAM,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC,EAAE,CAAC;AACpD;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAC1B,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,EACpC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,EAClC,OAAO,CAAC,EAAE,WAAW,GACpB,MAAM,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC,EAAE,CAAC;AAmHpD;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,QAAQ,EACrC,GAAG,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EACtB,OAAO,GAAE,WAAgB,GACxB,QAAQ,CAmBV;AAED,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AACD;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,EAAE,EAAE,MAAM,QAAQ,EAClB,OAAO,GAAE,eAAoB,GAC5B,MAAM,QAAQ,CAsBhB;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,QAAQ,EAClB,OAAO,CAAC,EAAE,eAAe,GACxB,QAAQ,EAAE,CASZ;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,uEAQ/D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,kEAQlE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAEvD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,IAAI,gBAAgB,CAEvE;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IACjD,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,aAAa,QAUvB"}
|
package/dist/src/utils.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { isComponentCreator, memo } from "./jsx-runtime.js";
|
|
1
|
+
import { toRaw } from "@vue/reactivity";
|
|
2
|
+
import { createCustomContext, isComponentCreator, memo, onCleanup, root, untrack } from "./jsx-runtime.js";
|
|
3
3
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4
4
|
|
|
5
5
|
const defaultJoinOptions = {
|
|
@@ -35,34 +35,83 @@ export function mapJoin(src, cb, rawOptions = {}) {
|
|
|
35
35
|
...defaultJoinOptions,
|
|
36
36
|
...rawOptions
|
|
37
37
|
};
|
|
38
|
-
const ender = options.ender === true ? options.joiner : options.ender;
|
|
38
|
+
const ender = options.ender === true ? options.joiner : options.ender || undefined;
|
|
39
|
+
const currentItems = [];
|
|
40
|
+
const disposables = [];
|
|
39
41
|
const mapped = [];
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
42
|
+
let previousItemsLen = 0;
|
|
43
|
+
onCleanup(() => {
|
|
44
|
+
for (const d of disposables) d();
|
|
45
|
+
});
|
|
46
|
+
return () => {
|
|
47
|
+
const itemsSource = src();
|
|
48
|
+
// need to unpack reactives for branding checks
|
|
49
|
+
const itemsSourceRaw = toRaw(itemsSource);
|
|
50
|
+
let items = Array.isArray(itemsSourceRaw) ? itemsSource : [...itemsSource];
|
|
51
|
+
if (options.skipFalsy) {
|
|
52
|
+
items = items.filter(item => item !== null && item !== undefined && typeof item !== "boolean");
|
|
49
53
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
// this is important to access here in reactive context so we are
|
|
55
|
+
// notified of new items from reactives.
|
|
56
|
+
const itemsLen = items.length;
|
|
57
|
+
const compare = getCompareFunction(itemsSource);
|
|
58
|
+
const mapper = getMapperFunction(itemsSource);
|
|
59
|
+
return untrack(() => {
|
|
60
|
+
let startIndex = 0;
|
|
61
|
+
for (; startIndex < itemsLen && startIndex < currentItems.length; startIndex++) {
|
|
62
|
+
if (!compare(items[startIndex], currentItems[startIndex])) {
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
59
65
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
66
|
+
if (startIndex > 0 && startIndex < itemsLen) {
|
|
67
|
+
// need to update the previous joiner (might be ender or absent)
|
|
68
|
+
mapped[startIndex * 2 - 1] = options.joiner;
|
|
69
|
+
}
|
|
70
|
+
for (; startIndex < itemsLen; startIndex++) {
|
|
71
|
+
currentItems[startIndex] = items[startIndex];
|
|
72
|
+
if (disposables[startIndex]) {
|
|
73
|
+
disposables[startIndex]();
|
|
74
|
+
}
|
|
75
|
+
const cleanupIndex = startIndex;
|
|
76
|
+
mapped[startIndex * 2] = createCustomContext(cb => {
|
|
77
|
+
return root(disposer => {
|
|
78
|
+
disposables[cleanupIndex] = disposer;
|
|
79
|
+
disposer();
|
|
80
|
+
cb(mapper(items[cleanupIndex], cleanupIndex));
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
mapped[startIndex * 2 + 1] = startIndex < items.length - 1 ? options.joiner : ender;
|
|
84
|
+
}
|
|
85
|
+
mapped.length = startIndex * 2;
|
|
86
|
+
mapped[mapped.length - 1] = ender;
|
|
87
|
+
for (; startIndex < previousItemsLen; startIndex++) {
|
|
88
|
+
disposables[startIndex]?.();
|
|
89
|
+
}
|
|
90
|
+
previousItemsLen = itemsLen;
|
|
91
|
+
return mapped;
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
function getCompareFunction(itemsSource) {
|
|
95
|
+
return Array.isArray(itemsSource) || isIterable(itemsSource) ? compareArray : compareMap;
|
|
96
|
+
}
|
|
97
|
+
function getMapperFunction(itemsSource) {
|
|
98
|
+
return Array.isArray(itemsSource) || isIterable(itemsSource) ? mapArray : mapMap;
|
|
99
|
+
}
|
|
100
|
+
function compareArray(elem1, elem2) {
|
|
101
|
+
return elem1 === elem2;
|
|
102
|
+
}
|
|
103
|
+
function compareMap(record1, record2) {
|
|
104
|
+
return record1[0] === record2[0] && record1[1] === record2[1];
|
|
105
|
+
}
|
|
106
|
+
function mapArray(item, index) {
|
|
107
|
+
return cb(item, index);
|
|
108
|
+
}
|
|
109
|
+
function mapMap(item, index) {
|
|
110
|
+
return cb(item[0], item[1], index);
|
|
111
|
+
}
|
|
112
|
+
function isIterable(x) {
|
|
113
|
+
return typeof x.next === "function";
|
|
64
114
|
}
|
|
65
|
-
return mapped;
|
|
66
115
|
}
|
|
67
116
|
|
|
68
117
|
/**
|
|
@@ -91,13 +140,19 @@ export function join(src, options = {}) {
|
|
|
91
140
|
}
|
|
92
141
|
return joined;
|
|
93
142
|
}
|
|
94
|
-
|
|
95
143
|
/**
|
|
96
144
|
* Returns a memo which is a list of all the provided children.
|
|
97
145
|
* If you want this as an array, see {@link childrenArray}.
|
|
98
146
|
*/
|
|
99
|
-
export function children(fn) {
|
|
100
|
-
return memo(() =>
|
|
147
|
+
export function children(fn, options = {}) {
|
|
148
|
+
return memo(() => {
|
|
149
|
+
const children = fn();
|
|
150
|
+
if (options.preserveFragments && Array.isArray(children)) {
|
|
151
|
+
return children.map(collectChildren);
|
|
152
|
+
} else {
|
|
153
|
+
return collectChildren(children);
|
|
154
|
+
}
|
|
155
|
+
});
|
|
101
156
|
function collectChildren(children) {
|
|
102
157
|
if (Array.isArray(children)) {
|
|
103
158
|
return children.map(collectChildren).flat();
|
|
@@ -108,8 +163,8 @@ export function children(fn) {
|
|
|
108
163
|
}
|
|
109
164
|
}
|
|
110
165
|
}
|
|
111
|
-
export function childrenArray(fn) {
|
|
112
|
-
const c = children(fn)();
|
|
166
|
+
export function childrenArray(fn, options) {
|
|
167
|
+
const c = children(fn, options)();
|
|
113
168
|
if (Array.isArray(c)) {
|
|
114
169
|
return c;
|
|
115
170
|
} else if (c === undefined) {
|
|
@@ -126,40 +181,21 @@ export function findKeyedChild(children, tag) {
|
|
|
126
181
|
}
|
|
127
182
|
return null;
|
|
128
183
|
}
|
|
184
|
+
export function findKeyedChildren(children, tag) {
|
|
185
|
+
const keyedChildren = [];
|
|
186
|
+
for (const child of children) {
|
|
187
|
+
if (isKeyedChild(child) && child.tag === tag) {
|
|
188
|
+
keyedChildren.push(child);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return keyedChildren;
|
|
192
|
+
}
|
|
129
193
|
export function findUnkeyedChildren(children) {
|
|
130
194
|
return children.filter(child => !isKeyedChild(child));
|
|
131
195
|
}
|
|
132
196
|
export function isKeyedChild(child) {
|
|
133
197
|
return isComponentCreator(child) && !!child.tag;
|
|
134
198
|
}
|
|
135
|
-
export function stc(Component) {
|
|
136
|
-
return (...args) => {
|
|
137
|
-
const fn = () => Component(args[0]);
|
|
138
|
-
fn.component = Component;
|
|
139
|
-
fn.props = args[0];
|
|
140
|
-
fn.code = (template, ...substitutions) => {
|
|
141
|
-
const propsWithChildren = {
|
|
142
|
-
...(args[0] ?? {}),
|
|
143
|
-
children: code(template, ...substitutions)
|
|
144
|
-
};
|
|
145
|
-
const fn = () => Component(propsWithChildren);
|
|
146
|
-
fn.component = Component;
|
|
147
|
-
fn.props = args[0];
|
|
148
|
-
return fn;
|
|
149
|
-
};
|
|
150
|
-
fn.children = (...children) => {
|
|
151
|
-
const propsWithChildren = {
|
|
152
|
-
...(args[0] ?? {}),
|
|
153
|
-
children
|
|
154
|
-
};
|
|
155
|
-
const fn = () => Component(propsWithChildren);
|
|
156
|
-
fn.component = Component;
|
|
157
|
-
fn.props = args[0];
|
|
158
|
-
return fn;
|
|
159
|
-
};
|
|
160
|
-
return fn;
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
199
|
|
|
164
200
|
/**
|
|
165
201
|
* A visitor to collect the output from {@link render}. Used by
|
package/dist/src/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["
|
|
1
|
+
{"version":3,"file":"utils.js","names":["toRaw","createCustomContext","isComponentCreator","memo","onCleanup","root","untrack","defaultJoinOptions","joiner","ender","mapJoin","src","cb","rawOptions","options","undefined","currentItems","disposables","mapped","previousItemsLen","d","itemsSource","itemsSourceRaw","items","Array","isArray","skipFalsy","filter","item","itemsLen","length","compare","getCompareFunction","mapper","getMapperFunction","startIndex","cleanupIndex","disposer","isIterable","compareArray","compareMap","mapArray","mapMap","elem1","elem2","record1","record2","index","x","next","join","mergedOptions","joined","from","entries","push","children","fn","preserveFragments","map","collectChildren","flat","childrenArray","c","findKeyedChild","tag","child","isKeyedChild","findKeyedChildren","keyedChildren","findUnkeyedChildren","traverseOutput","sourceDirectory","visitor","visitDirectory","contents","kind","visitFile"],"sources":["../../src/utils.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-build.test.d.ts","sourceRoot":"","sources":["../../test/browser-build.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block.test.d.ts","sourceRoot":"","sources":["../../../test/components/block.test.tsx"],"names":[],"mappings":"AAEA,OAAO,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declaration.test.d.ts","sourceRoot":"","sources":["../../../test/components/declaration.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.test.d.ts","sourceRoot":"","sources":["../../../test/components/list.test.tsx"],"names":[],"mappings":"AAEA,OAAO,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrap.test.d.ts","sourceRoot":"","sources":["../../../test/components/wrap.test.tsx"],"names":[],"mappings":"AAIA,OAAO,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"for.test.d.ts","sourceRoot":"","sources":["../../../test/control-flow/for.test.tsx"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match.test.d.ts","sourceRoot":"","sources":["../../../test/control-flow/match.test.tsx"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show.test.d.ts","sourceRoot":"","sources":["../../../test/control-flow/show.test.tsx"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.test.d.ts","sourceRoot":"","sources":["../../../test/reactivity/cleanup.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memo.test.d.ts","sourceRoot":"","sources":["../../../test/reactivity/memo.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"untrack.test.d.ts","sourceRoot":"","sources":["../../../test/reactivity/untrack.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatting.test.d.ts","sourceRoot":"","sources":["../../../test/rendering/formatting.test.tsx"],"names":[],"mappings":"AAEA,OAAO,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoization.test.d.ts","sourceRoot":"","sources":["../../../test/rendering/memoization.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"split-props.test.d.ts","sourceRoot":"","sources":["../../test/split-props.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stc.test.d.ts","sourceRoot":"","sources":["../../test/stc.test.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stc.test.d.ts","sourceRoot":"","sources":["../../test/stc.test.tsx"],"names":[],"mappings":"AAGA,OAAO,6BAA6B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../test/utils.test.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../test/utils.test.tsx"],"names":[],"mappings":"AAKA,OAAO,6BAA6B,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { renderTree } from "@alloy-js/core";
|
|
1
|
+
import { printTree, renderTree } from "@alloy-js/core";
|
|
2
2
|
import { expect } from "vitest";
|
|
3
|
-
import { dedent
|
|
3
|
+
import { dedent } from "./render.js";
|
|
4
4
|
expect.extend({
|
|
5
|
-
toRenderTo(received, expectedRaw) {
|
|
5
|
+
toRenderTo(received, expectedRaw, renderOptions) {
|
|
6
6
|
const {
|
|
7
7
|
isNot
|
|
8
8
|
} = this;
|
|
9
9
|
const tree = renderTree(received);
|
|
10
|
-
const actual = printTree(tree);
|
|
10
|
+
const actual = printTree(tree, renderOptions);
|
|
11
11
|
const expected = dedent(expectedRaw);
|
|
12
12
|
return {
|
|
13
13
|
pass: actual === expected,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extend-expect.js","names":["renderTree","expect","dedent","
|
|
1
|
+
{"version":3,"file":"extend-expect.js","names":["printTree","renderTree","expect","dedent","extend","toRenderTo","received","expectedRaw","renderOptions","isNot","tree","actual","expected","pass","message"],"sources":["../../testing/extend-expect.ts"],"sourcesContent":[null],"mappings":"AAAA,SAAmBA,SAAS,EAAEC,UAAU,QAAQ,gBAAgB;AAChE,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,MAAM,QAAQ,aAAa;AAQpCD,MAAM,CAACE,MAAM,CAAC;EACZC,UAAUA,CACRC,QAAkB,EAClBC,WAAmB,EACnBC,aAAiC,EACjC;IACA,MAAM;MAAEC;IAAM,CAAC,GAAG,IAAI;IACtB,MAAMC,IAAI,GAAGT,UAAU,CAACK,QAAQ,CAAC;IACjC,MAAMK,MAAM,GAAGX,SAAS,CAACU,IAAI,EAAEF,aAAa,CAAC;IAC7C,MAAMI,QAAQ,GAAGT,MAAM,CAACI,WAAW,CAAC;IACpC,OAAO;MACLM,IAAI,EAAEF,MAAM,KAAKC,QAAQ;MACzBE,OAAO,EAAEA,CAAA,KAAM;QACb,OAAO,YAAYL,KAAK,GAAG,MAAM,GAAG,EAAE,YAAY;MACpD,CAAC;MACDE,MAAM;MACNC;IACF,CAAC;EACH;AACF,CAAC,CAAC","ignoreList":[]}
|