jsxpression 0.1.1 → 0.1.3
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/lib/analyze/analysis-error.js +1 -5
- package/lib/analyze/analysis-error.js.map +1 -1
- package/lib/analyze/analysis-report.js +1 -5
- package/lib/analyze/analysis-report.js.map +1 -1
- package/lib/analyze/analyze.d.ts +1 -1
- package/lib/analyze/analyze.d.ts.map +1 -1
- package/lib/analyze/analyze.js +6 -9
- package/lib/analyze/analyze.js.map +1 -1
- package/lib/analyze/analyze.test.js +312 -314
- package/lib/analyze/analyze.test.js.map +1 -1
- package/lib/analyze/data/analyze.d.ts +1 -1
- package/lib/analyze/data/analyze.d.ts.map +1 -1
- package/lib/analyze/data/analyze.js +7 -10
- package/lib/analyze/data/analyze.js.map +1 -1
- package/lib/analyze/data/data-access.d.ts +1 -1
- package/lib/analyze/data/data-access.d.ts.map +1 -1
- package/lib/analyze/data/data-access.js +20 -24
- package/lib/analyze/data/data-access.js.map +1 -1
- package/lib/analyze/data/index.d.ts +1 -1
- package/lib/analyze/data/index.d.ts.map +1 -1
- package/lib/analyze/data/index.js +1 -5
- package/lib/analyze/data/index.js.map +1 -1
- package/lib/analyze/data/method-calls.d.ts +1 -1
- package/lib/analyze/data/method-calls.d.ts.map +1 -1
- package/lib/analyze/data/method-calls.js +17 -20
- package/lib/analyze/data/method-calls.js.map +1 -1
- package/lib/analyze/data/utils.d.ts +1 -1
- package/lib/analyze/data/utils.d.ts.map +1 -1
- package/lib/analyze/data/utils.js +22 -29
- package/lib/analyze/data/utils.js.map +1 -1
- package/lib/analyze/index.d.ts +1 -1
- package/lib/analyze/index.d.ts.map +1 -1
- package/lib/analyze/index.js +3 -9
- package/lib/analyze/index.js.map +1 -1
- package/lib/analyze/jsx/analyze.d.ts +1 -1
- package/lib/analyze/jsx/analyze.d.ts.map +1 -1
- package/lib/analyze/jsx/analyze.js +8 -11
- package/lib/analyze/jsx/analyze.js.map +1 -1
- package/lib/analyze/jsx/element-attributes.d.ts +1 -1
- package/lib/analyze/jsx/element-attributes.d.ts.map +1 -1
- package/lib/analyze/jsx/element-attributes.js +21 -24
- package/lib/analyze/jsx/element-attributes.js.map +1 -1
- package/lib/analyze/jsx/element-children.d.ts +1 -1
- package/lib/analyze/jsx/element-children.d.ts.map +1 -1
- package/lib/analyze/jsx/element-children.js +20 -23
- package/lib/analyze/jsx/element-children.js.map +1 -1
- package/lib/analyze/jsx/element-tags.d.ts +1 -1
- package/lib/analyze/jsx/element-tags.d.ts.map +1 -1
- package/lib/analyze/jsx/element-tags.js +12 -15
- package/lib/analyze/jsx/element-tags.js.map +1 -1
- package/lib/analyze/jsx/index.d.ts +1 -1
- package/lib/analyze/jsx/index.d.ts.map +1 -1
- package/lib/analyze/jsx/index.js +1 -5
- package/lib/analyze/jsx/index.js.map +1 -1
- package/lib/analyze/security/analyze.d.ts +1 -1
- package/lib/analyze/security/analyze.d.ts.map +1 -1
- package/lib/analyze/security/analyze.js +10 -13
- package/lib/analyze/security/analyze.js.map +1 -1
- package/lib/analyze/security/call-expressions.d.ts +1 -1
- package/lib/analyze/security/call-expressions.d.ts.map +1 -1
- package/lib/analyze/security/call-expressions.js +8 -11
- package/lib/analyze/security/call-expressions.js.map +1 -1
- package/lib/analyze/security/declarations.d.ts +1 -1
- package/lib/analyze/security/declarations.d.ts.map +1 -1
- package/lib/analyze/security/declarations.js +12 -15
- package/lib/analyze/security/declarations.js.map +1 -1
- package/lib/analyze/security/expressions.d.ts +1 -1
- package/lib/analyze/security/expressions.d.ts.map +1 -1
- package/lib/analyze/security/expressions.js +14 -17
- package/lib/analyze/security/expressions.js.map +1 -1
- package/lib/analyze/security/identifiers.d.ts +1 -1
- package/lib/analyze/security/identifiers.d.ts.map +1 -1
- package/lib/analyze/security/identifiers.js +10 -13
- package/lib/analyze/security/identifiers.js.map +1 -1
- package/lib/analyze/security/index.d.ts +1 -1
- package/lib/analyze/security/index.d.ts.map +1 -1
- package/lib/analyze/security/index.js +1 -5
- package/lib/analyze/security/index.js.map +1 -1
- package/lib/analyze/security/member-access.d.ts +1 -1
- package/lib/analyze/security/member-access.d.ts.map +1 -1
- package/lib/analyze/security/member-access.js +7 -10
- package/lib/analyze/security/member-access.js.map +1 -1
- package/lib/analyze/utils.js +4 -10
- package/lib/analyze/utils.js.map +1 -1
- package/lib/analyze/validation-context.js +1 -5
- package/lib/analyze/validation-context.js.map +1 -1
- package/lib/builtins.js +9 -20
- package/lib/builtins.js.map +1 -1
- package/lib/codegen/builtins/builtin-types.js +3 -6
- package/lib/codegen/builtins/builtin-types.js.map +1 -1
- package/lib/codegen/builtins/index.js +1 -5
- package/lib/codegen/builtins/index.js.map +1 -1
- package/lib/codegen/generate-typescript-definitions.js +4 -7
- package/lib/codegen/generate-typescript-definitions.js.map +1 -1
- package/lib/codegen/generate-typescript-definitions.test.js +190 -192
- package/lib/codegen/generate-typescript-definitions.test.js.map +1 -1
- package/lib/codegen/index.js +1 -5
- package/lib/codegen/index.js.map +1 -1
- package/lib/codegen/schema/component-types.js +3 -6
- package/lib/codegen/schema/component-types.js.map +1 -1
- package/lib/codegen/schema/data-types.js +3 -6
- package/lib/codegen/schema/data-types.js.map +1 -1
- package/lib/codegen/schema/index.js +2 -7
- package/lib/codegen/schema/index.js.map +1 -1
- package/lib/codegen/schema/utils.js +3 -8
- package/lib/codegen/schema/utils.js.map +1 -1
- package/lib/compile/compilation-error.js +1 -5
- package/lib/compile/compilation-error.js.map +1 -1
- package/lib/compile/compile.d.ts +1 -1
- package/lib/compile/compile.d.ts.map +1 -1
- package/lib/compile/compile.js +20 -25
- package/lib/compile/compile.js.map +1 -1
- package/lib/compile/compile.test.js +110 -112
- package/lib/compile/compile.test.js.map +1 -1
- package/lib/compile/index.d.ts +1 -1
- package/lib/compile/index.d.ts.map +1 -1
- package/lib/compile/index.js +2 -7
- package/lib/compile/index.js.map +1 -1
- package/lib/evaluate/evaluate.js +5 -8
- package/lib/evaluate/evaluate.js.map +1 -1
- package/lib/evaluate/evaluate.test.js +56 -58
- package/lib/evaluate/evaluate.test.js.map +1 -1
- package/lib/evaluate/evaluation-error.js +1 -5
- package/lib/evaluate/evaluation-error.js.map +1 -1
- package/lib/evaluate/index.d.ts +1 -1
- package/lib/evaluate/index.d.ts.map +1 -1
- package/lib/evaluate/index.js +2 -7
- package/lib/evaluate/index.js.map +1 -1
- package/lib/index.js +6 -15
- package/lib/index.js.map +1 -1
- package/lib/jsx.d.ts +1 -1
- package/lib/jsx.d.ts.map +1 -1
- package/lib/jsx.js +10 -22
- package/lib/jsx.js.map +1 -1
- package/lib/parse/index.d.ts +1 -1
- package/lib/parse/index.d.ts.map +1 -1
- package/lib/parse/index.js +2 -7
- package/lib/parse/index.js.map +1 -1
- package/lib/parse/parse-error.js +1 -5
- package/lib/parse/parse-error.js.map +1 -1
- package/lib/parse/parse.d.ts +1 -1
- package/lib/parse/parse.d.ts.map +1 -1
- package/lib/parse/parse.js +7 -13
- package/lib/parse/parse.js.map +1 -1
- package/lib/parse/parse.test.js +56 -58
- package/lib/parse/parse.test.js.map +1 -1
- package/lib/render.d.ts +1 -1
- package/lib/render.d.ts.map +1 -1
- package/lib/render.js +9 -12
- package/lib/render.js.map +1 -1
- package/lib/render.test.js +62 -64
- package/lib/render.test.js.map +1 -1
- package/lib/schema.js +18 -38
- package/lib/schema.js.map +1 -1
- package/lib/traverse.d.ts +3 -3
- package/lib/traverse.d.ts.map +1 -1
- package/lib/traverse.js +8 -11
- package/lib/traverse.js.map +1 -1
- package/lib/traverse.test.js +34 -36
- package/lib/traverse.test.js.map +1 -1
- package/lib/types.js +1 -2
- package/lib/validate.js +7 -10
- package/lib/validate.js.map +1 -1
- package/package.json +2 -1
- package/src/compile/compile.ts +3 -4
|
@@ -1,141 +1,139 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const result = (0, index_js_1.compile)(ast);
|
|
10
|
-
(0, vitest_js_1.expect)(result).toBe('"use strict";return h("div", null, (props.show?"Yes":"No"));');
|
|
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"));');
|
|
11
9
|
});
|
|
12
|
-
|
|
13
|
-
const ast =
|
|
14
|
-
const result =
|
|
15
|
-
|
|
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"));');
|
|
16
14
|
});
|
|
17
|
-
|
|
18
|
-
const ast =
|
|
19
|
-
const result =
|
|
20
|
-
|
|
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(", "));');
|
|
21
19
|
});
|
|
22
|
-
|
|
23
|
-
const ast =
|
|
24
|
-
const result =
|
|
25
|
-
|
|
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");');
|
|
26
24
|
});
|
|
27
|
-
|
|
28
|
-
const ast =
|
|
29
|
-
const result =
|
|
30
|
-
|
|
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")));');
|
|
31
29
|
});
|
|
32
|
-
|
|
33
|
-
const ast =
|
|
34
|
-
const result =
|
|
35
|
-
|
|
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")));');
|
|
36
34
|
});
|
|
37
|
-
|
|
38
|
-
const ast =
|
|
39
|
-
const result =
|
|
40
|
-
|
|
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(" | "));');
|
|
41
39
|
});
|
|
42
|
-
|
|
43
|
-
const ast =
|
|
44
|
-
const result =
|
|
45
|
-
|
|
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;');
|
|
46
44
|
});
|
|
47
|
-
|
|
48
|
-
const ast =
|
|
49
|
-
const result =
|
|
50
|
-
|
|
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);');
|
|
51
49
|
});
|
|
52
|
-
|
|
53
|
-
const ast =
|
|
54
|
-
const result =
|
|
55
|
-
|
|
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();');
|
|
56
54
|
});
|
|
57
|
-
|
|
58
|
-
const ast =
|
|
59
|
-
const result =
|
|
60
|
-
|
|
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;');
|
|
61
59
|
});
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const ast =
|
|
65
|
-
const compiled =
|
|
66
|
-
|
|
67
|
-
|
|
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");
|
|
68
66
|
// Empty expressions should be skipped, so no children array should be empty or minimal
|
|
69
|
-
|
|
67
|
+
expect(compiled).toBeDefined();
|
|
70
68
|
});
|
|
71
|
-
|
|
72
|
-
const ast =
|
|
73
|
-
const compiled =
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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();
|
|
77
75
|
});
|
|
78
|
-
|
|
79
|
-
const ast =
|
|
80
|
-
const compiled =
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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");
|
|
86
84
|
});
|
|
87
|
-
|
|
88
|
-
const ast =
|
|
89
|
-
const compiled =
|
|
85
|
+
it("should generate valid JavaScript code structure", () => {
|
|
86
|
+
const ast = parse("<Text>{}</Text>");
|
|
87
|
+
const compiled = compile(ast);
|
|
90
88
|
// The compiled code should have expected structure
|
|
91
|
-
|
|
89
|
+
expect(compiled).toMatch(/^"use strict";return .+;$/);
|
|
92
90
|
});
|
|
93
91
|
});
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const ast =
|
|
97
|
-
const result =
|
|
98
|
-
|
|
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]);');
|
|
99
97
|
});
|
|
100
|
-
|
|
101
|
-
const ast =
|
|
102
|
-
const result =
|
|
103
|
-
|
|
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");');
|
|
104
102
|
});
|
|
105
|
-
|
|
106
|
-
const ast =
|
|
107
|
-
const result =
|
|
108
|
-
|
|
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]);');
|
|
109
107
|
});
|
|
110
|
-
|
|
111
|
-
const ast =
|
|
112
|
-
const result =
|
|
113
|
-
|
|
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");');
|
|
114
112
|
});
|
|
115
|
-
|
|
116
|
-
const ast =
|
|
117
|
-
const result =
|
|
118
|
-
|
|
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]);');
|
|
119
117
|
});
|
|
120
|
-
|
|
121
|
-
const ast =
|
|
122
|
-
const result =
|
|
123
|
-
|
|
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");');
|
|
124
122
|
});
|
|
125
|
-
|
|
126
|
-
const ast =
|
|
127
|
-
const result =
|
|
128
|
-
|
|
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));');
|
|
129
127
|
});
|
|
130
|
-
|
|
131
|
-
const ast =
|
|
132
|
-
const result =
|
|
133
|
-
|
|
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)));');
|
|
134
132
|
});
|
|
135
|
-
|
|
136
|
-
const ast =
|
|
137
|
-
const result =
|
|
138
|
-
|
|
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));');
|
|
139
137
|
});
|
|
140
138
|
});
|
|
141
139
|
// TODO: Add ChainExpression support for optional chaining (?.)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.test.js","sourceRoot":"","sources":["../../src/compile/compile.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compile.test.js","sourceRoot":"","sources":["../../src/compile/compile.test.ts"],"names":[],"mappings":"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"}
|
package/lib/compile/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compile/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compile/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/lib/compile/index.js
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.CompilationError = exports.compile = void 0;
|
|
4
|
-
var index_js_1 = require("./compile/index.js");
|
|
5
|
-
Object.defineProperty(exports, "compile", { enumerable: true, get: function () { return index_js_1.compile; } });
|
|
6
|
-
var compilation_error_js_1 = require("./compilation-error.js");
|
|
7
|
-
Object.defineProperty(exports, "CompilationError", { enumerable: true, get: function () { return compilation_error_js_1.CompilationError; } });
|
|
1
|
+
export { compile } from "./compile.js";
|
|
2
|
+
export { CompilationError } from "./compilation-error.js";
|
|
8
3
|
//# sourceMappingURL=index.js.map
|
package/lib/compile/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compile/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compile/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/lib/evaluate/evaluate.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.evaluate = evaluate;
|
|
4
|
-
const evaluation_error_js_1 = require("./evaluation-error.js");
|
|
5
|
-
function evaluate(source, options) {
|
|
1
|
+
import { EvaluationError } from "./evaluation-error.js";
|
|
2
|
+
export function evaluate(source, options) {
|
|
6
3
|
const { data = {}, components = {}, createElement } = options;
|
|
7
4
|
const h = createH(components, createElement || defaultCreateElement);
|
|
8
5
|
try {
|
|
@@ -11,17 +8,17 @@ function evaluate(source, options) {
|
|
|
11
8
|
}
|
|
12
9
|
catch (error) {
|
|
13
10
|
// We may have thrown an EvaluationError from createH()
|
|
14
|
-
if (error instanceof
|
|
11
|
+
if (error instanceof EvaluationError) {
|
|
15
12
|
throw error;
|
|
16
13
|
}
|
|
17
|
-
throw new
|
|
14
|
+
throw new EvaluationError(error instanceof Error ? error.message : "Evaluation failed");
|
|
18
15
|
}
|
|
19
16
|
}
|
|
20
17
|
function createH(components, createElement) {
|
|
21
18
|
return function h(type, props, ...children) {
|
|
22
19
|
const Component = components[type];
|
|
23
20
|
if (!Component) {
|
|
24
|
-
throw new
|
|
21
|
+
throw new EvaluationError(`component "${type}" is not allowed`);
|
|
25
22
|
}
|
|
26
23
|
return createElement(Component, props, ...children.flat().filter(Boolean));
|
|
27
24
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/evaluate/evaluate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/evaluate/evaluate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAkCxD,MAAM,UAAU,QAAQ,CAAU,MAAc,EAAE,OAA2B;IAC3E,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAE9D,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,IAAI,oBAAoB,CAAC,CAAC;IAErE,IAAI,CAAC;QACH,2EAA2E;QAC3E,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAM,CAAC;IACvF,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,uDAAuD;QACvD,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACrC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,IAAI,eAAe,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC1F,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,UAAyB,EAAE,aAA4B;IACtE,OAAO,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ;QACxC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,eAAe,CAAC,cAAc,IAAI,kBAAkB,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,GAAa;IACnC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,KAAU;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAoB,EAAE,QAAmB,EAAE,EAAE,GAAG,QAAe;IAC3F,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,KAAK;QACL,QAAQ;KACT,CAAC;AACJ,CAAC"}
|