@alloy-js/core 0.10.0 → 0.11.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 +13 -0
- package/dist/src/binder.js +33 -2
- package/dist/src/code.js +1 -2
- package/dist/src/components/Block.js +2 -5
- package/dist/src/components/Declaration.js +2 -4
- package/dist/src/components/For.d.ts +1 -1
- package/dist/src/components/For.d.ts.map +1 -1
- package/dist/src/components/For.js +1 -2
- package/dist/src/components/Indent.js +2 -4
- package/dist/src/components/List.js +2 -5
- package/dist/src/components/MemberDeclaration.js +2 -4
- package/dist/src/components/MemberName.js +1 -2
- package/dist/src/components/MemberScope.js +2 -4
- package/dist/src/components/Name.js +1 -2
- package/dist/src/components/Output.js +2 -4
- package/dist/src/components/Prose.js +1 -2
- package/dist/src/components/ReferenceOrContent.d.ts +8 -0
- package/dist/src/components/ReferenceOrContent.d.ts.map +1 -0
- package/dist/src/components/ReferenceOrContent.js +11 -0
- package/dist/src/components/Scope.js +2 -4
- package/dist/src/components/Show.js +1 -2
- package/dist/src/components/SourceDirectory.js +2 -4
- package/dist/src/components/SourceFile.js +2 -5
- package/dist/src/components/StatementList.js +2 -4
- package/dist/src/components/Switch.d.ts +1 -1
- package/dist/src/components/Switch.d.ts.map +1 -1
- package/dist/src/components/Switch.js +1 -2
- package/dist/src/components/Wrap.js +2 -4
- package/dist/src/components/index.d.ts +1 -0
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +2 -2
- package/dist/src/components/stc/index.d.ts +1 -0
- package/dist/src/components/stc/index.d.ts.map +1 -1
- package/dist/src/components/stc/index.js +2 -2
- package/dist/src/components/stc/sti.js +1 -2
- package/dist/src/context/assignment.js +1 -2
- package/dist/src/context/binder.js +1 -2
- package/dist/src/context/declaration.js +1 -2
- package/dist/src/context/index.js +1 -2
- package/dist/src/context/member-declaration.js +1 -2
- package/dist/src/context/member-scope.js +1 -2
- package/dist/src/context/name-policy.js +1 -2
- package/dist/src/context/scope.js +1 -2
- package/dist/src/context/source-directory.js +1 -2
- package/dist/src/context/source-file.js +1 -2
- package/dist/src/context.js +1 -2
- package/dist/src/debug.js +13 -15
- package/dist/src/index.browser.js +1 -2
- package/dist/src/index.js +1 -2
- package/dist/src/jsx-runtime.d.ts +1 -1
- package/dist/src/jsx-runtime.d.ts.map +1 -1
- package/dist/src/jsx-runtime.js +1 -2
- package/dist/src/name-policy.js +1 -2
- package/dist/src/refkey.js +1 -2
- package/dist/src/render.js +1 -2
- package/dist/src/slot.js +1 -2
- package/dist/src/stc.js +1 -2
- package/dist/src/sti.js +1 -2
- package/dist/src/tap.js +1 -2
- package/dist/src/tsdoc-metadata.json +1 -1
- package/dist/src/utils.js +2 -4
- package/dist/src/write-output.browser.js +1 -2
- package/dist/src/write-output.js +1 -2
- package/dist/test/browser-build.test.js +85 -0
- package/dist/test/children.test.js +27 -0
- package/dist/test/components/block.test.js +45 -0
- package/dist/test/components/declaration.test.js +30 -0
- package/dist/test/components/list.test.js +86 -0
- package/dist/test/components/prose.test.js +25 -0
- package/dist/test/components/reference-or-content.test.d.ts +2 -0
- package/dist/test/components/reference-or-content.test.d.ts.map +1 -0
- package/dist/test/components/reference-or-content.test.js +149 -0
- package/dist/test/components/slot.test.js +134 -0
- package/dist/test/components/source-file.test.js +64 -0
- package/dist/test/components/wrap.test.js +35 -0
- package/dist/test/control-flow/for.test.js +185 -0
- package/dist/test/control-flow/match.test.js +67 -0
- package/dist/test/control-flow/show.test.js +29 -0
- package/dist/test/name-policy.test.js +19 -0
- package/dist/test/props-with-defaults.test.js +93 -0
- package/dist/test/reactivity/cleanup.test.js +77 -0
- package/dist/test/reactivity/memo.test.js +16 -0
- package/dist/test/reactivity/ref-rendering.test.js +37 -0
- package/dist/test/reactivity/test.test.js +61 -0
- package/dist/test/reactivity/untrack.test.js +23 -0
- package/dist/test/refkey.test.js +25 -0
- package/dist/test/rendering/basic.test.js +96 -0
- package/dist/test/rendering/code.test.js +55 -0
- package/dist/test/rendering/formatting.test.js +402 -0
- package/dist/test/rendering/indent.test.js +90 -0
- package/dist/test/rendering/memoization.test.js +25 -0
- package/dist/test/rendering/refkeys.test.js +32 -0
- package/dist/test/split-props.test.js +77 -0
- package/dist/test/stc.test.js +34 -0
- package/dist/test/symbols.test.js +504 -0
- package/dist/test/utils.test.js +221 -0
- package/dist/testing/extend-expect.js +1 -2
- package/dist/testing/index.js +1 -2
- package/dist/testing/render.js +1 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +14 -22
- package/src/components/For.tsx +2 -2
- package/src/components/ReferenceOrContent.tsx +22 -0
- package/src/components/index.tsx +1 -0
- package/src/components/stc/index.ts +1 -0
- package/src/debug.ts +12 -13
- package/src/jsx-runtime.ts +2 -2
- package/temp/api.json +208 -7
- package/test/components/reference-or-content.test.tsx +138 -0
- package/babel.config.cjs +0 -4
- package/dist/src/binder.js.map +0 -1
- package/dist/src/code.js.map +0 -1
- package/dist/src/components/Block.js.map +0 -1
- package/dist/src/components/Declaration.js.map +0 -1
- package/dist/src/components/For.js.map +0 -1
- package/dist/src/components/Indent.js.map +0 -1
- package/dist/src/components/List.js.map +0 -1
- package/dist/src/components/MemberDeclaration.js.map +0 -1
- package/dist/src/components/MemberName.js.map +0 -1
- package/dist/src/components/MemberScope.js.map +0 -1
- package/dist/src/components/Name.js.map +0 -1
- package/dist/src/components/Output.js.map +0 -1
- package/dist/src/components/Prose.js.map +0 -1
- package/dist/src/components/Scope.js.map +0 -1
- package/dist/src/components/Show.js.map +0 -1
- package/dist/src/components/SourceDirectory.js.map +0 -1
- package/dist/src/components/SourceFile.js.map +0 -1
- package/dist/src/components/StatementList.js.map +0 -1
- package/dist/src/components/Switch.js.map +0 -1
- package/dist/src/components/Wrap.js.map +0 -1
- package/dist/src/components/index.js.map +0 -1
- package/dist/src/components/stc/index.js.map +0 -1
- package/dist/src/components/stc/sti.js.map +0 -1
- package/dist/src/context/assignment.js.map +0 -1
- package/dist/src/context/binder.js.map +0 -1
- package/dist/src/context/declaration.js.map +0 -1
- package/dist/src/context/index.js.map +0 -1
- package/dist/src/context/member-declaration.js.map +0 -1
- package/dist/src/context/member-scope.js.map +0 -1
- package/dist/src/context/name-policy.js.map +0 -1
- package/dist/src/context/scope.js.map +0 -1
- package/dist/src/context/source-directory.js.map +0 -1
- package/dist/src/context/source-file.js.map +0 -1
- package/dist/src/context.js.map +0 -1
- package/dist/src/debug.js.map +0 -1
- package/dist/src/index.browser.js.map +0 -1
- package/dist/src/index.js.map +0 -1
- package/dist/src/jsx-runtime.js.map +0 -1
- package/dist/src/name-policy.js.map +0 -1
- package/dist/src/refkey.js.map +0 -1
- package/dist/src/render.js.map +0 -1
- package/dist/src/slot.js.map +0 -1
- package/dist/src/stc.js.map +0 -1
- package/dist/src/sti.js.map +0 -1
- package/dist/src/tap.js.map +0 -1
- package/dist/src/utils.js.map +0 -1
- package/dist/src/write-output.browser.js.map +0 -1
- package/dist/src/write-output.js.map +0 -1
- package/dist/testing/extend-expect.js.map +0 -1
- package/dist/testing/index.js.map +0 -1
- package/dist/testing/render.js.map +0 -1
- package/dist/testing/vitest.d.js.map +0 -1
|
@@ -236,7 +236,7 @@ export declare namespace JSX {
|
|
|
236
236
|
export declare function jsx(type: Component<any>, props: Record<string, unknown>): ComponentCreator<Record<string, unknown>>;
|
|
237
237
|
export declare const jsxs: typeof jsx;
|
|
238
238
|
export declare function createComponent<TProps extends Props = Props>(C: Component<TProps>, props: TProps): ComponentCreator<TProps>;
|
|
239
|
-
export declare function taggedComponent<TProps = Props>(tag: symbol, component: Component<TProps>): Component<TProps
|
|
239
|
+
export declare function taggedComponent<TProps = Props>(tag: symbol, component: Component<TProps>): Component<TProps> & Required<Pick<Component<TProps>, "tag">>;
|
|
240
240
|
export declare const intrinsicElementKey: unique symbol;
|
|
241
241
|
export type IndentIntrinsicElement = IntrinsicElementBase<"indent">;
|
|
242
242
|
export type IndentIfBreakIntrinsicElement = IntrinsicElementBase<"indentIfBreak">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../../src/jsx-runtime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../../src/jsx-runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/src/jsx-runtime.js
CHANGED
package/dist/src/name-policy.js
CHANGED
package/dist/src/refkey.js
CHANGED
package/dist/src/render.js
CHANGED
package/dist/src/slot.js
CHANGED
package/dist/src/stc.js
CHANGED
package/dist/src/sti.js
CHANGED
package/dist/src/tap.js
CHANGED
package/dist/src/utils.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
|
|
2
|
-
import { memo as _$memo } from "@alloy-js/core/jsx-runtime";
|
|
1
|
+
import { memo as _$memo, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
|
|
3
2
|
import { toRaw } from "@vue/reactivity";
|
|
4
3
|
import { createCustomContext, isComponentCreator, memo, onCleanup, root, untrack } from "./jsx-runtime.js";
|
|
5
4
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -238,5 +237,4 @@ export function baseListPropsToMapJoinArgs(props) {
|
|
|
238
237
|
joiner,
|
|
239
238
|
ender
|
|
240
239
|
};
|
|
241
|
-
}
|
|
242
|
-
//# sourceMappingURL=utils.js.map
|
|
240
|
+
}
|
package/dist/src/write-output.js
CHANGED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { execSync } from "child_process";
|
|
2
|
+
import { existsSync, mkdirSync, rmSync, writeFileSync } from "fs";
|
|
3
|
+
import { join } from "path";
|
|
4
|
+
import { afterAll, beforeAll, describe, expect, it } from "vitest";
|
|
5
|
+
const testDir = join(__dirname, ".temp", "vite-test-project");
|
|
6
|
+
describe("Browser Build Test", () => {
|
|
7
|
+
beforeAll(() => {
|
|
8
|
+
// Cleanup previous runs
|
|
9
|
+
if (existsSync(testDir)) {
|
|
10
|
+
rmSync(testDir, {
|
|
11
|
+
recursive: true,
|
|
12
|
+
force: true
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Create a temporary Vite project
|
|
17
|
+
mkdirSync(testDir, {
|
|
18
|
+
recursive: true
|
|
19
|
+
});
|
|
20
|
+
execSync("npm init -y", {
|
|
21
|
+
cwd: testDir
|
|
22
|
+
});
|
|
23
|
+
execSync("npm install vite", {
|
|
24
|
+
cwd: testDir
|
|
25
|
+
});
|
|
26
|
+
execSync("npm install ../../..", {
|
|
27
|
+
cwd: testDir
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
// Create a minimal Vite app
|
|
31
|
+
writeFileSync(join(testDir, "index.js"), `
|
|
32
|
+
import { writeOutput } from "@alloy-js/core";
|
|
33
|
+
console.log("Alloy-js core imported successfully!", writeOutput);
|
|
34
|
+
`);
|
|
35
|
+
writeFileSync(join(testDir, "vite.config.js"), `
|
|
36
|
+
import { defineConfig } from "vite";
|
|
37
|
+
|
|
38
|
+
export default defineConfig({
|
|
39
|
+
build: {
|
|
40
|
+
outDir: "dist",
|
|
41
|
+
target: "esnext",
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
`);
|
|
45
|
+
|
|
46
|
+
// Create an index.html file
|
|
47
|
+
writeFileSync(join(testDir, "index.html"), `
|
|
48
|
+
<!DOCTYPE html>
|
|
49
|
+
<html lang="en">
|
|
50
|
+
<head>
|
|
51
|
+
<meta charset="UTF-8">
|
|
52
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
53
|
+
<title>Vite Test</title>
|
|
54
|
+
</head>
|
|
55
|
+
<body>
|
|
56
|
+
<script type="module" src="/index.js"></script>
|
|
57
|
+
</body>
|
|
58
|
+
</html>
|
|
59
|
+
`);
|
|
60
|
+
writeFileSync(join(testDir, "package.json"), JSON.stringify({
|
|
61
|
+
type: "module",
|
|
62
|
+
scripts: {
|
|
63
|
+
build: "vite build"
|
|
64
|
+
}
|
|
65
|
+
}, null, 2));
|
|
66
|
+
});
|
|
67
|
+
it("Vite should build successfully", () => {
|
|
68
|
+
// Run Vite build process and wait for completion
|
|
69
|
+
expect(() => {
|
|
70
|
+
execSync("npm run build", {
|
|
71
|
+
cwd: testDir,
|
|
72
|
+
stdio: "inherit"
|
|
73
|
+
});
|
|
74
|
+
}).not.toThrow();
|
|
75
|
+
});
|
|
76
|
+
afterAll(() => {
|
|
77
|
+
// Ensure testDir exists before attempting to remove it
|
|
78
|
+
if (existsSync(testDir)) {
|
|
79
|
+
rmSync(testDir, {
|
|
80
|
+
recursive: true,
|
|
81
|
+
force: true
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { children, printTree, renderTree } from "@alloy-js/core";
|
|
3
|
+
import { expect, it } from "vitest";
|
|
4
|
+
it("handles a single element", () => {
|
|
5
|
+
function Foo(props) {
|
|
6
|
+
return children(() => props.children);
|
|
7
|
+
}
|
|
8
|
+
const res = renderTree(_$createComponent(Foo, {
|
|
9
|
+
children: "a b c"
|
|
10
|
+
}));
|
|
11
|
+
expect(printTree(res)).toBe("a b c");
|
|
12
|
+
});
|
|
13
|
+
it("handles a multiple elements", () => {
|
|
14
|
+
function Foo(props) {
|
|
15
|
+
const c = children(() => props.children);
|
|
16
|
+
return c;
|
|
17
|
+
}
|
|
18
|
+
function Bar() {
|
|
19
|
+
return "Bar";
|
|
20
|
+
}
|
|
21
|
+
const res = renderTree(_$createComponent(Foo, {
|
|
22
|
+
get children() {
|
|
23
|
+
return [_$createComponent(Bar, {}), _$createComponent(Bar, {})];
|
|
24
|
+
}
|
|
25
|
+
}));
|
|
26
|
+
expect(printTree(res)).toBe(`BarBar`);
|
|
27
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { expect, it } from "vitest";
|
|
3
|
+
import { Block } from "../../src/components/Block.js";
|
|
4
|
+
import "../../testing/extend-expect.js";
|
|
5
|
+
it("renders properly with no children", () => {
|
|
6
|
+
const template = _$createComponent(Block, {
|
|
7
|
+
get children() {
|
|
8
|
+
return [];
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
expect(template).toRenderTo(`{}`);
|
|
12
|
+
});
|
|
13
|
+
it("renders properly with children", () => {
|
|
14
|
+
const template = _$createComponent(Block, {
|
|
15
|
+
children: "Contents!!"
|
|
16
|
+
});
|
|
17
|
+
expect(template).toRenderTo(`
|
|
18
|
+
{
|
|
19
|
+
Contents!!
|
|
20
|
+
}
|
|
21
|
+
`);
|
|
22
|
+
});
|
|
23
|
+
it("renders properly with newline and no children", () => {
|
|
24
|
+
const template = ["class", _$createComponent(Block, {
|
|
25
|
+
newline: true,
|
|
26
|
+
get children() {
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
})];
|
|
30
|
+
expect(template).toRenderTo(`
|
|
31
|
+
class {}
|
|
32
|
+
`);
|
|
33
|
+
});
|
|
34
|
+
it("renders properly with newline and no children", () => {
|
|
35
|
+
const template = ["class", _$createComponent(Block, {
|
|
36
|
+
newline: true,
|
|
37
|
+
children: "contents!!"
|
|
38
|
+
})];
|
|
39
|
+
expect(template).toRenderTo(`
|
|
40
|
+
class
|
|
41
|
+
{
|
|
42
|
+
contents!!
|
|
43
|
+
}
|
|
44
|
+
`);
|
|
45
|
+
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createComponent as _$createComponent, memo as _$memo } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { expect, it } from "vitest";
|
|
3
|
+
import { Output } from "../../src/components/Output.js";
|
|
4
|
+
import { Declaration, ref, renderTree, Scope, useBinder } from "../../src/index.js";
|
|
5
|
+
import { createTap } from "../../src/tap.js";
|
|
6
|
+
it("creates and cleans up a symbol", () => {
|
|
7
|
+
const GetBinder = createTap(() => {
|
|
8
|
+
return useBinder();
|
|
9
|
+
});
|
|
10
|
+
const binderRef = GetBinder.ref;
|
|
11
|
+
const doDecl = ref(true);
|
|
12
|
+
const template = _$createComponent(Output, {
|
|
13
|
+
get children() {
|
|
14
|
+
return [_$createComponent(GetBinder, {}), _$createComponent(Scope, {
|
|
15
|
+
name: "foo",
|
|
16
|
+
get children() {
|
|
17
|
+
return _$memo(() => !!doDecl.value)() ? _$createComponent(Declaration, {
|
|
18
|
+
name: "foo"
|
|
19
|
+
}) : "";
|
|
20
|
+
}
|
|
21
|
+
})];
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
renderTree(template);
|
|
25
|
+
const binder = binderRef.value;
|
|
26
|
+
const subScope = [...binder.globalScope.children][0];
|
|
27
|
+
expect(subScope.symbols.size).toBe(1);
|
|
28
|
+
doDecl.value = false;
|
|
29
|
+
expect(subScope.symbols.size).toBe(0);
|
|
30
|
+
});
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { createComponent as _$createComponent, createIntrinsic as _$createIntrinsic, memo as _$memo } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { expect, it } from "vitest";
|
|
3
|
+
import { List, printTree, ref, renderTree } from "../../src/index.js";
|
|
4
|
+
import "../../testing/extend-expect.js";
|
|
5
|
+
import { d } from "../../testing/render.js";
|
|
6
|
+
it("creates a list with default options", () => {
|
|
7
|
+
const template = _$createIntrinsic("group", {
|
|
8
|
+
get children() {
|
|
9
|
+
return _$createComponent(List, {
|
|
10
|
+
get children() {
|
|
11
|
+
return [["1"], ["2"], ["3"]];
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
expect(template).toRenderTo(`
|
|
17
|
+
1
|
|
18
|
+
2
|
|
19
|
+
3
|
|
20
|
+
`);
|
|
21
|
+
});
|
|
22
|
+
it("creates a list with some options", () => {
|
|
23
|
+
expect(_$createIntrinsic("group", {
|
|
24
|
+
get children() {
|
|
25
|
+
return _$createComponent(List, {
|
|
26
|
+
comma: true,
|
|
27
|
+
line: true,
|
|
28
|
+
get children() {
|
|
29
|
+
return [["1"], ["2"], ["3"]];
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
})).toRenderTo(`1, 2, 3`);
|
|
34
|
+
});
|
|
35
|
+
it("creates a list item for substitutions", () => {
|
|
36
|
+
expect(_$createIntrinsic("group", {
|
|
37
|
+
get children() {
|
|
38
|
+
return _$createComponent(List, {
|
|
39
|
+
comma: true,
|
|
40
|
+
line: true,
|
|
41
|
+
get children() {
|
|
42
|
+
return [1, 2, 3];
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
})).toRenderTo(`1, 2, 3`);
|
|
47
|
+
});
|
|
48
|
+
it("doesn't create list items for undefined, null, and boolean values", () => {
|
|
49
|
+
expect(_$createIntrinsic("group", {
|
|
50
|
+
get children() {
|
|
51
|
+
return _$createComponent(List, {
|
|
52
|
+
comma: true,
|
|
53
|
+
line: true,
|
|
54
|
+
get children() {
|
|
55
|
+
return [false, 1, true, 2, null, 3, undefined];
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
})).toRenderTo(`1, 2, 3`);
|
|
60
|
+
});
|
|
61
|
+
it("is useful for statements", () => {
|
|
62
|
+
function Statement() {
|
|
63
|
+
return "console.log(true)";
|
|
64
|
+
}
|
|
65
|
+
const includeStatement = ref(false);
|
|
66
|
+
const tree = renderTree(_$createComponent(List, {
|
|
67
|
+
semicolon: true,
|
|
68
|
+
hardline: true,
|
|
69
|
+
ender: true,
|
|
70
|
+
get children() {
|
|
71
|
+
return [_$createComponent(Statement, {}), _$memo(() => _$memo(() => !!includeStatement.value)() && _$createComponent(Statement, {})), _$createComponent(Statement, {})];
|
|
72
|
+
}
|
|
73
|
+
}));
|
|
74
|
+
expect(printTree(tree)).toEqual(d`
|
|
75
|
+
console.log(true);
|
|
76
|
+
console.log(true);
|
|
77
|
+
|
|
78
|
+
`);
|
|
79
|
+
includeStatement.value = true;
|
|
80
|
+
expect(printTree(tree)).toEqual(d`
|
|
81
|
+
console.log(true);
|
|
82
|
+
console.log(true);
|
|
83
|
+
console.log(true);
|
|
84
|
+
|
|
85
|
+
`);
|
|
86
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createComponent as _$createComponent, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { describe, expect, it } from "vitest";
|
|
3
|
+
import { Prose } from "../../src/components/Prose.js";
|
|
4
|
+
import "../../testing/extend-expect.js";
|
|
5
|
+
import { d } from "../../testing/render.js";
|
|
6
|
+
describe("Prose", () => {
|
|
7
|
+
it("formats properly", () => {
|
|
8
|
+
const template = [_$createComponent(Prose, {
|
|
9
|
+
children: "This is a long paragraph that should end up being broken into multiple lines."
|
|
10
|
+
}), _$createIntrinsic("hbr", {}), _$createIntrinsic("hbr", {}), _$createComponent(Prose, {
|
|
11
|
+
children: "This is another paragraph. There should be a couple breaks in front of it."
|
|
12
|
+
})];
|
|
13
|
+
expect(template).toRenderTo(d`
|
|
14
|
+
This is a long paragraph that
|
|
15
|
+
should end up being broken
|
|
16
|
+
into multiple lines.
|
|
17
|
+
|
|
18
|
+
This is another paragraph.
|
|
19
|
+
There should be a couple
|
|
20
|
+
breaks in front of it.
|
|
21
|
+
`, {
|
|
22
|
+
printWidth: 30
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference-or-content.test.d.ts","sourceRoot":"","sources":["../../../test/components/reference-or-content.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { describe, expect, it, vi } from "vitest";
|
|
3
|
+
import { createTap, Declaration, List, Output, ReferenceOrContent, refkey, resolve, Scope, SourceFile, useBinder } from "../../src/index.js";
|
|
4
|
+
import { d, renderToString } from "../../testing/render.js";
|
|
5
|
+
function TestWrapper(props) {
|
|
6
|
+
const GetBinder = createTap(() => useBinder());
|
|
7
|
+
function Reference(props) {
|
|
8
|
+
const result = resolve(props.refkey);
|
|
9
|
+
return result.value.targetDeclaration.name;
|
|
10
|
+
}
|
|
11
|
+
return _$createComponent(Output, {
|
|
12
|
+
get children() {
|
|
13
|
+
return _$createComponent(SourceFile, {
|
|
14
|
+
path: "test.txt",
|
|
15
|
+
filetype: "txt",
|
|
16
|
+
reference: Reference,
|
|
17
|
+
get children() {
|
|
18
|
+
return [_$createComponent(GetBinder, {}), _$createComponent(Scope, {
|
|
19
|
+
get children() {
|
|
20
|
+
return _$createComponent(List, {
|
|
21
|
+
get children() {
|
|
22
|
+
return props.children;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
})];
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
describe("render the reference name if a declaration exists", () => {
|
|
33
|
+
it("declaration is before", () => {
|
|
34
|
+
const rk1 = refkey();
|
|
35
|
+
const template = _$createComponent(TestWrapper, {
|
|
36
|
+
get children() {
|
|
37
|
+
return [_$createComponent(Declaration, {
|
|
38
|
+
name: "A",
|
|
39
|
+
refkey: rk1,
|
|
40
|
+
children: "Declare A"
|
|
41
|
+
}), _$createComponent(ReferenceOrContent, {
|
|
42
|
+
refkey: rk1,
|
|
43
|
+
children: "No Reference A"
|
|
44
|
+
})];
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
expect(renderToString(template)).toEqual(d`
|
|
48
|
+
Declare A
|
|
49
|
+
A
|
|
50
|
+
`);
|
|
51
|
+
});
|
|
52
|
+
it("declaration is after", () => {
|
|
53
|
+
const rk1 = refkey();
|
|
54
|
+
const template = _$createComponent(TestWrapper, {
|
|
55
|
+
get children() {
|
|
56
|
+
return [_$createComponent(ReferenceOrContent, {
|
|
57
|
+
refkey: rk1,
|
|
58
|
+
children: "No Reference A"
|
|
59
|
+
}), _$createComponent(Declaration, {
|
|
60
|
+
name: "A",
|
|
61
|
+
refkey: rk1,
|
|
62
|
+
children: "Declare A"
|
|
63
|
+
})];
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
expect(renderToString(template)).toEqual(d`
|
|
67
|
+
A
|
|
68
|
+
Declare A
|
|
69
|
+
`);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
it("render content if there is not declaration attached to symbol", () => {
|
|
73
|
+
const rk1 = refkey();
|
|
74
|
+
const template = _$createComponent(TestWrapper, {
|
|
75
|
+
get children() {
|
|
76
|
+
return _$createComponent(ReferenceOrContent, {
|
|
77
|
+
refkey: rk1,
|
|
78
|
+
children: "No Reference A"
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
expect(renderToString(template)).toEqual(d`
|
|
83
|
+
No Reference A
|
|
84
|
+
`);
|
|
85
|
+
});
|
|
86
|
+
it("mixed", () => {
|
|
87
|
+
const rk1 = refkey();
|
|
88
|
+
const rk2 = refkey();
|
|
89
|
+
const template = _$createComponent(TestWrapper, {
|
|
90
|
+
get children() {
|
|
91
|
+
return [_$createComponent(Declaration, {
|
|
92
|
+
name: "A",
|
|
93
|
+
refkey: rk1,
|
|
94
|
+
children: "Declare A"
|
|
95
|
+
}), _$createComponent(ReferenceOrContent, {
|
|
96
|
+
refkey: rk1,
|
|
97
|
+
children: "No Reference A"
|
|
98
|
+
}), _$createComponent(ReferenceOrContent, {
|
|
99
|
+
refkey: rk2,
|
|
100
|
+
children: "No Reference B"
|
|
101
|
+
})];
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
expect(renderToString(template)).toEqual(d`
|
|
105
|
+
Declare A
|
|
106
|
+
A
|
|
107
|
+
No Reference B
|
|
108
|
+
`);
|
|
109
|
+
});
|
|
110
|
+
it("resolve ref via source file reference", () => {
|
|
111
|
+
const rk1 = refkey();
|
|
112
|
+
const GetBinder = createTap(() => useBinder());
|
|
113
|
+
const Reference = vi.fn(props => {
|
|
114
|
+
const result = resolve(props.refkey);
|
|
115
|
+
return `ViaRef.${result.value.targetDeclaration.name}`;
|
|
116
|
+
});
|
|
117
|
+
const template = _$createComponent(Output, {
|
|
118
|
+
get children() {
|
|
119
|
+
return _$createComponent(SourceFile, {
|
|
120
|
+
path: "test.txt",
|
|
121
|
+
filetype: "txt",
|
|
122
|
+
reference: Reference,
|
|
123
|
+
get children() {
|
|
124
|
+
return [_$createComponent(GetBinder, {}), _$createComponent(Scope, {
|
|
125
|
+
get children() {
|
|
126
|
+
return _$createComponent(List, {
|
|
127
|
+
get children() {
|
|
128
|
+
return [_$createComponent(Declaration, {
|
|
129
|
+
name: "A",
|
|
130
|
+
refkey: rk1,
|
|
131
|
+
children: "Declare A"
|
|
132
|
+
}), _$createComponent(ReferenceOrContent, {
|
|
133
|
+
refkey: rk1,
|
|
134
|
+
children: "No Reference A"
|
|
135
|
+
})];
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
})];
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
expect(renderToString(template)).toEqual(d`
|
|
145
|
+
Declare A
|
|
146
|
+
ViaRef.A
|
|
147
|
+
`);
|
|
148
|
+
expect(Reference).toHaveBeenCalledTimes(1);
|
|
149
|
+
});
|