jsxpression 0.1.33 → 0.1.35

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.
Files changed (50) hide show
  1. package/lib/analyze/analysis-error.d.ts.map +1 -1
  2. package/lib/analyze/analysis-error.js +2 -3
  3. package/lib/analyze/analysis-error.js.map +1 -1
  4. package/lib/codegen/schema/utils.d.ts.map +1 -1
  5. package/lib/codegen/schema/utils.js +3 -0
  6. package/lib/codegen/schema/utils.js.map +1 -1
  7. package/lib/schema.d.ts +7 -1
  8. package/lib/schema.d.ts.map +1 -1
  9. package/lib/schema.js.map +1 -1
  10. package/package.json +2 -2
  11. package/src/analyze/analysis-error.ts +2 -3
  12. package/src/codegen/generate-typescript-definitions.test.ts +16 -0
  13. package/src/codegen/schema/utils.ts +3 -0
  14. package/src/schema.ts +8 -0
  15. package/lib/analyze/analyze.test.d.ts +0 -2
  16. package/lib/analyze/analyze.test.d.ts.map +0 -1
  17. package/lib/analyze/analyze.test.js +0 -763
  18. package/lib/analyze/analyze.test.js.map +0 -1
  19. package/lib/analyze/security/member-access.d.ts +0 -6
  20. package/lib/analyze/security/member-access.d.ts.map +0 -1
  21. package/lib/analyze/security/member-access.js +0 -21
  22. package/lib/analyze/security/member-access.js.map +0 -1
  23. package/lib/codegen/generate-typescript-definitions.test.d.ts +0 -2
  24. package/lib/codegen/generate-typescript-definitions.test.d.ts.map +0 -1
  25. package/lib/codegen/generate-typescript-definitions.test.js +0 -649
  26. package/lib/codegen/generate-typescript-definitions.test.js.map +0 -1
  27. package/lib/compile/compile.test.d.ts +0 -2
  28. package/lib/compile/compile.test.d.ts.map +0 -1
  29. package/lib/compile/compile.test.js +0 -146
  30. package/lib/compile/compile.test.js.map +0 -1
  31. package/lib/evaluate/evaluate.test.d.ts +0 -2
  32. package/lib/evaluate/evaluate.test.d.ts.map +0 -1
  33. package/lib/evaluate/evaluate.test.js +0 -260
  34. package/lib/evaluate/evaluate.test.js.map +0 -1
  35. package/lib/parse/parse.test.d.ts +0 -2
  36. package/lib/parse/parse.test.d.ts.map +0 -1
  37. package/lib/parse/parse.test.js +0 -80
  38. package/lib/parse/parse.test.js.map +0 -1
  39. package/lib/render.test.d.ts +0 -2
  40. package/lib/render.test.d.ts.map +0 -1
  41. package/lib/render.test.js +0 -301
  42. package/lib/render.test.js.map +0 -1
  43. package/lib/traverse.test.d.ts +0 -2
  44. package/lib/traverse.test.d.ts.map +0 -1
  45. package/lib/traverse.test.js +0 -84
  46. package/lib/traverse.test.js.map +0 -1
  47. package/lib/types.d.ts +0 -12
  48. package/lib/types.d.ts.map +0 -1
  49. package/lib/types.js +0 -2
  50. package/lib/types.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-typescript-definitions.test.js","sourceRoot":"","sources":["../../src/codegen/generate-typescript-definitions.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=compile.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compile.test.d.ts","sourceRoot":"","sources":["../../src/compile/compile.test.ts"],"names":[],"mappings":""}
@@ -1,146 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { compile } from "../compile/index.js";
3
- import { parse } from "../parse/index.js";
4
- describe("compile", () => {
5
- it("should compile ternary expression", () => {
6
- const ast = parse("<div>{props.show ? 'Yes' : 'No'}</div>");
7
- const result = compile(ast);
8
- expect(result).toBe('"use strict";return h("div", null, (props.show?"Yes":"No"));');
9
- });
10
- it("should compile logical OR expression", () => {
11
- const ast = parse("<div>{props.value || 'default'}</div>");
12
- const result = compile(ast);
13
- expect(result).toBe('"use strict";return h("div", null, (props.value || "default"));');
14
- });
15
- it("should compile array operations", () => {
16
- const ast = parse("<div>{props.items.filter(x => x.length > 2).join(', ')}</div>");
17
- const result = compile(ast);
18
- expect(result).toBe('"use strict";return h("div", null, props.items.filter((x) => (x.length > 2)).join(", "));');
19
- });
20
- it("should compile object literals in props", () => {
21
- const ast = parse("<div style={{ color: 'red' }}>Text</div>");
22
- const result = compile(ast);
23
- expect(result).toBe('"use strict";return h("div", { style: { color: "red" } }, "Text");');
24
- });
25
- it("should compile nested ternary expressions", () => {
26
- const ast = parse("<div>{props.level > 2 ? 'high' : props.level > 1 ? 'medium' : 'low'}</div>");
27
- const result = compile(ast);
28
- expect(result).toBe('"use strict";return h("div", null, ((props.level > 2)?"high":((props.level > 1)?"medium":"low")));');
29
- });
30
- it("should compile nested JSX elements", () => {
31
- const ast = parse("<div><span><strong>Nested</strong></span></div>");
32
- const result = compile(ast);
33
- expect(result).toBe('"use strict";return h("div", null, h("span", null, h("strong", null, "Nested")));');
34
- });
35
- it("should compile nested array operations", () => {
36
- const ast = parse("<div>{props.items.map(x => x.split(',').map(y => y.trim()).join(' ')).join(' | ')}</div>");
37
- const result = compile(ast);
38
- expect(result).toBe('"use strict";return h("div", null, props.items.map((x) => x.split(",").map((y) => y.trim()).join(" ")).join(" | "));');
39
- });
40
- it("should compile bare expression containers", () => {
41
- const ast = parse("{data.user.name}");
42
- const result = compile(ast);
43
- expect(result).toBe('"use strict";return data.user.name;');
44
- });
45
- it("should compile bare mathematical expressions", () => {
46
- const ast = parse("{data.count * 2}");
47
- const result = compile(ast);
48
- expect(result).toBe('"use strict";return (data.count * 2);');
49
- });
50
- it("should compile bare method calls", () => {
51
- const ast = parse("{data.text.toUpperCase()}");
52
- const result = compile(ast);
53
- expect(result).toBe('"use strict";return data.text.toUpperCase();');
54
- });
55
- it("should compile bare complex expressions", () => {
56
- const ast = parse("{data.items.filter(x => x.length > 2).length}");
57
- const result = compile(ast);
58
- expect(result).toBe('"use strict";return data.items.filter((x) => (x.length > 2)).length;');
59
- });
60
- describe("JSX empty expressions", () => {
61
- it("should handle empty expressions in children", () => {
62
- const ast = parse("<Text>{}</Text>");
63
- const compiled = compile(ast);
64
- expect(compiled).toContain("return");
65
- expect(compiled).toContain("Text");
66
- // Empty expressions should be skipped, so no children array should be empty or minimal
67
- expect(compiled).toBeDefined();
68
- });
69
- it("should handle multiple empty expressions", () => {
70
- const ast = parse("<Text>{}{}{}</Text>");
71
- const compiled = compile(ast);
72
- expect(compiled).toContain("return");
73
- expect(compiled).toContain("Text");
74
- expect(compiled).toBeDefined();
75
- });
76
- it("should handle mixed empty and real expressions", () => {
77
- const ast = parse("<Text>Hello {}{data.x}{} World</Text>");
78
- const compiled = compile(ast);
79
- expect(compiled).toContain("return");
80
- expect(compiled).toContain("Text");
81
- expect(compiled).toContain("Hello");
82
- expect(compiled).toContain("World");
83
- expect(compiled).toContain("data.x");
84
- });
85
- it("should generate valid JavaScript code structure", () => {
86
- const ast = parse("<Text>{}</Text>");
87
- const compiled = compile(ast);
88
- // The compiled code should have expected structure
89
- expect(compiled).toMatch(/^"use strict";return .+;$/);
90
- });
91
- });
92
- describe("spread elements", () => {
93
- it("should compile spread in arrays", () => {
94
- const ast = parse("<div>{[...data.items]}</div>");
95
- const result = compile(ast);
96
- expect(result).toBe('"use strict";return h("div", null, [...data.items]);');
97
- });
98
- it("should compile spread in objects", () => {
99
- const ast = parse("<div style={{ ...data.styles }}>Text</div>");
100
- const result = compile(ast);
101
- expect(result).toBe('"use strict";return h("div", { style: { ...data.styles } }, "Text");');
102
- });
103
- it("should compile mixed spread and regular elements in arrays", () => {
104
- const ast = parse("<div>{[1, ...data.items, 2]}</div>");
105
- const result = compile(ast);
106
- expect(result).toBe('"use strict";return h("div", null, [1, ...data.items, 2]);');
107
- });
108
- it("should compile mixed spread and regular properties in objects", () => {
109
- const ast = parse("<div style={{ color: 'red', ...data.styles, width: 100 }}>Text</div>");
110
- const result = compile(ast);
111
- expect(result).toBe('"use strict";return h("div", { style: { color: "red", ...data.styles, width: 100 } }, "Text");');
112
- });
113
- it("should compile multiple spreads in arrays", () => {
114
- const ast = parse("<div>{[...data.first, ...data.second]}</div>");
115
- const result = compile(ast);
116
- expect(result).toBe('"use strict";return h("div", null, [...data.first, ...data.second]);');
117
- });
118
- it("should compile multiple spreads in objects", () => {
119
- const ast = parse("<div style={{ ...data.base, ...data.override }}>Text</div>");
120
- const result = compile(ast);
121
- expect(result).toBe('"use strict";return h("div", { style: { ...data.base, ...data.override } }, "Text");');
122
- });
123
- it("should compile spread in function call arguments", () => {
124
- const ast = parse("<div>{Math.max(...data.numbers)}</div>");
125
- const result = compile(ast);
126
- expect(result).toBe('"use strict";return h("div", null, Math.max(...data.numbers));');
127
- });
128
- it("should compile spread with map in function call", () => {
129
- const ast = parse("<div>{Math.min(...data.items.map(x => x.price))}</div>");
130
- const result = compile(ast);
131
- expect(result).toBe('"use strict";return h("div", null, Math.min(...data.items.map((x) => x.price)));');
132
- });
133
- it("should compile mixed spread and regular arguments", () => {
134
- const ast = parse("<div>{Math.max(0, ...data.numbers, 100)}</div>");
135
- const result = compile(ast);
136
- expect(result).toBe('"use strict";return h("div", null, Math.max(0, ...data.numbers, 100));');
137
- });
138
- });
139
- // TODO: Add ChainExpression support for optional chaining (?.)
140
- // it("should compile nested object access with conditionals", () => {
141
- // const ast = parse("<div>{props.user?.profile?.name || 'Anonymous'}</div>");
142
- // const result = compile(ast);
143
- // expect(result).toBe('"use strict";return h("div", null, ((props.user?.profile?.name) || "Anonymous"));');
144
- // });
145
- });
146
- //# sourceMappingURL=compile.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compile.test.js","sourceRoot":"","sources":["../../src/compile/compile.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=evaluate.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluate.test.d.ts","sourceRoot":"","sources":["../../src/evaluate/evaluate.test.ts"],"names":[],"mappings":""}
@@ -1,260 +0,0 @@
1
- import { describe, it, expect, vi } from "vitest";
2
- import { evaluate } from "./evaluate.js";
3
- import { compile } from "../compile/index.js";
4
- import { parse } from "../parse/index.js";
5
- import { EvaluationError } from "./evaluation-error.js";
6
- function createPermissiveSchema(componentNames) {
7
- return {
8
- elements: Object.fromEntries(componentNames.map((name) => [name, {}])),
9
- };
10
- }
11
- describe("evaluate", () => {
12
- const compileAndEvaluate = (source, options = {}) => {
13
- const componentNames = Object.keys(options.components || {});
14
- const schema = createPermissiveSchema(componentNames);
15
- return evaluate(compile(parse(source)), schema, options);
16
- };
17
- it("should evaluate JSX with props", () => {
18
- const TestComponent = (props) => ({
19
- type: "TestComponent",
20
- props: { x: props.x, y: props.y },
21
- children: props.children,
22
- });
23
- const result = compileAndEvaluate("<Test x={data.x} y={data.y}>Hello</Test>", {
24
- data: { x: 10, y: 20 },
25
- components: {
26
- Test: TestComponent,
27
- },
28
- });
29
- expect(result).toEqual({
30
- type: "TestComponent",
31
- props: { x: 10, y: 20 },
32
- children: ["Hello"],
33
- });
34
- });
35
- it("should evaluate JSX with Math operations", () => {
36
- const TestComponent = (props) => ({
37
- type: "TestComponent",
38
- props,
39
- children: [],
40
- });
41
- const result = compileAndEvaluate("<Test value={Math.floor(data.x * Math.PI)}>Text</Test>", {
42
- data: { x: 5 },
43
- components: {
44
- Test: TestComponent,
45
- },
46
- });
47
- expect(result.props.value).toBe(15); // floor(5 * 3.14159...) = 15
48
- });
49
- it("should throw EvaluationError for unknown component", () => {
50
- const compiled = compile(parse("<UnknownComponent>Hello</UnknownComponent>"));
51
- const emptySchema = createPermissiveSchema([]);
52
- expect(() => evaluate(compiled, emptySchema, { components: {} })).toThrow(EvaluationError);
53
- expect(() => evaluate(compiled, emptySchema, { components: {} })).toThrow('component "UnknownComponent" is not allowed');
54
- });
55
- it("should deep-freeze props to prevent mutations", () => {
56
- const TestComponent = (props) => {
57
- expect(() => {
58
- props.nested.value = 999;
59
- }).toThrow();
60
- return { type: "Test", props, children: [] };
61
- };
62
- const compiled = compile(parse("<Test>Hello</Test>"));
63
- const schema = createPermissiveSchema(["Test"]);
64
- evaluate(compiled, schema, {
65
- data: { nested: { value: 42 } },
66
- components: {
67
- Test: TestComponent,
68
- },
69
- });
70
- });
71
- it("should evaluate nested elements", () => {
72
- const OuterComponent = (props) => ({
73
- type: "Outer",
74
- props: { x: props.x },
75
- children: props.children,
76
- });
77
- const InnerComponent = (props) => ({
78
- type: "Inner",
79
- props: { y: props.y },
80
- children: props.children,
81
- });
82
- const result = compileAndEvaluate("<Outer x={data.x}><Inner y={data.y}>Text</Inner></Outer>", {
83
- data: { x: 10, y: 20 },
84
- components: {
85
- Outer: OuterComponent,
86
- Inner: InnerComponent,
87
- },
88
- });
89
- expect(result.type).toBe("Outer");
90
- expect(result.props).toEqual({ x: 10 });
91
- expect(result.children).toHaveLength(1);
92
- const innerNode = result.children[0];
93
- expect(innerNode.type).toBe("Inner");
94
- expect(innerNode.props).toEqual({ y: 20 });
95
- expect(innerNode.children).toEqual(["Text"]);
96
- });
97
- it("should use custom createElement when provided", () => {
98
- const customCreateElement = (type, props, ...children) => ({
99
- type: type.name || "Unknown",
100
- props: { ...props, custom: true },
101
- children,
102
- });
103
- const TestComponent = () => ({ type: "Test", props: {}, children: [] });
104
- const result = compileAndEvaluate("<Test x={10}>Hello</Test>", {
105
- components: {
106
- Test: TestComponent,
107
- },
108
- createElement: customCreateElement,
109
- });
110
- expect(result).toEqual({
111
- type: "TestComponent",
112
- props: { x: 10, custom: true },
113
- children: ["Hello"],
114
- });
115
- });
116
- it("should evaluate conditional expressions with props", () => {
117
- const TestComponent = (props) => ({
118
- type: "TestComponent",
119
- props,
120
- children: [],
121
- });
122
- const result = compileAndEvaluate("<Test msg={data.show ? 'visible' : 'hidden'}>Text</Test>", {
123
- data: { show: true },
124
- components: {
125
- Test: TestComponent,
126
- },
127
- });
128
- expect(result.props.msg).toBe("visible");
129
- });
130
- it("should evaluate array methods on props", () => {
131
- const TestComponent = (props) => ({
132
- type: "TestComponent",
133
- props,
134
- children: [],
135
- });
136
- const result = compileAndEvaluate("<Test values={data.items.filter(x => x > 2).map(x => x * 2)}>Text</Test>", {
137
- data: { items: [1, 2, 3, 4, 5] },
138
- components: {
139
- Test: TestComponent,
140
- },
141
- });
142
- expect(result.props.values).toEqual([6, 8, 10]);
143
- });
144
- it("should handle runtime errors gracefully", () => {
145
- const compiled = compile(parse("<Test value={data.missing.nested}>Text</Test>"));
146
- const TestComponent = () => ({ type: "Test", props: {}, children: [] });
147
- const schema = createPermissiveSchema(["Test"]);
148
- expect(() => evaluate(compiled, schema, {
149
- data: {},
150
- components: {
151
- Test: TestComponent,
152
- },
153
- })).toThrow(EvaluationError);
154
- });
155
- it("should evaluate logical operators with props", () => {
156
- const TestComponent = (props) => ({
157
- type: "TestComponent",
158
- props,
159
- children: [],
160
- });
161
- const result = compileAndEvaluate("<Test msg={data.name || 'Anonymous'}>Text</Test>", {
162
- data: { name: "" },
163
- components: {
164
- Test: TestComponent,
165
- },
166
- });
167
- expect(result.props.msg).toBe("Anonymous");
168
- });
169
- it("should flatten and filter children correctly", () => {
170
- const TestComponent = (props) => ({
171
- type: "Test",
172
- props: {},
173
- children: props.children,
174
- });
175
- const result = compileAndEvaluate("<Test>{data.show && 'Visible'}{false}{'Always'}</Test>", {
176
- data: { show: true },
177
- components: {
178
- Test: TestComponent,
179
- },
180
- });
181
- expect(result.children).toEqual(["Visible", "Always"]);
182
- });
183
- it("should handle JSX fragments", () => {
184
- const TestComponent = () => ({ type: "Test", props: {}, children: [] });
185
- const result = compileAndEvaluate("<><Test /><Test /></>", {
186
- components: { Test: TestComponent },
187
- });
188
- expect(Array.isArray(result)).toBe(true);
189
- expect(result).toHaveLength(2);
190
- });
191
- it("should handle empty JSX expressions", () => {
192
- const TestComponent = (props) => ({
193
- type: "Test",
194
- props: {},
195
- children: props.children,
196
- });
197
- const result = compileAndEvaluate("<Test>{}{data.value}{}</Test>", {
198
- data: { value: "hello" },
199
- components: { Test: TestComponent },
200
- });
201
- expect(result.children).toEqual(["hello"]);
202
- });
203
- it("should evaluate complex nested expressions", () => {
204
- const TestComponent = (props) => ({
205
- type: "Test",
206
- props,
207
- children: [],
208
- });
209
- const result = compileAndEvaluate("<Test values={data.items.filter(x => x > 2).map(x => x * 2).join(', ')}>Text</Test>", {
210
- data: { items: [1, 2, 3, 4, 5] },
211
- components: { Test: TestComponent },
212
- });
213
- expect(result.props.values).toBe("6, 8, 10");
214
- });
215
- it("should pass correct parameters to custom createElement", () => {
216
- const mockCreateElement = vi.fn();
217
- compileAndEvaluate("<Test x={10}>Hello</Test>", {
218
- components: { Test: () => ({ type: "Test", props: {}, children: [] }) },
219
- createElement: mockCreateElement,
220
- });
221
- expect(mockCreateElement).toHaveBeenCalledWith(expect.any(Function), { x: 10 }, "Hello");
222
- });
223
- it("should handle string literals in expressions", () => {
224
- const TestComponent = (props) => ({
225
- type: "Test",
226
- props,
227
- children: [],
228
- });
229
- const result = compileAndEvaluate('<Test msg={"Hello " + data.name}>Text</Test>', {
230
- data: { name: "World" },
231
- components: { Test: TestComponent },
232
- });
233
- expect(result.props.msg).toBe("Hello World");
234
- });
235
- it("should handle numeric operations", () => {
236
- const TestComponent = (props) => ({
237
- type: "Test",
238
- props,
239
- children: [],
240
- });
241
- const result = compileAndEvaluate("<Test value={data.x + data.y * 2}>Text</Test>", {
242
- data: { x: 5, y: 3 },
243
- components: { Test: TestComponent },
244
- });
245
- expect(result.props.value).toBe(11); // 5 + (3 * 2)
246
- });
247
- it("should handle data access in children", () => {
248
- const TestComponent = (props) => ({
249
- type: "Test",
250
- props: {},
251
- children: props.children,
252
- });
253
- const result = compileAndEvaluate("<Test>Hello {data.name}!</Test>", {
254
- data: { name: "World" },
255
- components: { Test: TestComponent },
256
- });
257
- expect(result.children).toEqual(["Hello", "World", "!"]);
258
- });
259
- });
260
- //# sourceMappingURL=evaluate.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluate.test.js","sourceRoot":"","sources":["../../src/evaluate/evaluate.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=parse.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse.test.d.ts","sourceRoot":"","sources":["../../src/parse/parse.test.ts"],"names":[],"mappings":""}
@@ -1,80 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { parse } from "./parse.js";
3
- import { ParseError } from "./parse-error.js";
4
- describe("parse", () => {
5
- it("should parse valid JSX element", () => {
6
- const result = parse("<Text x={10}>Hello</Text>");
7
- expect(result.type).toBe("Program");
8
- expect(result.body).toHaveLength(1);
9
- expect(result.body[0].type).toBe("ExpressionStatement");
10
- });
11
- it("should parse JSX fragment", () => {
12
- const result = parse("<><Text>A</Text><Text>B</Text></>");
13
- expect(result.type).toBe("Program");
14
- expect(result.body[0].type).toBe("ExpressionStatement");
15
- });
16
- it("should throw ParseError with position for syntax error", () => {
17
- expect(() => parse("<Text>Unclosed")).toThrow(ParseError);
18
- try {
19
- parse("<Text>Unclosed");
20
- }
21
- catch (error) {
22
- expect(error).toBeInstanceOf(ParseError);
23
- }
24
- });
25
- it("should parse nested JSX", () => {
26
- const result = parse("<Outer><Inner><Deep>Text</Deep></Inner></Outer>");
27
- expect(result.type).toBe("Program");
28
- expect(result.body[0].type).toBe("ExpressionStatement");
29
- });
30
- it("should parse JSX with expressions", () => {
31
- const result = parse("<Text>{props.value}</Text>");
32
- expect(result.type).toBe("Program");
33
- expect(result.body[0].type).toBe("ExpressionStatement");
34
- });
35
- it("should parse JSX with complex expressions", () => {
36
- const result = parse("<Text>{data.items.map(x => x * 2).join(', ')}</Text>");
37
- expect(result.type).toBe("Program");
38
- expect(result.body[0].type).toBe("ExpressionStatement");
39
- });
40
- it("should parse JSX with attributes", () => {
41
- const result = parse('<Text x={10} y="hello" z={data.value}>Content</Text>');
42
- expect(result.type).toBe("Program");
43
- expect(result.body[0].type).toBe("ExpressionStatement");
44
- });
45
- it("should parse self-closing JSX elements", () => {
46
- const result = parse("<Input value={data.name} />");
47
- expect(result.type).toBe("Program");
48
- expect(result.body[0].type).toBe("ExpressionStatement");
49
- });
50
- it("should parse JSX with conditional expressions", () => {
51
- const result = parse("<Text>{data.show ? 'visible' : 'hidden'}</Text>");
52
- expect(result.type).toBe("Program");
53
- expect(result.body[0].type).toBe("ExpressionStatement");
54
- });
55
- it("should parse empty JSX expressions", () => {
56
- const result = parse("<Text>{}</Text>");
57
- expect(result.type).toBe("Program");
58
- expect(result.body[0].type).toBe("ExpressionStatement");
59
- });
60
- it("should preserve location information in errors", () => {
61
- try {
62
- parse("<Text>Unclosed");
63
- throw new Error("Should have thrown ParseError");
64
- }
65
- catch (error) {
66
- expect(error).toBeInstanceOf(ParseError);
67
- if (error instanceof ParseError && error.loc) {
68
- expect(error.loc).toBeDefined();
69
- expect(error.loc.line).toBe(1);
70
- expect(error.loc.column).toBe(6);
71
- }
72
- }
73
- });
74
- it("should handle invalid JSX syntax", () => {
75
- expect(() => parse("<>")).toThrow(ParseError);
76
- expect(() => parse("<Text><")).toThrow(ParseError);
77
- expect(() => parse("<Text attr>")).toThrow(ParseError);
78
- });
79
- });
80
- //# sourceMappingURL=parse.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse.test.js","sourceRoot":"","sources":["../../src/parse/parse.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAElD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAE1D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE1D,IAAI,CAAC;YACH,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,MAAM,GAAG,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAExE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAEnD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAE7E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAE7E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,MAAM,GAAG,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAEpD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,MAAM,GAAG,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAExE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAExC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,IAAI,CAAC;YACH,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;gBAChC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=render.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"render.test.d.ts","sourceRoot":"","sources":["../src/render.test.ts"],"names":[],"mappings":""}