@typespec-dev/emitter-typebox 0.1.0 → 0.2.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.
Files changed (90) hide show
  1. package/dist/src/components/TypeBoxSchemaDeclaration.d.ts.map +1 -1
  2. package/dist/src/components/TypeBoxSchemaDeclaration.js +20 -4
  3. package/dist/src/components/TypeBoxSchemaDeclaration.js.map +1 -1
  4. package/dist/src/components/TypeBoxSchemaDeclaration.jsx +22 -6
  5. package/dist/src/components/TypeBoxSchemaDeclaration.jsx.map +1 -1
  6. package/dist/src/emitter.d.ts.map +1 -1
  7. package/dist/src/emitter.js +1 -2
  8. package/dist/src/emitter.js.map +1 -1
  9. package/dist/src/emitter.jsx +1 -2
  10. package/dist/src/emitter.jsx.map +1 -1
  11. package/dist/src/external-packages/typebox.d.ts +1 -0
  12. package/dist/src/external-packages/typebox.d.ts.map +1 -1
  13. package/dist/src/external-packages/typebox.js +1 -1
  14. package/dist/src/external-packages/typebox.js.map +1 -1
  15. package/dist/src/typeboxBaseSchema.d.ts.map +1 -1
  16. package/dist/src/typeboxBaseSchema.js +154 -4
  17. package/dist/src/typeboxBaseSchema.js.map +1 -1
  18. package/dist/src/typeboxBaseSchema.jsx +88 -3
  19. package/dist/src/typeboxBaseSchema.jsx.map +1 -1
  20. package/dist/test/arrays.test.d.ts +2 -0
  21. package/dist/test/arrays.test.d.ts.map +1 -0
  22. package/dist/test/arrays.test.js +65 -0
  23. package/dist/test/arrays.test.js.map +1 -0
  24. package/dist/test/arrays.test.jsx +42 -0
  25. package/dist/test/arrays.test.jsx.map +1 -0
  26. package/dist/test/dictionaries.test.d.ts +2 -0
  27. package/dist/test/dictionaries.test.d.ts.map +1 -0
  28. package/dist/test/dictionaries.test.js +50 -0
  29. package/dist/test/dictionaries.test.js.map +1 -0
  30. package/dist/test/dictionaries.test.jsx +33 -0
  31. package/dist/test/dictionaries.test.jsx.map +1 -0
  32. package/dist/test/emitter/enums.test.d.ts +2 -0
  33. package/dist/test/emitter/enums.test.d.ts.map +1 -0
  34. package/dist/test/emitter/enums.test.js +48 -0
  35. package/dist/test/emitter/enums.test.js.map +1 -0
  36. package/dist/test/emitter/enums.test.jsx +42 -0
  37. package/dist/test/emitter/enums.test.jsx.map +1 -0
  38. package/dist/test/emitter/models.test.d.ts +2 -0
  39. package/dist/test/emitter/models.test.d.ts.map +1 -0
  40. package/dist/test/emitter/models.test.js +36 -0
  41. package/dist/test/emitter/models.test.js.map +1 -0
  42. package/dist/test/emitter/models.test.jsx +32 -0
  43. package/dist/test/emitter/models.test.jsx.map +1 -0
  44. package/dist/test/emitter/records.test.d.ts +2 -0
  45. package/dist/test/emitter/records.test.d.ts.map +1 -0
  46. package/dist/test/emitter/records.test.js +18 -0
  47. package/dist/test/emitter/records.test.js.map +1 -0
  48. package/dist/test/emitter/records.test.jsx +16 -0
  49. package/dist/test/emitter/records.test.jsx.map +1 -0
  50. package/dist/test/emitter/unions.test.d.ts +2 -0
  51. package/dist/test/emitter/unions.test.d.ts.map +1 -0
  52. package/dist/test/emitter/unions.test.js +37 -0
  53. package/dist/test/emitter/unions.test.js.map +1 -0
  54. package/dist/test/emitter/unions.test.jsx +33 -0
  55. package/dist/test/emitter/unions.test.jsx.map +1 -0
  56. package/dist/test/enums.test.d.ts +2 -0
  57. package/dist/test/enums.test.d.ts.map +1 -0
  58. package/dist/test/enums.test.js +53 -0
  59. package/dist/test/enums.test.js.map +1 -0
  60. package/dist/test/enums.test.jsx +40 -0
  61. package/dist/test/enums.test.jsx.map +1 -0
  62. package/dist/test/models.test.d.ts +2 -0
  63. package/dist/test/models.test.d.ts.map +1 -0
  64. package/dist/test/models.test.js +109 -0
  65. package/dist/test/models.test.js.map +1 -0
  66. package/dist/test/models.test.jsx +71 -0
  67. package/dist/test/models.test.jsx.map +1 -0
  68. package/dist/test/nullable.test.d.ts +2 -0
  69. package/dist/test/nullable.test.d.ts.map +1 -0
  70. package/dist/test/nullable.test.js +46 -0
  71. package/dist/test/nullable.test.js.map +1 -0
  72. package/dist/test/nullable.test.jsx +33 -0
  73. package/dist/test/nullable.test.jsx.map +1 -0
  74. package/dist/test/optionality.test.d.ts +2 -0
  75. package/dist/test/optionality.test.d.ts.map +1 -0
  76. package/dist/test/optionality.test.js +61 -0
  77. package/dist/test/optionality.test.js.map +1 -0
  78. package/dist/test/optionality.test.jsx +44 -0
  79. package/dist/test/optionality.test.jsx.map +1 -0
  80. package/dist/test/unions.test.d.ts +2 -0
  81. package/dist/test/unions.test.d.ts.map +1 -0
  82. package/dist/test/unions.test.js +51 -0
  83. package/dist/test/unions.test.js.map +1 -0
  84. package/dist/test/unions.test.jsx +38 -0
  85. package/dist/test/unions.test.jsx.map +1 -0
  86. package/dist/test/utils.js +4 -1
  87. package/dist/test/utils.js.map +1 -1
  88. package/dist/test/utils.jsx +2 -2
  89. package/dist/test/utils.jsx.map +1 -1
  90. package/package.json +1 -1
@@ -0,0 +1,109 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { render } from '@alloy-js/core';
3
+ import { createTSNamePolicy, SourceFile } from '@alloy-js/typescript';
4
+ import { Output } from '@typespec/emitter-framework';
5
+ import { describe, expect, it } from 'vitest';
6
+ import { TypeBoxSchema } from "../src/components/TypeBoxSchema.js";
7
+ import { TypeBoxSchemaDeclaration } from "../src/components/TypeBoxSchemaDeclaration.js";
8
+ import { typebox } from '../src/index.js';
9
+ import { createTestRunner, expectRender } from "./utils.js";
10
+ describe('models', () => {
11
+ it('works with empty model', async () => {
12
+ const runner = await createTestRunner();
13
+ const {
14
+ EmptyModel
15
+ } = await runner.compile(`
16
+ @test model EmptyModel {}
17
+ `);
18
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
19
+ type: EmptyModel
20
+ }), 'Type.Object({})');
21
+ });
22
+ it('works with simple model', async () => {
23
+ const runner = await createTestRunner();
24
+ const {
25
+ SimpleModel
26
+ } = await runner.compile(`
27
+ @test model SimpleModel {
28
+ name: string;
29
+ age: int32;
30
+ }
31
+ `);
32
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
33
+ type: SimpleModel
34
+ }), 'Type.Object({\n name: Type.String(),\n age: Type.Integer(),\n})');
35
+ });
36
+ it('works with optional properties', async () => {
37
+ const runner = await createTestRunner();
38
+ const {
39
+ OptModel
40
+ } = await runner.compile(`
41
+ @test model OptModel {
42
+ required: string;
43
+ optional?: int32;
44
+ }
45
+ `);
46
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
47
+ type: OptModel
48
+ }), 'Type.Object({\n required: Type.String(),\n optional: Type.Optional(Type.Integer()),\n})');
49
+ });
50
+ it('works with nested model reference', async () => {
51
+ const runner = await createTestRunner();
52
+ const {
53
+ Child,
54
+ Parent
55
+ } = await runner.compile(`
56
+ @test model Child {
57
+ value: string;
58
+ }
59
+
60
+ @test model Parent {
61
+ child: Child;
62
+ }
63
+ `);
64
+ const template = _$createComponent(Output, {
65
+ get program() {
66
+ return runner.program;
67
+ },
68
+ get namePolicy() {
69
+ return createTSNamePolicy();
70
+ },
71
+ externals: [typebox],
72
+ get children() {
73
+ return _$createComponent(SourceFile, {
74
+ path: "test.ts",
75
+ get children() {
76
+ return [_$createComponent(TypeBoxSchemaDeclaration, {
77
+ type: Child,
78
+ "export": true
79
+ }), '\n', _$createComponent(TypeBoxSchemaDeclaration, {
80
+ type: Parent,
81
+ "export": true
82
+ })];
83
+ }
84
+ });
85
+ }
86
+ });
87
+ const output = render(template, {
88
+ insertFinalNewLine: false
89
+ });
90
+ const contents = output.contents[0].contents;
91
+ expect(contents).toContain('child: child');
92
+ });
93
+ it('works with literal property types', async () => {
94
+ const runner = await createTestRunner();
95
+ const {
96
+ LitModel
97
+ } = await runner.compile(`
98
+ @test model LitModel {
99
+ status: "active";
100
+ count: 42;
101
+ flag: true;
102
+ }
103
+ `);
104
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
105
+ type: LitModel
106
+ }), 'Type.Object({\n status: Type.Literal("active"),\n count: Type.Literal(42),\n flag: Type.Literal(true),\n})');
107
+ });
108
+ });
109
+ //# sourceMappingURL=models.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["render","createTSNamePolicy","SourceFile","Output","describe","expect","it","TypeBoxSchema","TypeBoxSchemaDeclaration","typebox","createTestRunner","expectRender","runner","EmptyModel","compile","program","_$createComponent","type","SimpleModel","OptModel","Child","Parent","template","namePolicy","externals","children","path","output","insertFinalNewLine","contents","toContain","LitModel"],"sources":["../../test/models.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,71 @@
1
+ import { render } from '@alloy-js/core';
2
+ import { createTSNamePolicy, SourceFile } from '@alloy-js/typescript';
3
+ import { Output } from '@typespec/emitter-framework';
4
+ import { describe, expect, it } from 'vitest';
5
+ import { TypeBoxSchema } from '../src/components/TypeBoxSchema.jsx';
6
+ import { TypeBoxSchemaDeclaration } from '../src/components/TypeBoxSchemaDeclaration.jsx';
7
+ import { typebox } from '../src/index.js';
8
+ import { createTestRunner, expectRender } from './utils.jsx';
9
+ describe('models', () => {
10
+ it('works with empty model', async () => {
11
+ const runner = await createTestRunner();
12
+ const { EmptyModel } = (await runner.compile(`
13
+ @test model EmptyModel {}
14
+ `));
15
+ expectRender(runner.program, <TypeBoxSchema type={EmptyModel}/>, 'Type.Object({})');
16
+ });
17
+ it('works with simple model', async () => {
18
+ const runner = await createTestRunner();
19
+ const { SimpleModel } = (await runner.compile(`
20
+ @test model SimpleModel {
21
+ name: string;
22
+ age: int32;
23
+ }
24
+ `));
25
+ expectRender(runner.program, <TypeBoxSchema type={SimpleModel}/>, 'Type.Object({\n name: Type.String(),\n age: Type.Integer(),\n})');
26
+ });
27
+ it('works with optional properties', async () => {
28
+ const runner = await createTestRunner();
29
+ const { OptModel } = (await runner.compile(`
30
+ @test model OptModel {
31
+ required: string;
32
+ optional?: int32;
33
+ }
34
+ `));
35
+ expectRender(runner.program, <TypeBoxSchema type={OptModel}/>, 'Type.Object({\n required: Type.String(),\n optional: Type.Optional(Type.Integer()),\n})');
36
+ });
37
+ it('works with nested model reference', async () => {
38
+ const runner = await createTestRunner();
39
+ const { Child, Parent } = (await runner.compile(`
40
+ @test model Child {
41
+ value: string;
42
+ }
43
+
44
+ @test model Parent {
45
+ child: Child;
46
+ }
47
+ `));
48
+ const template = (<Output program={runner.program} namePolicy={createTSNamePolicy()} externals={[typebox]}>
49
+ <SourceFile path="test.ts">
50
+ <TypeBoxSchemaDeclaration type={Child} export/>
51
+ {'\n'}
52
+ <TypeBoxSchemaDeclaration type={Parent} export/>
53
+ </SourceFile>
54
+ </Output>);
55
+ const output = render(template, { insertFinalNewLine: false });
56
+ const contents = output.contents[0].contents;
57
+ expect(contents).toContain('child: child');
58
+ });
59
+ it('works with literal property types', async () => {
60
+ const runner = await createTestRunner();
61
+ const { LitModel } = (await runner.compile(`
62
+ @test model LitModel {
63
+ status: "active";
64
+ count: 42;
65
+ flag: true;
66
+ }
67
+ `));
68
+ expectRender(runner.program, <TypeBoxSchema type={LitModel}/>, 'Type.Object({\n status: Type.Literal("active"),\n count: Type.Literal(42),\n flag: Type.Literal(true),\n})');
69
+ });
70
+ });
71
+ //# sourceMappingURL=models.test.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.test.jsx","sourceRoot":"","sources":["../../test/models.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=nullable.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nullable.test.d.ts","sourceRoot":"","sources":["../../test/nullable.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { describe, it } from 'vitest';
3
+ import { TypeBoxSchema } from "../src/components/TypeBoxSchema.js";
4
+ import { createTestRunner, expectRender } from "./utils.js";
5
+ describe('nullable', () => {
6
+ it('works with nullable string property', async () => {
7
+ const runner = await createTestRunner();
8
+ const {
9
+ NullModel
10
+ } = await runner.compile(`
11
+ @test model NullModel {
12
+ name: string | null;
13
+ }
14
+ `);
15
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
16
+ type: NullModel
17
+ }), 'Type.Object({\n name: Type.Union([Type.String(), Type.Null()]),\n})');
18
+ });
19
+ it('works with nullable integer property', async () => {
20
+ const runner = await createTestRunner();
21
+ const {
22
+ NullInt
23
+ } = await runner.compile(`
24
+ @test model NullInt {
25
+ count: int32 | null;
26
+ }
27
+ `);
28
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
29
+ type: NullInt
30
+ }), 'Type.Object({\n count: Type.Union([Type.Integer(), Type.Null()]),\n})');
31
+ });
32
+ it('works with optional nullable property', async () => {
33
+ const runner = await createTestRunner();
34
+ const {
35
+ OptNull
36
+ } = await runner.compile(`
37
+ @test model OptNull {
38
+ value?: string | null;
39
+ }
40
+ `);
41
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
42
+ type: OptNull
43
+ }), 'Type.Object({\n value: Type.Optional(Type.Union([Type.String(), Type.Null()])),\n})');
44
+ });
45
+ });
46
+ //# sourceMappingURL=nullable.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","it","TypeBoxSchema","createTestRunner","expectRender","runner","NullModel","compile","program","_$createComponent","type","NullInt","OptNull"],"sources":["../../test/nullable.test.tsx"],"sourcesContent":[null],"mappings":";AACA,SAASA,QAAQ,EAAEC,EAAE,QAAQ,QAAQ;AACrC,SAASC,aAAa;AACtB,SAASC,gBAAgB,EAAEC,YAAY;AAEvCJ,QAAQ,CAAC,UAAU,EAAE,MAAM;EACzBC,EAAE,CAAC,qCAAqC,EAAE,YAAY;IACpD,MAAMI,MAAM,GAAG,MAAMF,gBAAgB,CAAC,CAAC;IACvC,MAAM;MAAEG;IAAU,CAAC,GAAI,MAAMD,MAAM,CAACE,OAAO,CAAC;AAChD;AACA;AACA;AACA,KAAK,CAA2B;IAE5BH,YAAY,CACVC,MAAM,CAACG,OAAO,EAAAC,iBAAA,CACbP,aAAa;MAACQ,IAAI,EAAEJ;IAAS,IAC9B,sEACF,CAAC;EACH,CAAC,CAAC;EAEFL,EAAE,CAAC,sCAAsC,EAAE,YAAY;IACrD,MAAMI,MAAM,GAAG,MAAMF,gBAAgB,CAAC,CAAC;IACvC,MAAM;MAAEQ;IAAQ,CAAC,GAAI,MAAMN,MAAM,CAACE,OAAO,CAAC;AAC9C;AACA;AACA;AACA,KAAK,CAA2B;IAE5BH,YAAY,CACVC,MAAM,CAACG,OAAO,EAAAC,iBAAA,CACbP,aAAa;MAACQ,IAAI,EAAEC;IAAO,IAC5B,wEACF,CAAC;EACH,CAAC,CAAC;EAEFV,EAAE,CAAC,uCAAuC,EAAE,YAAY;IACtD,MAAMI,MAAM,GAAG,MAAMF,gBAAgB,CAAC,CAAC;IACvC,MAAM;MAAES;IAAQ,CAAC,GAAI,MAAMP,MAAM,CAACE,OAAO,CAAC;AAC9C;AACA;AACA;AACA,KAAK,CAA2B;IAE5BH,YAAY,CACVC,MAAM,CAACG,OAAO,EAAAC,iBAAA,CACbP,aAAa;MAACQ,IAAI,EAAEE;IAAO,IAC5B,sFACF,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ import { describe, it } from 'vitest';
2
+ import { TypeBoxSchema } from '../src/components/TypeBoxSchema.jsx';
3
+ import { createTestRunner, expectRender } from './utils.jsx';
4
+ describe('nullable', () => {
5
+ it('works with nullable string property', async () => {
6
+ const runner = await createTestRunner();
7
+ const { NullModel } = (await runner.compile(`
8
+ @test model NullModel {
9
+ name: string | null;
10
+ }
11
+ `));
12
+ expectRender(runner.program, <TypeBoxSchema type={NullModel}/>, 'Type.Object({\n name: Type.Union([Type.String(), Type.Null()]),\n})');
13
+ });
14
+ it('works with nullable integer property', async () => {
15
+ const runner = await createTestRunner();
16
+ const { NullInt } = (await runner.compile(`
17
+ @test model NullInt {
18
+ count: int32 | null;
19
+ }
20
+ `));
21
+ expectRender(runner.program, <TypeBoxSchema type={NullInt}/>, 'Type.Object({\n count: Type.Union([Type.Integer(), Type.Null()]),\n})');
22
+ });
23
+ it('works with optional nullable property', async () => {
24
+ const runner = await createTestRunner();
25
+ const { OptNull } = (await runner.compile(`
26
+ @test model OptNull {
27
+ value?: string | null;
28
+ }
29
+ `));
30
+ expectRender(runner.program, <TypeBoxSchema type={OptNull}/>, 'Type.Object({\n value: Type.Optional(Type.Union([Type.String(), Type.Null()])),\n})');
31
+ });
32
+ });
33
+ //# sourceMappingURL=nullable.test.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nullable.test.jsx","sourceRoot":"","sources":["../../test/nullable.test.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE7D,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;;;;KAI3C,CAAC,CAA0B,CAAC;QAE7B,YAAY,CACV,MAAM,CAAC,OAAO,EACd,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,EAAG,EAClC,sEAAsE,CACvE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;;;;KAIzC,CAAC,CAA0B,CAAC;QAE7B,YAAY,CACV,MAAM,CAAC,OAAO,EACd,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAG,EAChC,wEAAwE,CACzE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;;;;KAIzC,CAAC,CAA0B,CAAC;QAE7B,YAAY,CACV,MAAM,CAAC,OAAO,EACd,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAG,EAChC,sFAAsF,CACvF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=optionality.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optionality.test.d.ts","sourceRoot":"","sources":["../../test/optionality.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,61 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { describe, it } from 'vitest';
3
+ import { TypeBoxSchema } from "../src/components/TypeBoxSchema.js";
4
+ import { createTestRunner, expectRender } from "./utils.js";
5
+ describe('optionality', () => {
6
+ it('wraps optional string with Type.Optional', async () => {
7
+ const runner = await createTestRunner();
8
+ const {
9
+ OptModel
10
+ } = await runner.compile(`
11
+ @test model OptModel {
12
+ name?: string;
13
+ }
14
+ `);
15
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
16
+ type: OptModel
17
+ }), 'Type.Object({\n name: Type.Optional(Type.String()),\n})');
18
+ });
19
+ it('wraps optional integer with Type.Optional', async () => {
20
+ const runner = await createTestRunner();
21
+ const {
22
+ OptInt
23
+ } = await runner.compile(`
24
+ @test model OptInt {
25
+ count?: int32;
26
+ }
27
+ `);
28
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
29
+ type: OptInt
30
+ }), 'Type.Object({\n count: Type.Optional(Type.Integer()),\n})');
31
+ });
32
+ it('does not wrap required properties', async () => {
33
+ const runner = await createTestRunner();
34
+ const {
35
+ ReqModel
36
+ } = await runner.compile(`
37
+ @test model ReqModel {
38
+ name: string;
39
+ }
40
+ `);
41
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
42
+ type: ReqModel
43
+ }), 'Type.Object({\n name: Type.String(),\n})');
44
+ });
45
+ it('handles mix of required and optional', async () => {
46
+ const runner = await createTestRunner();
47
+ const {
48
+ MixedModel
49
+ } = await runner.compile(`
50
+ @test model MixedModel {
51
+ required: string;
52
+ optional?: int32;
53
+ alsoRequired: boolean;
54
+ }
55
+ `);
56
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
57
+ type: MixedModel
58
+ }), 'Type.Object({\n required: Type.String(),\n optional: Type.Optional(Type.Integer()),\n alsoRequired: Type.Boolean(),\n})');
59
+ });
60
+ });
61
+ //# sourceMappingURL=optionality.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","it","TypeBoxSchema","createTestRunner","expectRender","runner","OptModel","compile","program","_$createComponent","type","OptInt","ReqModel","MixedModel"],"sources":["../../test/optionality.test.tsx"],"sourcesContent":[null],"mappings":";AACA,SAASA,QAAQ,EAAEC,EAAE,QAAQ,QAAQ;AACrC,SAASC,aAAa;AACtB,SAASC,gBAAgB,EAAEC,YAAY;AAEvCJ,QAAQ,CAAC,aAAa,EAAE,MAAM;EAC5BC,EAAE,CAAC,0CAA0C,EAAE,YAAY;IACzD,MAAMI,MAAM,GAAG,MAAMF,gBAAgB,CAAC,CAAC;IACvC,MAAM;MAAEG;IAAS,CAAC,GAAI,MAAMD,MAAM,CAACE,OAAO,CAAC;AAC/C;AACA;AACA;AACA,KAAK,CAA2B;IAE5BH,YAAY,CACVC,MAAM,CAACG,OAAO,EAAAC,iBAAA,CACbP,aAAa;MAACQ,IAAI,EAAEJ;IAAQ,IAC7B,0DACF,CAAC;EACH,CAAC,CAAC;EAEFL,EAAE,CAAC,2CAA2C,EAAE,YAAY;IAC1D,MAAMI,MAAM,GAAG,MAAMF,gBAAgB,CAAC,CAAC;IACvC,MAAM;MAAEQ;IAAO,CAAC,GAAI,MAAMN,MAAM,CAACE,OAAO,CAAC;AAC7C;AACA;AACA;AACA,KAAK,CAA2B;IAE5BH,YAAY,CACVC,MAAM,CAACG,OAAO,EAAAC,iBAAA,CACbP,aAAa;MAACQ,IAAI,EAAEC;IAAM,IAC3B,4DACF,CAAC;EACH,CAAC,CAAC;EAEFV,EAAE,CAAC,mCAAmC,EAAE,YAAY;IAClD,MAAMI,MAAM,GAAG,MAAMF,gBAAgB,CAAC,CAAC;IACvC,MAAM;MAAES;IAAS,CAAC,GAAI,MAAMP,MAAM,CAACE,OAAO,CAAC;AAC/C;AACA;AACA;AACA,KAAK,CAA2B;IAE5BH,YAAY,CACVC,MAAM,CAACG,OAAO,EAAAC,iBAAA,CACbP,aAAa;MAACQ,IAAI,EAAEE;IAAQ,IAC7B,2CACF,CAAC;EACH,CAAC,CAAC;EAEFX,EAAE,CAAC,sCAAsC,EAAE,YAAY;IACrD,MAAMI,MAAM,GAAG,MAAMF,gBAAgB,CAAC,CAAC;IACvC,MAAM;MAAEU;IAAW,CAAC,GAAI,MAAMR,MAAM,CAACE,OAAO,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA,KAAK,CAA2B;IAE5BH,YAAY,CACVC,MAAM,CAACG,OAAO,EAAAC,iBAAA,CACbP,aAAa;MAACQ,IAAI,EAAEG;IAAU,IAC/B,4HACF,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ import { describe, it } from 'vitest';
2
+ import { TypeBoxSchema } from '../src/components/TypeBoxSchema.jsx';
3
+ import { createTestRunner, expectRender } from './utils.jsx';
4
+ describe('optionality', () => {
5
+ it('wraps optional string with Type.Optional', async () => {
6
+ const runner = await createTestRunner();
7
+ const { OptModel } = (await runner.compile(`
8
+ @test model OptModel {
9
+ name?: string;
10
+ }
11
+ `));
12
+ expectRender(runner.program, <TypeBoxSchema type={OptModel}/>, 'Type.Object({\n name: Type.Optional(Type.String()),\n})');
13
+ });
14
+ it('wraps optional integer with Type.Optional', async () => {
15
+ const runner = await createTestRunner();
16
+ const { OptInt } = (await runner.compile(`
17
+ @test model OptInt {
18
+ count?: int32;
19
+ }
20
+ `));
21
+ expectRender(runner.program, <TypeBoxSchema type={OptInt}/>, 'Type.Object({\n count: Type.Optional(Type.Integer()),\n})');
22
+ });
23
+ it('does not wrap required properties', async () => {
24
+ const runner = await createTestRunner();
25
+ const { ReqModel } = (await runner.compile(`
26
+ @test model ReqModel {
27
+ name: string;
28
+ }
29
+ `));
30
+ expectRender(runner.program, <TypeBoxSchema type={ReqModel}/>, 'Type.Object({\n name: Type.String(),\n})');
31
+ });
32
+ it('handles mix of required and optional', async () => {
33
+ const runner = await createTestRunner();
34
+ const { MixedModel } = (await runner.compile(`
35
+ @test model MixedModel {
36
+ required: string;
37
+ optional?: int32;
38
+ alsoRequired: boolean;
39
+ }
40
+ `));
41
+ expectRender(runner.program, <TypeBoxSchema type={MixedModel}/>, 'Type.Object({\n required: Type.String(),\n optional: Type.Optional(Type.Integer()),\n alsoRequired: Type.Boolean(),\n})');
42
+ });
43
+ });
44
+ //# sourceMappingURL=optionality.test.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optionality.test.jsx","sourceRoot":"","sources":["../../test/optionality.test.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE7D,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;;;;KAI1C,CAAC,CAA0B,CAAC;QAE7B,YAAY,CACV,MAAM,CAAC,OAAO,EACd,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAG,EACjC,0DAA0D,CAC3D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;;;;KAIxC,CAAC,CAA0B,CAAC;QAE7B,YAAY,CACV,MAAM,CAAC,OAAO,EACd,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAG,EAC/B,4DAA4D,CAC7D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;;;;KAI1C,CAAC,CAA0B,CAAC;QAE7B,YAAY,CACV,MAAM,CAAC,OAAO,EACd,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAG,EACjC,2CAA2C,CAC5C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;;;;;;KAM5C,CAAC,CAA0B,CAAC;QAE7B,YAAY,CACV,MAAM,CAAC,OAAO,EACd,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAG,EACnC,4HAA4H,CAC7H,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=unions.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unions.test.d.ts","sourceRoot":"","sources":["../../test/unions.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,51 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { describe, it } from 'vitest';
3
+ import { TypeBoxSchema } from "../src/components/TypeBoxSchema.js";
4
+ import { createTestRunner, expectRender } from "./utils.js";
5
+ describe('unions', () => {
6
+ it('works with simple union', async () => {
7
+ const runner = await createTestRunner();
8
+ const {
9
+ MyUnion
10
+ } = await runner.compile(`
11
+ @test union MyUnion {
12
+ a: string,
13
+ b: int32,
14
+ }
15
+ `);
16
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
17
+ type: MyUnion
18
+ }), 'Type.Union([Type.String(), Type.Integer()])');
19
+ });
20
+ it('works with multi-variant union', async () => {
21
+ const runner = await createTestRunner();
22
+ const {
23
+ Status
24
+ } = await runner.compile(`
25
+ @test union Status {
26
+ active: "active",
27
+ inactive: "inactive",
28
+ pending: "pending",
29
+ archived: "archived",
30
+ }
31
+ `);
32
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
33
+ type: Status
34
+ }), 'Type.Union([\n Type.Literal("active"),\n Type.Literal("inactive"),\n Type.Literal("pending"),\n Type.Literal("archived")\n])');
35
+ });
36
+ it('works with union of boolean and string', async () => {
37
+ const runner = await createTestRunner();
38
+ const {
39
+ Mixed
40
+ } = await runner.compile(`
41
+ @test union Mixed {
42
+ a: boolean,
43
+ b: string,
44
+ }
45
+ `);
46
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
47
+ type: Mixed
48
+ }), 'Type.Union([Type.Boolean(), Type.String()])');
49
+ });
50
+ });
51
+ //# sourceMappingURL=unions.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","it","TypeBoxSchema","createTestRunner","expectRender","runner","MyUnion","compile","program","_$createComponent","type","Status","Mixed"],"sources":["../../test/unions.test.tsx"],"sourcesContent":[null],"mappings":";AACA,SAASA,QAAQ,EAAEC,EAAE,QAAQ,QAAQ;AACrC,SAASC,aAAa;AACtB,SAASC,gBAAgB,EAAEC,YAAY;AAEvCJ,QAAQ,CAAC,QAAQ,EAAE,MAAM;EACvBC,EAAE,CAAC,yBAAyB,EAAE,YAAY;IACxC,MAAMI,MAAM,GAAG,MAAMF,gBAAgB,CAAC,CAAC;IACvC,MAAM;MAAEG;IAAQ,CAAC,GAAI,MAAMD,MAAM,CAACE,OAAO,CAAC;AAC9C;AACA;AACA;AACA;AACA,KAAK,CAA2B;IAE5BH,YAAY,CACVC,MAAM,CAACG,OAAO,EAAAC,iBAAA,CACbP,aAAa;MAACQ,IAAI,EAAEJ;IAAO,IAC5B,6CACF,CAAC;EACH,CAAC,CAAC;EAEFL,EAAE,CAAC,gCAAgC,EAAE,YAAY;IAC/C,MAAMI,MAAM,GAAG,MAAMF,gBAAgB,CAAC,CAAC;IACvC,MAAM;MAAEQ;IAAO,CAAC,GAAI,MAAMN,MAAM,CAACE,OAAO,CAAC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAA2B;IAE5BH,YAAY,CACVC,MAAM,CAACG,OAAO,EAAAC,iBAAA,CACbP,aAAa;MAACQ,IAAI,EAAEC;IAAM,IAC3B,kIACF,CAAC;EACH,CAAC,CAAC;EAEFV,EAAE,CAAC,wCAAwC,EAAE,YAAY;IACvD,MAAMI,MAAM,GAAG,MAAMF,gBAAgB,CAAC,CAAC;IACvC,MAAM;MAAES;IAAM,CAAC,GAAI,MAAMP,MAAM,CAACE,OAAO,CAAC;AAC5C;AACA;AACA;AACA;AACA,KAAK,CAA2B;IAE5BH,YAAY,CACVC,MAAM,CAACG,OAAO,EAAAC,iBAAA,CACbP,aAAa;MAACQ,IAAI,EAAEE;IAAK,IAC1B,6CACF,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ import { describe, it } from 'vitest';
2
+ import { TypeBoxSchema } from '../src/components/TypeBoxSchema.jsx';
3
+ import { createTestRunner, expectRender } from './utils.jsx';
4
+ describe('unions', () => {
5
+ it('works with simple union', async () => {
6
+ const runner = await createTestRunner();
7
+ const { MyUnion } = (await runner.compile(`
8
+ @test union MyUnion {
9
+ a: string,
10
+ b: int32,
11
+ }
12
+ `));
13
+ expectRender(runner.program, <TypeBoxSchema type={MyUnion}/>, 'Type.Union([Type.String(), Type.Integer()])');
14
+ });
15
+ it('works with multi-variant union', async () => {
16
+ const runner = await createTestRunner();
17
+ const { Status } = (await runner.compile(`
18
+ @test union Status {
19
+ active: "active",
20
+ inactive: "inactive",
21
+ pending: "pending",
22
+ archived: "archived",
23
+ }
24
+ `));
25
+ expectRender(runner.program, <TypeBoxSchema type={Status}/>, 'Type.Union([\n Type.Literal("active"),\n Type.Literal("inactive"),\n Type.Literal("pending"),\n Type.Literal("archived")\n])');
26
+ });
27
+ it('works with union of boolean and string', async () => {
28
+ const runner = await createTestRunner();
29
+ const { Mixed } = (await runner.compile(`
30
+ @test union Mixed {
31
+ a: boolean,
32
+ b: string,
33
+ }
34
+ `));
35
+ expectRender(runner.program, <TypeBoxSchema type={Mixed}/>, 'Type.Union([Type.Boolean(), Type.String()])');
36
+ });
37
+ });
38
+ //# sourceMappingURL=unions.test.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unions.test.jsx","sourceRoot":"","sources":["../../test/unions.test.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE7D,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;;;;;KAKzC,CAAC,CAA0B,CAAC;QAE7B,YAAY,CACV,MAAM,CAAC,OAAO,EACd,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAG,EAChC,6CAA6C,CAC9C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;;;;;;;KAOxC,CAAC,CAA0B,CAAC;QAE7B,YAAY,CACV,MAAM,CAAC,OAAO,EACd,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAG,EAC/B,kIAAkI,CACnI,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;;;;;KAKvC,CAAC,CAA0B,CAAC;QAE7B,YAAY,CACV,MAAM,CAAC,OAAO,EACd,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAG,EAC9B,6CAA6C,CAC9C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
2
  import { Output as AlloyOutput, render } from '@alloy-js/core';
3
- import { SourceFile } from '@alloy-js/typescript';
3
+ import { createTSNamePolicy, SourceFile } from '@alloy-js/typescript';
4
4
  import { createTestHost as coreCreateTestHost, createTestWrapper } from '@typespec/compiler/testing';
5
5
  import { Output } from '@typespec/emitter-framework';
6
6
  import { expect } from 'vitest';
@@ -9,6 +9,9 @@ import { TypeSpecTypeBoxTestLibrary } from '../src/testing/index.js';
9
9
  export function expectRender(program, children, expected) {
10
10
  const template = _$createComponent(Output, {
11
11
  program: program,
12
+ get namePolicy() {
13
+ return createTSNamePolicy();
14
+ },
12
15
  externals: [typebox],
13
16
  get children() {
14
17
  return _$createComponent(SourceFile, {
@@ -1 +1 @@
1
- {"version":3,"names":["Output","AlloyOutput","render","SourceFile","createTestHost","coreCreateTestHost","createTestWrapper","expect","typebox","TypeSpecTypeBoxTestLibrary","expectRender","program","children","expected","template","_$createComponent","externals","path","output","insertFinalNewLine","contents","split","slice","join","toBe","expectRenderPure","libraries","createTestRunner","host","wrapper","code","createEmitterTestRunner","compilerOptions","emit","options"],"sources":["../../test/utils.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,MAAM,IAAIC,WAAW,EAAqBC,MAAM,QAAQ,gBAAgB;AAEjF,SAASC,UAAU,QAAQ,sBAAsB;AAEjD,SACEC,cAAc,IAAIC,kBAAkB,EACpCC,iBAAiB,QACZ,4BAA4B;AACnC,SAASN,MAAM,QAAQ,6BAA6B;AACpD,SAASO,MAAM,QAAQ,QAAQ;AAC/B,SAASC,OAAO,QAAQ,iBAAiB;AACzC,SAASC,0BAA0B,QAAQ,yBAAyB;AAEpE,OAAO,SAASC,YAAYA,CAACC,OAAgB,EAAEC,QAAkB,EAAEC,QAAgB,EAAE;EACnF,MAAMC,QAAQ,GAAAC,iBAAA,CACXf,MAAM;IAACW,OAAO,EAAEA,OAAO;IAAEK,SAAS,EAAE,CAACR,OAAO,CAAC;IAAA,IAAAI,SAAA;MAAA,OAAAG,iBAAA,CAC3CZ,UAAU;QAACc,IAAI;QAAAL,QAAA,EAAYA;MAAQ;IAAA;EAAA,EAEvC;EAED,MAAMM,MAAM,GAAGhB,MAAM,CAACY,QAAQ,EAAE;IAAEK,kBAAkB,EAAE;EAAM,CAAC,CAAC;EAC9DZ,MAAM,CAAEW,MAAM,CAACE,QAAQ,CAAC,CAAC,CAAC,CAAuBA,QAAQ,CAACC,KAAK,CAAC,IAAI,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC,CAACC,IAAI,CAC7FX,QACF,CAAC;AACH;AAEA,OAAO,SAASY,gBAAgBA,CAACb,QAAkB,EAAEC,QAAgB,EAAE;EACrE,MAAMC,QAAQ,GAAAC,iBAAA,CACXd,WAAW;IAACe,SAAS,EAAE,CAACR,OAAO,CAAC;IAAA,IAAAI,SAAA;MAAA,OAAAG,iBAAA,CAC9BZ,UAAU;QAACc,IAAI;QAAAL,QAAA,EAAYA;MAAQ;IAAA;EAAA,EAEvC;EAED,MAAMM,MAAM,GAAGhB,MAAM,CAACY,QAAQ,EAAE;IAAEK,kBAAkB,EAAE;EAAM,CAAC,CAAC;EAC9DZ,MAAM,CAAEW,MAAM,CAACE,QAAQ,CAAC,CAAC,CAAC,CAAuBA,QAAQ,CAACC,KAAK,CAAC,IAAI,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC,CAACC,IAAI,CAC7FX,QACF,CAAC;AACH;AAEA,OAAO,eAAeT,cAAcA,CAAA,EAAG;EACrC,OAAOC,kBAAkB,CAAC;IACxBqB,SAAS,EAAE,CAACjB,0BAA0B;EACxC,CAAC,CAAC;AACJ;AAEA,OAAO,eAAekB,gBAAgBA,CAAA,EAAG;EACvC,MAAMC,IAAI,GAAG,MAAMxB,cAAc,CAAC,CAAC;EACnC,OAAOE,iBAAiB,CAACsB,IAAI,EAAE;IAC7BC,OAAO,EAAGC,IAAI,IAAK,GAAGA,IAAI;EAC5B,CAAC,CAAC;AACJ;AAEA,OAAO,eAAeC,uBAAuBA,CAAA,EAAG;EAC9C,MAAMH,IAAI,GAAG,MAAMxB,cAAc,CAAC,CAAC;EAEnC,OAAOE,iBAAiB,CAACsB,IAAI,EAAE;IAC7BC,OAAO,EAAGC,IAAI,IAAK,GAAGA,IAAI,EAAE;IAC5BE,eAAe,EAAE;MACfC,IAAI,EAAE,CAAC,+BAA+B,CAAC;MACvCC,OAAO,EAAE;QACP,+BAA+B,EAAE,CAAC;MACpC;IACF;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["Output","AlloyOutput","render","createTSNamePolicy","SourceFile","createTestHost","coreCreateTestHost","createTestWrapper","expect","typebox","TypeSpecTypeBoxTestLibrary","expectRender","program","children","expected","template","_$createComponent","namePolicy","externals","path","output","insertFinalNewLine","contents","split","slice","join","toBe","expectRenderPure","libraries","createTestRunner","host","wrapper","code","createEmitterTestRunner","compilerOptions","emit","options"],"sources":["../../test/utils.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,MAAM,IAAIC,WAAW,EAAqBC,MAAM,QAAQ,gBAAgB;AAEjF,SAASC,kBAAkB,EAAEC,UAAU,QAAQ,sBAAsB;AAErE,SACEC,cAAc,IAAIC,kBAAkB,EACpCC,iBAAiB,QACZ,4BAA4B;AACnC,SAASP,MAAM,QAAQ,6BAA6B;AACpD,SAASQ,MAAM,QAAQ,QAAQ;AAC/B,SAASC,OAAO,QAAQ,iBAAiB;AACzC,SAASC,0BAA0B,QAAQ,yBAAyB;AAEpE,OAAO,SAASC,YAAYA,CAACC,OAAgB,EAAEC,QAAkB,EAAEC,QAAgB,EAAE;EACnF,MAAMC,QAAQ,GAAAC,iBAAA,CACXhB,MAAM;IAACY,OAAO,EAAEA,OAAO;IAAA,IAAEK,UAAUA,CAAA;MAAA,OAAEd,kBAAkB,CAAC,CAAC;IAAA;IAAEe,SAAS,EAAE,CAACT,OAAO,CAAC;IAAA,IAAAI,SAAA;MAAA,OAAAG,iBAAA,CAC7EZ,UAAU;QAACe,IAAI;QAAAN,QAAA,EAAYA;MAAQ;IAAA;EAAA,EAEvC;EAED,MAAMO,MAAM,GAAGlB,MAAM,CAACa,QAAQ,EAAE;IAAEM,kBAAkB,EAAE;EAAM,CAAC,CAAC;EAC9Db,MAAM,CAAEY,MAAM,CAACE,QAAQ,CAAC,CAAC,CAAC,CAAuBA,QAAQ,CAACC,KAAK,CAAC,IAAI,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC,CAACC,IAAI,CAC7FZ,QACF,CAAC;AACH;AAEA,OAAO,SAASa,gBAAgBA,CAACd,QAAkB,EAAEC,QAAgB,EAAE;EACrE,MAAMC,QAAQ,GAAAC,iBAAA,CACXf,WAAW;IAACiB,SAAS,EAAE,CAACT,OAAO,CAAC;IAAA,IAAAI,SAAA;MAAA,OAAAG,iBAAA,CAC9BZ,UAAU;QAACe,IAAI;QAAAN,QAAA,EAAYA;MAAQ;IAAA;EAAA,EAEvC;EAED,MAAMO,MAAM,GAAGlB,MAAM,CAACa,QAAQ,EAAE;IAAEM,kBAAkB,EAAE;EAAM,CAAC,CAAC;EAC9Db,MAAM,CAAEY,MAAM,CAACE,QAAQ,CAAC,CAAC,CAAC,CAAuBA,QAAQ,CAACC,KAAK,CAAC,IAAI,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC,CAACC,IAAI,CAC7FZ,QACF,CAAC;AACH;AAEA,OAAO,eAAeT,cAAcA,CAAA,EAAG;EACrC,OAAOC,kBAAkB,CAAC;IACxBsB,SAAS,EAAE,CAAClB,0BAA0B;EACxC,CAAC,CAAC;AACJ;AAEA,OAAO,eAAemB,gBAAgBA,CAAA,EAAG;EACvC,MAAMC,IAAI,GAAG,MAAMzB,cAAc,CAAC,CAAC;EACnC,OAAOE,iBAAiB,CAACuB,IAAI,EAAE;IAC7BC,OAAO,EAAGC,IAAI,IAAK,GAAGA,IAAI;EAC5B,CAAC,CAAC;AACJ;AAEA,OAAO,eAAeC,uBAAuBA,CAAA,EAAG;EAC9C,MAAMH,IAAI,GAAG,MAAMzB,cAAc,CAAC,CAAC;EAEnC,OAAOE,iBAAiB,CAACuB,IAAI,EAAE;IAC7BC,OAAO,EAAGC,IAAI,IAAK,GAAGA,IAAI,EAAE;IAC5BE,eAAe,EAAE;MACfC,IAAI,EAAE,CAAC,+BAA+B,CAAC;MACvCC,OAAO,EAAE;QACP,+BAA+B,EAAE,CAAC;MACpC;IACF;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -1,12 +1,12 @@
1
1
  import { Output as AlloyOutput, render } from '@alloy-js/core';
2
- import { SourceFile } from '@alloy-js/typescript';
2
+ import { createTSNamePolicy, SourceFile } from '@alloy-js/typescript';
3
3
  import { createTestHost as coreCreateTestHost, createTestWrapper, } from '@typespec/compiler/testing';
4
4
  import { Output } from '@typespec/emitter-framework';
5
5
  import { expect } from 'vitest';
6
6
  import { typebox } from '../src/index.js';
7
7
  import { TypeSpecTypeBoxTestLibrary } from '../src/testing/index.js';
8
8
  export function expectRender(program, children, expected) {
9
- const template = (<Output program={program} externals={[typebox]}>
9
+ const template = (<Output program={program} namePolicy={createTSNamePolicy()} externals={[typebox]}>
10
10
  <SourceFile path="test.ts">{children}</SourceFile>
11
11
  </Output>);
12
12
  const output = render(template, { insertFinalNewLine: false });
@@ -1 +1 @@
1
- {"version":3,"file":"utils.jsx","sourceRoot":"","sources":["../../test/utils.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,WAAW,EAAqB,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAElF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EACL,cAAc,IAAI,kBAAkB,EACpC,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,QAAkB,EAAE,QAAgB;IACjF,MAAM,QAAQ,GAAG,CACf,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAC7C;MAAA,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,UAAU,CACnD;IAAA,EAAE,MAAM,CAAC,CACV,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAC7F,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAkB,EAAE,QAAgB;IACnE,MAAM,QAAQ,GAAG,CACf,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAChC;MAAA,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,UAAU,CACnD;IAAA,EAAE,WAAW,CAAC,CACf,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAC7F,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,OAAO,kBAAkB,CAAC;QACxB,SAAS,EAAE,CAAC,0BAA0B,CAAC;KACxC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;IACpC,OAAO,iBAAiB,CAAC,IAAI,EAAE;QAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE;KAC7B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;IAEpC,OAAO,iBAAiB,CAAC,IAAI,EAAE;QAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE;QAC5B,eAAe,EAAE;YACf,IAAI,EAAE,CAAC,+BAA+B,CAAC;YACvC,OAAO,EAAE;gBACP,+BAA+B,EAAE,EAAE;aACpC;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"utils.jsx","sourceRoot":"","sources":["../../test/utils.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,WAAW,EAAqB,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAElF,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EACL,cAAc,IAAI,kBAAkB,EACpC,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,QAAkB,EAAE,QAAgB;IACjF,MAAM,QAAQ,GAAG,CACf,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAC/E;MAAA,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,UAAU,CACnD;IAAA,EAAE,MAAM,CAAC,CACV,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAC7F,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAkB,EAAE,QAAgB;IACnE,MAAM,QAAQ,GAAG,CACf,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAChC;MAAA,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,UAAU,CACnD;IAAA,EAAE,WAAW,CAAC,CACf,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAC7F,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,OAAO,kBAAkB,CAAC;QACxB,SAAS,EAAE,CAAC,0BAA0B,CAAC;KACxC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;IACpC,OAAO,iBAAiB,CAAC,IAAI,EAAE;QAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE;KAC7B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;IAEpC,OAAO,iBAAiB,CAAC,IAAI,EAAE;QAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE;QAC5B,eAAe,EAAE;YACf,IAAI,EAAE,CAAC,+BAA+B,CAAC;YACvC,OAAO,EAAE;gBACP,+BAA+B,EAAE,EAAE;aACpC;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec-dev/emitter-typebox",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "description": "A TypeSpec emitter and library for creating TypeBox schemas from TypeSpec types.",
6
6
  "license": "MIT",