@alloy-js/core 0.5.0 → 0.7.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 +55 -0
- package/babel.config.cjs +4 -1
- package/dist/src/binder.d.ts +8 -2
- package/dist/src/binder.d.ts.map +1 -1
- package/dist/src/binder.js +41 -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.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 +5 -9
- 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.map +1 -1
- package/dist/src/components/MemberDeclaration.js.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.map +1 -1
- package/dist/src/components/MemberScope.js.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 +2 -1
- package/dist/src/components/Output.d.ts.map +1 -1
- package/dist/src/components/Output.js +9 -1
- package/dist/src/components/Output.js.map +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.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 +2 -6
- 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 +77 -6
- 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.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 +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/jsx-runtime.d.ts +139 -8
- package/dist/src/jsx-runtime.d.ts.map +1 -1
- package/dist/src/jsx-runtime.js +102 -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 +281 -177
- 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/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/src/write-output.js +3 -3
- package/dist/src/write-output.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 +6 -8
- package/src/binder.ts +54 -18
- 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 +25 -13
- package/src/components/Scope.tsx +4 -2
- package/src/components/Show.tsx +11 -0
- package/src/components/SourceDirectory.tsx +5 -1
- package/src/components/SourceFile.tsx +12 -16
- 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.ts +2 -3
- package/src/index.browser.ts +2 -0
- package/src/index.ts +1 -0
- package/src/jsx-runtime.ts +245 -23
- package/src/render.ts +392 -198
- package/src/stc.ts +95 -0
- package/src/utils.ts +162 -95
- package/src/write-output.ts +3 -3
- package/temp/api.json +8407 -3301
- 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 +87 -8
- 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":[]}
|
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":"AAAA,SAASA,KAAK,QAAQ,iBAAiB;AACvC,SAGEC,mBAAmB,EAGnBC,kBAAkB,EAClBC,IAAI,EACJC,SAAS,EACTC,IAAI,EACJC,OAAO,QACF,kBAAkB;AACzB;;AAqBA,MAAMC,kBAA+B,GAAG;EACtCC,MAAM,EAAE,IAAI;EACZC,KAAK,EAAE;AACT,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA,OAAO,SAASC,OAAOA,CACrBC,GAAwC,EACxCC,EAA0D,EAC1DC,UAAuB,GAAG,CAAC,CAAC,EACZ;EAChB,MAAMC,OAAO,GAAG;IAAE,GAAGP,kBAAkB;IAAE,GAAGM;EAAW,CAAC;EACxD,MAAMJ,KAAK,GACTK,OAAO,CAACL,KAAK,KAAK,IAAI,GAAGK,OAAO,CAACN,MAAM,GAAGM,OAAO,CAACL,KAAK,IAAIM,SAAS;EACtE,MAAMC,YAA4B,GAAG,EAAE;EACvC,MAAMC,WAAyB,GAAG,EAAE;EACpC,MAAMC,MAAkB,GAAG,EAAE;EAC7B,IAAIC,gBAAgB,GAAG,CAAC;EAExBf,SAAS,CAAC,MAAM;IACd,KAAK,MAAMgB,CAAC,IAAIH,WAAW,EAAEG,CAAC,CAAC,CAAC;EAClC,CAAC,CAAC;EAEF,OAAO,MAAM;IACX,MAAMC,WAAW,GAAGV,GAAG,CAAC,CAAC;IACzB;IACA,MAAMW,cAAc,GAAGtB,KAAK,CAACqB,WAAW,CAAC;IACzC,IAAIE,KAAK,GACPC,KAAK,CAACC,OAAO,CAACH,cAAc,CAAC,GAAID,WAAW,GAAW,CAAC,GAAGA,WAAW,CAAC;IACzE,IAAIP,OAAO,CAACY,SAAS,EAAE;MACrBH,KAAK,GAAGA,KAAK,CAACI,MAAM,CACjBC,IAAI,IACHA,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAKb,SAAS,IAAI,OAAOa,IAAI,KAAK,SAC3D,CAAC;IACH;IACA;IACA;IACA,MAAMC,QAAQ,GAAGN,KAAK,CAACO,MAAM;IAC7B,MAAMC,OAAY,GAAGC,kBAAkB,CAACX,WAAW,CAAC;IACpD,MAAMY,MAAW,GAAGC,iBAAiB,CAACb,WAAW,CAAC;IAElD,OAAOf,OAAO,CAAC,MAAM;MACnB,IAAI6B,UAAU,GAAG,CAAC;MAClB,OAEEA,UAAU,GAAGN,QAAQ,IAAIM,UAAU,GAAGnB,YAAY,CAACc,MAAM,EACzDK,UAAU,EAAE,EACZ;QACA,IAAI,CAACJ,OAAO,CAACR,KAAK,CAACY,UAAU,CAAC,EAAEnB,YAAY,CAACmB,UAAU,CAAC,CAAC,EAAE;UACzD;QACF;MACF;MAEA,IAAIA,UAAU,GAAG,CAAC,IAAIA,UAAU,GAAGN,QAAQ,EAAE;QAC3C;QACAX,MAAM,CAACiB,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGrB,OAAO,CAACN,MAAM;MAC7C;MAEA,OAAO2B,UAAU,GAAGN,QAAQ,EAAEM,UAAU,EAAE,EAAE;QAC1CnB,YAAY,CAACmB,UAAU,CAAC,GAAGZ,KAAK,CAACY,UAAU,CAAC;QAC5C,IAAIlB,WAAW,CAACkB,UAAU,CAAC,EAAE;UAC3BlB,WAAW,CAACkB,UAAU,CAAC,CAAC,CAAC;QAC3B;QACA,MAAMC,YAAY,GAAGD,UAAU;QAC/BjB,MAAM,CAACiB,UAAU,GAAG,CAAC,CAAC,GAAGlC,mBAAmB,CAAEW,EAAE,IAAK;UACnD,OAAOP,IAAI,CAAEgC,QAAQ,IAAK;YACxBpB,WAAW,CAACmB,YAAY,CAAC,GAAGC,QAAQ;YACpCA,QAAQ,CAAC,CAAC;YACVzB,EAAE,CAACqB,MAAM,CAACV,KAAK,CAACa,YAAY,CAAC,EAAEA,YAAY,CAAC,CAAC;UAC/C,CAAC,CAAC;QACJ,CAAC,CAAC;QAEFlB,MAAM,CAACiB,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,GACxBA,UAAU,GAAGZ,KAAK,CAACO,MAAM,GAAG,CAAC,GAAGhB,OAAO,CAACN,MAAM,GAAGC,KAAK;MAC1D;MAEAS,MAAM,CAACY,MAAM,GAAGK,UAAU,GAAG,CAAC;MAC9BjB,MAAM,CAACA,MAAM,CAACY,MAAM,GAAG,CAAC,CAAC,GAAGrB,KAAK;MACjC,OAAO0B,UAAU,GAAGhB,gBAAgB,EAAEgB,UAAU,EAAE,EAAE;QAClDlB,WAAW,CAACkB,UAAU,CAAC,GAAG,CAAC;MAC7B;MAEAhB,gBAAgB,GAAGU,QAAQ;MAE3B,OAAOX,MAAM;IACf,CAAC,CAAC;EACJ,CAAC;EAED,SAASc,kBAAkBA,CAACX,WAA0C,EAAE;IACtE,OAAOG,KAAK,CAACC,OAAO,CAACJ,WAAW,CAAC,IAAIiB,UAAU,CAACjB,WAAW,CAAC,GACxDkB,YAAY,GACZC,UAAU;EAChB;EAEA,SAASN,iBAAiBA,CAACb,WAA0C,EAAE;IACrE,OAAOG,KAAK,CAACC,OAAO,CAACJ,WAAW,CAAC,IAAIiB,UAAU,CAACjB,WAAW,CAAC,GACxDoB,QAAQ,GACRC,MAAM;EACZ;EACA,SAASH,YAAYA,CAACI,KAAQ,EAAEC,KAAQ,EAAE;IACxC,OAAOD,KAAK,KAAKC,KAAK;EACxB;EAEA,SAASJ,UAAUA,CAACK,OAAe,EAAEC,OAAe,EAAE;IACpD,OAAOD,OAAO,CAAC,CAAC,CAAC,KAAKC,OAAO,CAAC,CAAC,CAAC,IAAID,OAAO,CAAC,CAAC,CAAC,KAAKC,OAAO,CAAC,CAAC,CAAC;EAC/D;EAEA,SAASL,QAAQA,CAACb,IAAO,EAAEmB,KAAa,EAAE;IACxC,OAAQnC,EAAE,CAASgB,IAAI,EAAEmB,KAAK,CAAC;EACjC;EAEA,SAASL,MAAMA,CAACd,IAAY,EAAEmB,KAAa,EAAE;IAC3C,OAAOnC,EAAE,CAACgB,IAAI,CAAC,CAAC,CAAC,EAAEA,IAAI,CAAC,CAAC,CAAC,EAAEmB,KAAK,CAAC;EACpC;EAEA,SAAST,UAAUA,CAAIU,CAAU,EAAoB;IACnD,OAAO,OAAQA,CAAC,CAASC,IAAI,KAAK,UAAU;EAC9C;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,IAAIA,CAClBvC,GAAsB,EACtBG,OAAoB,GAAG,CAAC,CAAC,EACf;EACV,MAAMqC,aAAa,GAAG;IAAE,GAAG5C,kBAAkB;IAAE,GAAGO;EAAQ,CAAC;EAC3D,MAAMsC,MAAkB,GAAG,EAAE;EAC7B,MAAM3C,KAAK,GACT0C,aAAa,CAAC1C,KAAK,KAAK,IAAI,GAAG0C,aAAa,CAAC3C,MAAM,GAAG2C,aAAa,CAAC1C,KAAK;EAC3EE,GAAG,GAAGa,KAAK,CAAC6B,IAAI,CAAC1C,GAAkB,CAAC;EAEpC,KAAK,MAAM,CAACoC,KAAK,EAAEnB,IAAI,CAAC,IAAIjB,GAAG,CAAC2C,OAAO,CAAC,CAAC,EAAE;IACzCF,MAAM,CAACG,IAAI,CAAC3B,IAAI,CAAC;IACjB,IAAImB,KAAK,KAAKpC,GAAG,CAACmB,MAAM,GAAG,CAAC,EAAE;MAC5BsB,MAAM,CAACG,IAAI,CAACJ,aAAa,CAAC3C,MAAO,CAAC;IACpC;EACF;EAEA,IAAIG,GAAG,CAACmB,MAAM,GAAG,CAAC,IAAIrB,KAAK,EAAE;IAC3B2C,MAAM,CAACG,IAAI,CAAC9C,KAAK,CAAC;EACpB;EAEA,OAAO2C,MAAM;AACf;AAQA;AACA;AACA;AACA;AACA,OAAO,SAASI,QAAQA,CACtBC,EAAkB,EAClB3C,OAAwB,GAAG,CAAC,CAAC,EACb;EAChB,OAAOX,IAAI,CAAC,MAAM;IAChB,MAAMqD,QAAQ,GAAGC,EAAE,CAAC,CAAC;IACrB,IAAI3C,OAAO,CAAC4C,iBAAiB,IAAIlC,KAAK,CAACC,OAAO,CAAC+B,QAAQ,CAAC,EAAE;MACxD,OAAOA,QAAQ,CAACG,GAAG,CAACC,eAAe,CAAC;IACtC,CAAC,MAAM;MACL,OAAOA,eAAe,CAACJ,QAAQ,CAAC;IAClC;EACF,CAAC,CAAC;EAEF,SAASI,eAAeA,CAACJ,QAAkB,EAAY;IACrD,IAAIhC,KAAK,CAACC,OAAO,CAAC+B,QAAQ,CAAC,EAAE;MAC3B,OAAOA,QAAQ,CAACG,GAAG,CAACC,eAAe,CAAC,CAACC,IAAI,CAAC,CAAC;IAC7C,CAAC,MAAM,IACL,OAAOL,QAAQ,KAAK,UAAU,IAC9B,CAACtD,kBAAkB,CAACsD,QAAQ,CAAC,EAC7B;MACA,OAAOI,eAAe,CAACJ,QAAQ,CAAC,CAAC,CAAC;IACpC,CAAC,MAAM;MACL,OAAOA,QAAQ;IACjB;EACF;AACF;AAEA,OAAO,SAASM,aAAaA,CAC3BL,EAAkB,EAClB3C,OAAyB,EACb;EACZ,MAAMiD,CAAC,GAAGP,QAAQ,CAACC,EAAE,EAAE3C,OAAO,CAAC,CAAC,CAAC;EACjC,IAAIU,KAAK,CAACC,OAAO,CAACsC,CAAC,CAAC,EAAE;IACpB,OAAOA,CAAC;EACV,CAAC,MAAM,IAAIA,CAAC,KAAKhD,SAAS,EAAE;IAC1B,OAAO,EAAE;EACX,CAAC,MAAM;IACL,OAAO,CAACgD,CAAC,CAAC;EACZ;AACF;AAEA,OAAO,SAASC,cAAcA,CAACR,QAAoB,EAAES,GAAW,EAAE;EAChE,KAAK,MAAMC,KAAK,IAAIV,QAAQ,EAAE;IAC5B,IAAIW,YAAY,CAACD,KAAK,CAAC,IAAIA,KAAK,CAACD,GAAG,KAAKA,GAAG,EAAE;MAC5C,OAAOC,KAAK;IACd;EACF;EAEA,OAAO,IAAI;AACb;AAEA,OAAO,SAASE,iBAAiBA,CAACZ,QAAoB,EAAES,GAAW,EAAE;EACnE,MAAMI,aAAiC,GAAG,EAAE;EAC5C,KAAK,MAAMH,KAAK,IAAIV,QAAQ,EAAE;IAC5B,IAAIW,YAAY,CAACD,KAAK,CAAC,IAAIA,KAAK,CAACD,GAAG,KAAKA,GAAG,EAAE;MAC5CI,aAAa,CAACd,IAAI,CAACW,KAAK,CAAC;IAC3B;EACF;EACA,OAAOG,aAAa;AACtB;AAEA,OAAO,SAASC,mBAAmBA,CAACd,QAAoB,EAAE;EACxD,OAAOA,QAAQ,CAAC7B,MAAM,CAAEuC,KAAK,IAAK,CAACC,YAAY,CAACD,KAAK,CAAC,CAAC;AACzD;AAEA,OAAO,SAASC,YAAYA,CAACD,KAAe,EAA6B;EACvE,OAAOhE,kBAAkB,CAACgE,KAAK,CAAC,IAAI,CAAC,CAACA,KAAK,CAACD,GAAG;AACjD;;AAEA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,cAAcA,CAC5BC,eAAgC,EAChCC,OAAsB,EACtB;EACAA,OAAO,CAACC,cAAc,CAACF,eAAe,CAAC;EACvC,KAAK,MAAM5C,IAAI,IAAI4C,eAAe,CAACG,QAAQ,EAAE;IAC3C,IAAI/C,IAAI,CAACgD,IAAI,KAAK,WAAW,EAAE;MAC7BL,cAAc,CAAC3C,IAAI,EAAE6C,OAAO,CAAC;IAC/B,CAAC,MAAM;MACLA,OAAO,CAACI,SAAS,CAACjD,IAAI,CAAC;IACzB;EACF;AACF","ignoreList":[]}
|
package/dist/src/write-output.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { relative, resolve } from "pathe";
|
|
3
3
|
import { traverseOutput } from "./utils.js";
|
|
4
4
|
/**
|
|
@@ -9,7 +9,7 @@ export function writeOutput(output, basePath = "") {
|
|
|
9
9
|
traverseOutput(output, {
|
|
10
10
|
visitDirectory(directory) {
|
|
11
11
|
const path = resolve(basePath, directory.path);
|
|
12
|
-
if (
|
|
12
|
+
if (existsSync(path)) {
|
|
13
13
|
return;
|
|
14
14
|
}
|
|
15
15
|
// eslint-disable-next-line no-console
|
|
@@ -20,7 +20,7 @@ export function writeOutput(output, basePath = "") {
|
|
|
20
20
|
},
|
|
21
21
|
visitFile(file) {
|
|
22
22
|
const path = resolve(basePath, file.path);
|
|
23
|
-
if (
|
|
23
|
+
if (existsSync(path)) {
|
|
24
24
|
// eslint-disable-next-line no-console
|
|
25
25
|
console.log("overwrite", relative(process.cwd(), path));
|
|
26
26
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-output.js","names":["
|
|
1
|
+
{"version":3,"file":"write-output.js","names":["existsSync","mkdirSync","writeFileSync","relative","resolve","traverseOutput","writeOutput","output","basePath","visitDirectory","directory","path","console","log","process","cwd","recursive","visitFile","file","contents"],"sources":["../../src/write-output.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAU,EAAEC,SAAS,EAAEC,aAAa,QAAQ,SAAS;AAC9D,SAASC,QAAQ,EAAEC,OAAO,QAAQ,OAAO;AAEzC,SAASC,cAAc,QAAQ,YAAY;AAC3C;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAACC,MAAuB,EAAEC,QAAgB,GAAG,EAAE,EAAE;EAC1EH,cAAc,CAACE,MAAM,EAAE;IACrBE,cAAcA,CAACC,SAAS,EAAE;MACxB,MAAMC,IAAI,GAAGP,OAAO,CAACI,QAAQ,EAAEE,SAAS,CAACC,IAAI,CAAC;MAC9C,IAAIX,UAAU,CAACW,IAAI,CAAC,EAAE;QACpB;MACF;MACA;MACAC,OAAO,CAACC,GAAG,CAAC,QAAQ,EAAEV,QAAQ,CAACW,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEJ,IAAI,CAAC,CAAC;MACpDV,SAAS,CAACU,IAAI,EAAE;QAAEK,SAAS,EAAE;MAAK,CAAC,CAAC;IACtC,CAAC;IACDC,SAASA,CAACC,IAAI,EAAE;MACd,MAAMP,IAAI,GAAGP,OAAO,CAACI,QAAQ,EAAEU,IAAI,CAACP,IAAI,CAAC;MACzC,IAAIX,UAAU,CAACW,IAAI,CAAC,EAAE;QACpB;QACAC,OAAO,CAACC,GAAG,CAAC,WAAW,EAAEV,QAAQ,CAACW,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEJ,IAAI,CAAC,CAAC;MACzD,CAAC,MAAM;QACL;QACAC,OAAO,CAACC,GAAG,CAAC,QAAQ,EAAEV,QAAQ,CAACW,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEJ,IAAI,CAAC,CAAC;MACtD;MAEAT,aAAa,CAACS,IAAI,EAAEO,IAAI,CAACC,QAAQ,CAAC;IACpC;EACF,CAAC,CAAC;AACJ","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":[]}
|
package/dist/testing/render.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { RenderTextTree } from "@alloy-js/core";
|
|
2
1
|
import { Children } from "../src/jsx-runtime.js";
|
|
3
|
-
export
|
|
4
|
-
export declare function renderToString(element: Children):
|
|
2
|
+
export { printTree } from "@alloy-js/core";
|
|
3
|
+
export declare function renderToString(element: Children): string;
|
|
5
4
|
export declare function d(strings: TemplateStringsArray, ...values: any[]): string;
|
|
6
5
|
export declare function dedent(str: string): string;
|
|
7
6
|
//# sourceMappingURL=render.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../testing/render.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../testing/render.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,wBAAgB,cAAc,CAAC,OAAO,EAAE,QAAQ,UAE/C;AAED,wBAAgB,CAAC,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAQzE;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAe1C"}
|
package/dist/testing/render.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { renderTree } from "@alloy-js/core";
|
|
2
|
-
export
|
|
3
|
-
return tree.flat(Infinity).join("");
|
|
4
|
-
}
|
|
1
|
+
import { printTree, renderTree } from "@alloy-js/core";
|
|
2
|
+
export { printTree } from "@alloy-js/core";
|
|
5
3
|
export function renderToString(element) {
|
|
6
4
|
return printTree(renderTree(element));
|
|
7
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","names":["
|
|
1
|
+
{"version":3,"file":"render.js","names":["printTree","renderTree","renderToString","element","d","strings","values","result","reduce","acc","str","i","dedent","replace","match","indent","dedented","split","map","line","startsWith","slice","length","join"],"sources":["../../testing/render.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAS,EAAEC,UAAU,QAAQ,gBAAgB;AAGtD,SAASD,SAAS,QAAQ,gBAAgB;AAE1C,OAAO,SAASE,cAAcA,CAACC,OAAiB,EAAE;EAChD,OAAOH,SAAS,CAACC,UAAU,CAACE,OAAO,CAAC,CAAC;AACvC;AAEA,OAAO,SAASC,CAACA,CAACC,OAA6B,EAAE,GAAGC,MAAa,EAAU;EACzE;EACA,MAAMC,MAAM,GAAGF,OAAO,CAACG,MAAM,CAC3B,CAACC,GAAG,EAAEC,GAAG,EAAEC,CAAC,KAAKF,GAAG,GAAGC,GAAG,IAAIJ,MAAM,CAACK,CAAC,CAAC,IAAI,EAAE,CAAC,EAC9C,EACF,CAAC;EAED,OAAOC,MAAM,CAACL,MAAM,CAAC;AACvB;AAEA,OAAO,SAASK,MAAMA,CAACF,GAAW,EAAU;EAC1C;EACAA,GAAG,GAAGA,GAAG,CAACG,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;;EAErC;EACA,MAAMC,KAAK,GAAGJ,GAAG,CAACI,KAAK,CAAC,SAAS,CAAC;EAClC,MAAMC,MAAM,GAAGD,KAAK,GAAGA,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;;EAEpC;EACA,MAAME,QAAQ,GAAGN,GAAG,CACjBO,KAAK,CAAC,IAAI,CAAC,CACXC,GAAG,CAAEC,IAAI,IAAMA,IAAI,CAACC,UAAU,CAACL,MAAM,CAAC,GAAGI,IAAI,CAACE,KAAK,CAACN,MAAM,CAACO,MAAM,CAAC,GAAGH,IAAK,CAAC,CAC3EI,IAAI,CAAC,IAAI,CAAC;EAEb,OAAOP,QAAQ;AACjB","ignoreList":[]}
|