jsxpression 0.2.0 → 0.2.2

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.
@@ -192,8 +192,8 @@ function emitExpression(node, localFunctions) {
192
192
  case "MemberExpression": {
193
193
  const obj = emitExpression(node.object, localFunctions);
194
194
  const prop = node.computed
195
- ? `[${emitExpression(node.property, localFunctions)}]`
196
- : `.${getAstKeyString(node.property)}`;
195
+ ? `${node.optional ? "?." : ""}[${emitExpression(node.property, localFunctions)}]`
196
+ : `${node.optional ? "?." : "."}${getAstKeyString(node.property)}`;
197
197
  return `${obj}${prop}`;
198
198
  }
199
199
  case "CallExpression": {
@@ -206,8 +206,10 @@ function emitExpression(node, localFunctions) {
206
206
  return emitExpression(argument, localFunctions);
207
207
  })
208
208
  .join(", ");
209
- return `${callee}(${args})`;
209
+ return `${callee}${node.optional ? "?." : ""}(${args})`;
210
210
  }
211
+ case "ChainExpression":
212
+ return emitExpression(node.expression, localFunctions);
211
213
  case "ArrowFunctionExpression": {
212
214
  const params = node.params.map((param) => emitExpression(param, localFunctions)).join(", ");
213
215
  const body = emitExpression(node.body, localFunctions);
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/compile/compile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/compile/compile.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "jsxpression",
3
- "version": "0.2.0",
4
- "gitHead": "d98928b5dbdc9fd2eab49956969f56e27d57aeb2",
3
+ "version": "0.2.2",
4
+ "gitHead": "0e5030d4f7073ac7cbfc9c4c7d9f8ff1f1a18e24",
5
5
  "description": "Validate and safely render JSX expressions",
6
6
  "license": "MIT",
7
7
  "author": "Divid AB <info@divid.se>",
@@ -19,13 +19,13 @@
19
19
  "exports": {
20
20
  ".": "./lib/index.js"
21
21
  },
22
+ "scripts": {
23
+ "test": "vitest run src/**/*.test.ts"
24
+ },
22
25
  "dependencies": {
23
26
  "acorn": "8.15.0",
24
27
  "acorn-typescript": "1.4.13",
25
28
  "acorn-walk": "8.3.4",
26
29
  "zod": "^4.4.3"
27
- },
28
- "scripts": {
29
- "test": "vitest run src/**/*.test.ts"
30
30
  }
31
- }
31
+ }
@@ -321,58 +321,62 @@ describe("analyze - consolidated tests", () => {
321
321
  const requiredParams = methodDef.params.filter((p) => p.required);
322
322
  const nonVariadicParams = methodDef.params.filter((p) => !p.variadic);
323
323
 
324
- if (requiredParams.length > 0) {
325
- it(`should validate ${displayName} minimum parameters`, () => {
326
- let testExpression: string = "";
327
-
328
- if (objectName === "Math") {
329
- testExpression = `<Text>{Math.${methodName}()}</Text>`;
330
- } else if (objectName === "Array.prototype") {
331
- testExpression = `<Text>{items.${methodName}()}</Text>`;
332
- } else if (objectName === "String.prototype") {
333
- testExpression = `<Text>{text.${methodName}()}</Text>`;
334
- } else {
335
- testExpression = `<Text>{${objectName}.${methodName}()}</Text>`;
336
- }
324
+ it(`should validate ${displayName} minimum parameters`, () => {
325
+ if (requiredParams.length === 0) {
326
+ return;
327
+ }
337
328
 
338
- const ast = parse(testExpression);
339
- const result = analyze(ast, baseSchema);
340
- expect(result.hasWarnings).toBe(true);
341
- expect(result.warnings[0].message).toContain(`${displayName} expects at least ${requiredParams.length} parameter`);
342
- });
343
- }
329
+ let testExpression: string = "";
330
+
331
+ if (objectName === "Math") {
332
+ testExpression = `<Text>{Math.${methodName}()}</Text>`;
333
+ } else if (objectName === "Array.prototype") {
334
+ testExpression = `<Text>{items.${methodName}()}</Text>`;
335
+ } else if (objectName === "String.prototype") {
336
+ testExpression = `<Text>{text.${methodName}()}</Text>`;
337
+ } else {
338
+ testExpression = `<Text>{${objectName}.${methodName}()}</Text>`;
339
+ }
340
+
341
+ const ast = parse(testExpression);
342
+ const result = analyze(ast, baseSchema);
343
+ expect(result.hasWarnings).toBe(true);
344
+ expect(result.warnings[0].message).toContain(`${displayName} expects at least ${requiredParams.length} parameter`);
345
+ });
344
346
 
345
347
  // Test maximum parameters for non-variadic methods
346
- if (nonVariadicParams.length === methodDef.params.length && methodDef.params.length > 0) {
347
- it(`should validate ${displayName} maximum parameters`, () => {
348
- // Create a call with too many parameters
349
- const maxParams = methodDef.params.length;
350
- const extraParams = Array(maxParams + 2)
351
- .fill("1")
352
- .join(", ");
353
-
354
- let testExpression: string = "";
355
-
356
- if (objectName === "Math") {
357
- testExpression = `<Text>{Math.${methodName}(${extraParams})}</Text>`;
358
- } else if (objectName === "Array.prototype") {
359
- if (methodName === "map" || methodName === "filter") {
360
- testExpression = `<Text>{items.${methodName}(x => x, {}, ${extraParams})}</Text>`;
361
- } else {
362
- testExpression = `<Text>{items.${methodName}(${extraParams})}</Text>`;
363
- }
364
- } else if (objectName === "String.prototype") {
365
- testExpression = `<Text>{text.${methodName}(${extraParams})}</Text>`;
348
+ it(`should validate ${displayName} maximum parameters`, () => {
349
+ if (!(nonVariadicParams.length === methodDef.params.length && methodDef.params.length > 0)) {
350
+ return;
351
+ }
352
+
353
+ // Create a call with too many parameters
354
+ const maxParams = methodDef.params.length;
355
+ const extraParams = Array(maxParams + 2)
356
+ .fill("1")
357
+ .join(", ");
358
+
359
+ let testExpression: string = "";
360
+
361
+ if (objectName === "Math") {
362
+ testExpression = `<Text>{Math.${methodName}(${extraParams})}</Text>`;
363
+ } else if (objectName === "Array.prototype") {
364
+ if (methodName === "map" || methodName === "filter") {
365
+ testExpression = `<Text>{items.${methodName}(x => x, {}, ${extraParams})}</Text>`;
366
366
  } else {
367
- testExpression = `<Text>{${objectName}.${methodName}(${extraParams})}</Text>`;
367
+ testExpression = `<Text>{items.${methodName}(${extraParams})}</Text>`;
368
368
  }
369
+ } else if (objectName === "String.prototype") {
370
+ testExpression = `<Text>{text.${methodName}(${extraParams})}</Text>`;
371
+ } else {
372
+ testExpression = `<Text>{${objectName}.${methodName}(${extraParams})}</Text>`;
373
+ }
369
374
 
370
- const ast = parse(testExpression);
371
- const result = analyze(ast, baseSchema);
372
- expect(result.hasWarnings).toBe(true);
373
- expect(result.warnings[0].message).toContain(`${displayName} expects at most ${maxParams} parameter`);
374
- });
375
- }
375
+ const ast = parse(testExpression);
376
+ const result = analyze(ast, baseSchema);
377
+ expect(result.hasWarnings).toBe(true);
378
+ expect(result.warnings[0].message).toContain(`${displayName} expects at most ${maxParams} parameter`);
379
+ });
376
380
  });
377
381
  });
378
382
  });
@@ -280,10 +280,9 @@ describe("compile", () => {
280
280
  });
281
281
  });
282
282
 
283
- // TODO: Add ChainExpression support for optional chaining (?.)
284
- // it("should compile nested object access with conditionals", () => {
285
- // const ast = parse("<div>{props.user?.profile?.name || 'Anonymous'}</div>");
286
- // const result = compile(ast);
287
- // expect(result).toBe('"use strict";return h("div", null, ((props.user?.profile?.name) || "Anonymous"));');
288
- // });
283
+ it("should compile nested object access with conditionals", () => {
284
+ const ast = parse("<div>{props.user?.profile?.name || 'Anonymous'}</div>");
285
+ const result = compile(ast);
286
+ expect(result).toBe('"use strict";return h("div", null, (props.user?.profile?.name || "Anonymous"));');
287
+ });
289
288
  });
@@ -242,8 +242,8 @@ function emitExpression(node: CompilableExpression, localFunctions: Set<string>)
242
242
  case "MemberExpression": {
243
243
  const obj = emitExpression(node.object, localFunctions);
244
244
  const prop: string = node.computed
245
- ? `[${emitExpression(node.property, localFunctions)}]`
246
- : `.${getAstKeyString(node.property as Identifier | Literal)}`;
245
+ ? `${node.optional ? "?." : ""}[${emitExpression(node.property, localFunctions)}]`
246
+ : `${node.optional ? "?." : "."}${getAstKeyString(node.property as Identifier | Literal)}`;
247
247
  return `${obj}${prop}`;
248
248
  }
249
249
  case "CallExpression": {
@@ -256,8 +256,10 @@ function emitExpression(node: CompilableExpression, localFunctions: Set<string>)
256
256
  return emitExpression(argument, localFunctions);
257
257
  })
258
258
  .join(", ");
259
- return `${callee}(${args})`;
259
+ return `${callee}${node.optional ? "?." : ""}(${args})`;
260
260
  }
261
+ case "ChainExpression":
262
+ return emitExpression(node.expression, localFunctions);
261
263
  case "ArrowFunctionExpression": {
262
264
  const params = node.params.map((param) => emitExpression(param as CompilableExpression, localFunctions)).join(", ");
263
265
  const body = emitExpression(node.body as CompilableExpression, localFunctions);
@@ -1,8 +1,9 @@
1
+ /* oxlint-disable unicorn/consistent-function-scoping -- each test's mock component is colocated with the test it belongs to; hoisting them to module scope would force artificial unique names and separate them from their usage */
1
2
  import { describe, it, expect, vi } from "vitest";
2
3
  import { compile } from "../compile/index.js";
3
4
  import { parse } from "../parse/index.js";
4
5
  import type { Schema } from "../schema.js";
5
- import { evaluate, type Component, type EvaluateOptions, type PropsDict } from "./evaluate.js";
6
+ import { evaluate, type Component, type CreateElement, type EvaluateOptions, type Node as EvalNode, type PropsDict } from "./evaluate.js";
6
7
  import { EvaluationError } from "./evaluation-error.js";
7
8
 
8
9
  type Node = {
@@ -76,7 +77,7 @@ describe("evaluate", () => {
76
77
  expect(() => {
77
78
  // props.nested's shape isn't known statically; this test only cares that mutating it throws once frozen.
78
79
  (props.nested as Record<string, unknown>).value = 999;
79
- }).toThrow();
80
+ }).toThrow(TypeError);
80
81
  return { type: "Test", props, children: [] };
81
82
  };
82
83
 
@@ -269,7 +270,7 @@ describe("evaluate", () => {
269
270
  });
270
271
 
271
272
  it("should pass correct parameters to custom createElement", () => {
272
- const mockCreateElement = vi.fn();
273
+ const mockCreateElement = vi.fn<CreateElement<EvalNode>>();
273
274
 
274
275
  compileAndEvaluate("<Test x={10}>Hello</Test>", {
275
276
  components: { Test: () => ({ type: "Test", props: {}, children: [] }) },
@@ -2,6 +2,15 @@ import { describe, it, expect } from "vitest";
2
2
  import { ParseError } from "./parse-error.js";
3
3
  import { parse } from "./parse.js";
4
4
 
5
+ function getThrownError(fn: () => unknown): unknown {
6
+ try {
7
+ fn();
8
+ } catch (error) {
9
+ return error;
10
+ }
11
+ throw new Error("Expected function to throw");
12
+ }
13
+
5
14
  describe("parse", () => {
6
15
  it("should parse valid JSX element", () => {
7
16
  const result = parse("<Text x={10}>Hello</Text>");
@@ -20,12 +29,6 @@ describe("parse", () => {
20
29
 
21
30
  it("should throw ParseError with position for syntax error", () => {
22
31
  expect(() => parse("<Text>Unclosed")).toThrow(ParseError);
23
-
24
- try {
25
- parse("<Text>Unclosed");
26
- } catch (error) {
27
- expect(error).toBeInstanceOf(ParseError);
28
- }
29
32
  });
30
33
 
31
34
  it("should parse nested JSX", () => {
@@ -78,17 +81,12 @@ describe("parse", () => {
78
81
  });
79
82
 
80
83
  it("should preserve location information in errors", () => {
81
- try {
82
- parse("<Text>Unclosed");
83
- throw new Error("Should have thrown ParseError");
84
- } catch (error) {
85
- expect(error).toBeInstanceOf(ParseError);
86
- if (error instanceof ParseError && error.loc) {
87
- expect(error.loc).toBeDefined();
88
- expect(error.loc.line).toBe(1);
89
- expect(error.loc.column).toBe(6);
90
- }
91
- }
84
+ const error = getThrownError(() => parse("<Text>Unclosed"));
85
+
86
+ expect(error).toBeInstanceOf(ParseError);
87
+ expect((error as ParseError).loc).toBeDefined();
88
+ expect((error as ParseError).loc?.line).toBe(1);
89
+ expect((error as ParseError).loc?.column).toBe(6);
92
90
  });
93
91
 
94
92
  it("should handle invalid JSX syntax", () => {
@@ -1,3 +1,4 @@
1
+ /* oxlint-disable unicorn/consistent-function-scoping -- each test's mock component is colocated with the test it belongs to; hoisting them to module scope would force artificial unique names and separate them from their usage */
1
2
  import { describe, expect, it } from "vitest";
2
3
  import { AnalysisError } from "./analyze/index.js";
3
4
  import { EvaluationError } from "./evaluate/index.js";