@typespec-dev/emitter-typebox 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -0
- package/dist/src/components/TypeBoxSchema.d.ts.map +1 -1
- package/dist/src/components/TypeBoxSchema.js +10 -5
- package/dist/src/components/TypeBoxSchema.js.map +1 -1
- package/dist/src/components/TypeBoxSchema.jsx +10 -5
- package/dist/src/components/TypeBoxSchema.jsx.map +1 -1
- package/dist/src/typeboxBaseSchema.d.ts +3 -2
- package/dist/src/typeboxBaseSchema.d.ts.map +1 -1
- package/dist/src/typeboxBaseSchema.js +207 -74
- package/dist/src/typeboxBaseSchema.js.map +1 -1
- package/dist/src/typeboxBaseSchema.jsx +148 -52
- package/dist/src/typeboxBaseSchema.jsx.map +1 -1
- package/dist/src/typeboxConstraints.d.ts +10 -0
- package/dist/src/typeboxConstraints.d.ts.map +1 -0
- package/dist/src/typeboxConstraints.js +308 -0
- package/dist/src/typeboxConstraints.js.map +1 -0
- package/dist/src/typeboxConstraints.jsx +246 -0
- package/dist/src/typeboxConstraints.jsx.map +1 -0
- package/dist/test/arrays.test.js +1 -1
- package/dist/test/arrays.test.js.map +1 -1
- package/dist/test/arrays.test.jsx +1 -1
- package/dist/test/arrays.test.jsx.map +1 -1
- package/dist/test/constraints.test.d.ts +2 -0
- package/dist/test/constraints.test.d.ts.map +1 -0
- package/dist/test/constraints.test.js +414 -0
- package/dist/test/constraints.test.js.map +1 -0
- package/dist/test/constraints.test.jsx +279 -0
- package/dist/test/constraints.test.jsx.map +1 -0
- package/dist/test/dictionaries.test.js +15 -1
- package/dist/test/dictionaries.test.js.map +1 -1
- package/dist/test/dictionaries.test.jsx +11 -1
- package/dist/test/dictionaries.test.jsx.map +1 -1
- package/dist/test/discriminated-unions.test.d.ts +2 -0
- package/dist/test/discriminated-unions.test.d.ts.map +1 -0
- package/dist/test/discriminated-unions.test.js +156 -0
- package/dist/test/discriminated-unions.test.js.map +1 -0
- package/dist/test/discriminated-unions.test.jsx +105 -0
- package/dist/test/discriminated-unions.test.jsx.map +1 -0
- package/dist/test/emitter/custom-scalars.test.d.ts +2 -0
- package/dist/test/emitter/custom-scalars.test.d.ts.map +1 -0
- package/dist/test/emitter/custom-scalars.test.js +42 -0
- package/dist/test/emitter/custom-scalars.test.js.map +1 -0
- package/dist/test/emitter/custom-scalars.test.jsx +38 -0
- package/dist/test/emitter/custom-scalars.test.jsx.map +1 -0
- package/dist/test/emitter/discriminated-unions.test.d.ts +2 -0
- package/dist/test/emitter/discriminated-unions.test.d.ts.map +1 -0
- package/dist/test/emitter/discriminated-unions.test.js +52 -0
- package/dist/test/emitter/discriminated-unions.test.js.map +1 -0
- package/dist/test/emitter/discriminated-unions.test.jsx +48 -0
- package/dist/test/emitter/discriminated-unions.test.jsx.map +1 -0
- package/dist/test/emitter/inheritance.test.d.ts +2 -0
- package/dist/test/emitter/inheritance.test.d.ts.map +1 -0
- package/dist/test/emitter/inheritance.test.js +56 -0
- package/dist/test/emitter/inheritance.test.js.map +1 -0
- package/dist/test/emitter/inheritance.test.jsx +50 -0
- package/dist/test/emitter/inheritance.test.jsx.map +1 -0
- package/dist/test/emitter/recursive.test.d.ts +2 -0
- package/dist/test/emitter/recursive.test.d.ts.map +1 -0
- package/dist/test/emitter/recursive.test.js +36 -0
- package/dist/test/emitter/recursive.test.js.map +1 -0
- package/dist/test/emitter/recursive.test.jsx +32 -0
- package/dist/test/emitter/recursive.test.jsx.map +1 -0
- package/dist/test/emitter/tuples.test.d.ts +2 -0
- package/dist/test/emitter/tuples.test.d.ts.map +1 -0
- package/dist/test/emitter/tuples.test.js +22 -0
- package/dist/test/emitter/tuples.test.js.map +1 -0
- package/dist/test/emitter/tuples.test.jsx +20 -0
- package/dist/test/emitter/tuples.test.jsx.map +1 -0
- package/dist/test/inheritance.test.d.ts +2 -0
- package/dist/test/inheritance.test.d.ts.map +1 -0
- package/dist/test/inheritance.test.js +162 -0
- package/dist/test/inheritance.test.js.map +1 -0
- package/dist/test/inheritance.test.jsx +92 -0
- package/dist/test/inheritance.test.jsx.map +1 -0
- package/dist/test/models.test.js +37 -2
- package/dist/test/models.test.js.map +1 -1
- package/dist/test/models.test.jsx +29 -2
- package/dist/test/models.test.jsx.map +1 -1
- package/dist/test/nullable.test.js +1 -1
- package/dist/test/nullable.test.js.map +1 -1
- package/dist/test/nullable.test.jsx +1 -1
- package/dist/test/nullable.test.jsx.map +1 -1
- package/dist/test/optionality.test.js +2 -2
- package/dist/test/optionality.test.js.map +1 -1
- package/dist/test/optionality.test.jsx +2 -2
- package/dist/test/optionality.test.jsx.map +1 -1
- package/dist/test/recursive.test.d.ts +2 -0
- package/dist/test/recursive.test.d.ts.map +1 -0
- package/dist/test/recursive.test.js +137 -0
- package/dist/test/recursive.test.js.map +1 -0
- package/dist/test/recursive.test.jsx +75 -0
- package/dist/test/recursive.test.jsx.map +1 -0
- package/dist/test/scalars.test.js +13 -13
- package/dist/test/scalars.test.js.map +1 -1
- package/dist/test/scalars.test.jsx +13 -13
- package/dist/test/scalars.test.jsx.map +1 -1
- package/dist/test/tuples.test.d.ts +2 -0
- package/dist/test/tuples.test.d.ts.map +1 -0
- package/dist/test/tuples.test.js +67 -0
- package/dist/test/tuples.test.js.map +1 -0
- package/dist/test/tuples.test.jsx +42 -0
- package/dist/test/tuples.test.jsx.map +1 -0
- package/dist/test/unions.test.js +1 -1
- package/dist/test/unions.test.js.map +1 -1
- package/dist/test/unions.test.jsx +1 -1
- package/dist/test/unions.test.jsx.map +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["render","createTSNamePolicy","SourceFile","Output","describe","expect","it","TypeBoxSchema","TypeBoxSchemaDeclaration","typebox","createTestRunner","expectRender","runner","Animal","Dog","compile","template","_$createComponent","program","namePolicy","externals","children","path","type","output","insertFinalNewLine","contents","toContain","Standalone","Base","Middle","Leaf","EmptyDog"],"sources":["../../test/inheritance.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,92 @@
|
|
|
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('inheritance', () => {
|
|
10
|
+
it('works with simple single inheritance', async () => {
|
|
11
|
+
const runner = await createTestRunner();
|
|
12
|
+
const { Animal, Dog } = (await runner.compile(`
|
|
13
|
+
@test model Animal {
|
|
14
|
+
name: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@test model Dog extends Animal {
|
|
18
|
+
breed: string;
|
|
19
|
+
}
|
|
20
|
+
`));
|
|
21
|
+
const template = (<Output program={runner.program} namePolicy={createTSNamePolicy()} externals={[typebox]}>
|
|
22
|
+
<SourceFile path="test.ts">
|
|
23
|
+
<TypeBoxSchemaDeclaration type={Animal} export/>
|
|
24
|
+
{'\n'}
|
|
25
|
+
<TypeBoxSchemaDeclaration type={Dog} export/>
|
|
26
|
+
</SourceFile>
|
|
27
|
+
</Output>);
|
|
28
|
+
const output = render(template, { insertFinalNewLine: false });
|
|
29
|
+
const contents = output.contents[0].contents;
|
|
30
|
+
expect(contents).toContain('Type.Intersect([\n animal,');
|
|
31
|
+
expect(contents).toContain('breed: Type.String()');
|
|
32
|
+
});
|
|
33
|
+
it('model with no base still emits Type.Object', async () => {
|
|
34
|
+
const runner = await createTestRunner();
|
|
35
|
+
const { Standalone } = (await runner.compile(`
|
|
36
|
+
@test model Standalone {
|
|
37
|
+
value: string;
|
|
38
|
+
}
|
|
39
|
+
`));
|
|
40
|
+
expectRender(runner.program, <TypeBoxSchema type={Standalone}/>, 'Type.Object({\n value: Type.String(),\n})');
|
|
41
|
+
});
|
|
42
|
+
it('works with multiple levels of inheritance', async () => {
|
|
43
|
+
const runner = await createTestRunner();
|
|
44
|
+
const { Base, Middle, Leaf } = (await runner.compile(`
|
|
45
|
+
@test model Base {
|
|
46
|
+
id: string;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@test model Middle extends Base {
|
|
50
|
+
name: string;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@test model Leaf extends Middle {
|
|
54
|
+
extra: string;
|
|
55
|
+
}
|
|
56
|
+
`));
|
|
57
|
+
const template = (<Output program={runner.program} namePolicy={createTSNamePolicy()} externals={[typebox]}>
|
|
58
|
+
<SourceFile path="test.ts">
|
|
59
|
+
<TypeBoxSchemaDeclaration type={Base} export/>
|
|
60
|
+
{'\n'}
|
|
61
|
+
<TypeBoxSchemaDeclaration type={Middle} export/>
|
|
62
|
+
{'\n'}
|
|
63
|
+
<TypeBoxSchemaDeclaration type={Leaf} export/>
|
|
64
|
+
</SourceFile>
|
|
65
|
+
</Output>);
|
|
66
|
+
const output = render(template, { insertFinalNewLine: false });
|
|
67
|
+
const contents = output.contents[0].contents;
|
|
68
|
+
expect(contents).toContain('Type.Intersect([\n base,');
|
|
69
|
+
expect(contents).toContain('Type.Intersect([\n middle,');
|
|
70
|
+
});
|
|
71
|
+
it('works with empty extension', async () => {
|
|
72
|
+
const runner = await createTestRunner();
|
|
73
|
+
const { Animal, EmptyDog } = (await runner.compile(`
|
|
74
|
+
@test model Animal {
|
|
75
|
+
name: string;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
@test model EmptyDog extends Animal {}
|
|
79
|
+
`));
|
|
80
|
+
const template = (<Output program={runner.program} namePolicy={createTSNamePolicy()} externals={[typebox]}>
|
|
81
|
+
<SourceFile path="test.ts">
|
|
82
|
+
<TypeBoxSchemaDeclaration type={Animal} export/>
|
|
83
|
+
{'\n'}
|
|
84
|
+
<TypeBoxSchemaDeclaration type={EmptyDog} export/>
|
|
85
|
+
</SourceFile>
|
|
86
|
+
</Output>);
|
|
87
|
+
const output = render(template, { insertFinalNewLine: false });
|
|
88
|
+
const contents = output.contents[0].contents;
|
|
89
|
+
expect(contents).toContain('Type.Intersect([animal, Type.Object({})]');
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
//# sourceMappingURL=inheritance.test.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inheritance.test.jsx","sourceRoot":"","sources":["../../test/inheritance.test.tsx"],"names":[],"mappings":"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"}
|
package/dist/test/models.test.js
CHANGED
|
@@ -31,7 +31,7 @@ describe('models', () => {
|
|
|
31
31
|
`);
|
|
32
32
|
expectRender(runner.program, _$createComponent(TypeBoxSchema, {
|
|
33
33
|
type: SimpleModel
|
|
34
|
-
}), 'Type.Object({\n name: Type.String(),\n age: Type.Integer(),\n})');
|
|
34
|
+
}), 'Type.Object({\n name: Type.String(),\n age: Type.Integer({\n minimum: -2147483648,\n maximum: 2147483647\n }),\n})');
|
|
35
35
|
});
|
|
36
36
|
it('works with optional properties', async () => {
|
|
37
37
|
const runner = await createTestRunner();
|
|
@@ -45,7 +45,7 @@ describe('models', () => {
|
|
|
45
45
|
`);
|
|
46
46
|
expectRender(runner.program, _$createComponent(TypeBoxSchema, {
|
|
47
47
|
type: OptModel
|
|
48
|
-
}), 'Type.Object({\n required: Type.String(),\n optional: Type.Optional(Type.Integer()),\n})');
|
|
48
|
+
}), 'Type.Object({\n required: Type.String(),\n optional: Type.Optional(Type.Integer({\n minimum: -2147483648,\n maximum: 2147483647\n })),\n})');
|
|
49
49
|
});
|
|
50
50
|
it('works with nested model reference', async () => {
|
|
51
51
|
const runner = await createTestRunner();
|
|
@@ -90,6 +90,41 @@ describe('models', () => {
|
|
|
90
90
|
const contents = output.contents[0].contents;
|
|
91
91
|
expect(contents).toContain('child: child');
|
|
92
92
|
});
|
|
93
|
+
it('works with inline anonymous model property', async () => {
|
|
94
|
+
const runner = await createTestRunner();
|
|
95
|
+
const {
|
|
96
|
+
Parent
|
|
97
|
+
} = await runner.compile(`
|
|
98
|
+
@test model Parent {
|
|
99
|
+
details: {
|
|
100
|
+
firstName: string;
|
|
101
|
+
lastName: string;
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
`);
|
|
105
|
+
expectRender(runner.program, _$createComponent(TypeBoxSchema, {
|
|
106
|
+
type: Parent
|
|
107
|
+
}), 'Type.Object({\n details: Type.Object({\n firstName: Type.String(),\n lastName: Type.String(),\n }),\n})');
|
|
108
|
+
});
|
|
109
|
+
it('works with spread properties', async () => {
|
|
110
|
+
const runner = await createTestRunner();
|
|
111
|
+
const {
|
|
112
|
+
Extended
|
|
113
|
+
} = await runner.compile(`
|
|
114
|
+
model Base {
|
|
115
|
+
name: string;
|
|
116
|
+
age: int32;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
@test model Extended {
|
|
120
|
+
...Base;
|
|
121
|
+
email: string;
|
|
122
|
+
}
|
|
123
|
+
`);
|
|
124
|
+
expectRender(runner.program, _$createComponent(TypeBoxSchema, {
|
|
125
|
+
type: Extended
|
|
126
|
+
}), 'Type.Object({\n name: Type.String(),\n age: Type.Integer({\n minimum: -2147483648,\n maximum: 2147483647\n }),\n email: Type.String(),\n})');
|
|
127
|
+
});
|
|
93
128
|
it('works with literal property types', async () => {
|
|
94
129
|
const runner = await createTestRunner();
|
|
95
130
|
const {
|
|
@@ -1 +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":";AAAA,SAA4BA,MAAM,QAAQ,gBAAgB;AAC1D,SAASC,kBAAkB,EAAEC,UAAU,QAAQ,sBAAsB;AAErE,SAASC,MAAM,QAAQ,6BAA6B;AACpD,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,aAAa;AACtB,SAASC,wBAAwB;AACjC,SAASC,OAAO,QAAQ,iBAAiB;AACzC,SAASC,gBAAgB,EAAEC,YAAY;AAEvCP,QAAQ,CAAC,QAAQ,EAAE,MAAM;EACvBE,EAAE,CAAC,wBAAwB,EAAE,YAAY;IACvC,MAAMM,MAAM,GAAG,MAAMF,gBAAgB,CAAC,CAAC;IACvC,MAAM;MAAEG;IAAW,CAAC,GAAI,MAAMD,MAAM,CAACE,OAAO,CAAC;AACjD;AACA,KAAK,CAA2B;IAE5BH,YAAY,CAACC,MAAM,CAACG,OAAO,EAAAC,iBAAA,CAAGT,aAAa;MAACU,IAAI,EAAEJ;IAAU,IAAM,iBAAiB,CAAC;EACtF,CAAC,CAAC;EAEFP,EAAE,CAAC,yBAAyB,EAAE,YAAY;IACxC,MAAMM,MAAM,GAAG,MAAMF,gBAAgB,CAAC,CAAC;IACvC,MAAM;MAAEQ;IAAY,CAAC,GAAI,MAAMN,MAAM,CAACE,OAAO,CAAC;AAClD;AACA;AACA;AACA;AACA,KAAK,CAA2B;IAE5BH,YAAY,CACVC,MAAM,CAACG,OAAO,EAAAC,iBAAA,CACbT,aAAa;MAACU,IAAI,EAAEC;IAAW,IAChC,
|
|
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","Extended","LitModel"],"sources":["../../test/models.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -22,7 +22,7 @@ describe('models', () => {
|
|
|
22
22
|
age: int32;
|
|
23
23
|
}
|
|
24
24
|
`));
|
|
25
|
-
expectRender(runner.program, <TypeBoxSchema type={SimpleModel}/>, 'Type.Object({\n name: Type.String(),\n age: Type.Integer(),\n})');
|
|
25
|
+
expectRender(runner.program, <TypeBoxSchema type={SimpleModel}/>, 'Type.Object({\n name: Type.String(),\n age: Type.Integer({\n minimum: -2147483648,\n maximum: 2147483647\n }),\n})');
|
|
26
26
|
});
|
|
27
27
|
it('works with optional properties', async () => {
|
|
28
28
|
const runner = await createTestRunner();
|
|
@@ -32,7 +32,7 @@ describe('models', () => {
|
|
|
32
32
|
optional?: int32;
|
|
33
33
|
}
|
|
34
34
|
`));
|
|
35
|
-
expectRender(runner.program, <TypeBoxSchema type={OptModel}/>, 'Type.Object({\n required: Type.String(),\n optional: Type.Optional(Type.Integer()),\n})');
|
|
35
|
+
expectRender(runner.program, <TypeBoxSchema type={OptModel}/>, 'Type.Object({\n required: Type.String(),\n optional: Type.Optional(Type.Integer({\n minimum: -2147483648,\n maximum: 2147483647\n })),\n})');
|
|
36
36
|
});
|
|
37
37
|
it('works with nested model reference', async () => {
|
|
38
38
|
const runner = await createTestRunner();
|
|
@@ -56,6 +56,33 @@ describe('models', () => {
|
|
|
56
56
|
const contents = output.contents[0].contents;
|
|
57
57
|
expect(contents).toContain('child: child');
|
|
58
58
|
});
|
|
59
|
+
it('works with inline anonymous model property', async () => {
|
|
60
|
+
const runner = await createTestRunner();
|
|
61
|
+
const { Parent } = (await runner.compile(`
|
|
62
|
+
@test model Parent {
|
|
63
|
+
details: {
|
|
64
|
+
firstName: string;
|
|
65
|
+
lastName: string;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
`));
|
|
69
|
+
expectRender(runner.program, <TypeBoxSchema type={Parent}/>, 'Type.Object({\n details: Type.Object({\n firstName: Type.String(),\n lastName: Type.String(),\n }),\n})');
|
|
70
|
+
});
|
|
71
|
+
it('works with spread properties', async () => {
|
|
72
|
+
const runner = await createTestRunner();
|
|
73
|
+
const { Extended } = (await runner.compile(`
|
|
74
|
+
model Base {
|
|
75
|
+
name: string;
|
|
76
|
+
age: int32;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@test model Extended {
|
|
80
|
+
...Base;
|
|
81
|
+
email: string;
|
|
82
|
+
}
|
|
83
|
+
`));
|
|
84
|
+
expectRender(runner.program, <TypeBoxSchema type={Extended}/>, 'Type.Object({\n name: Type.String(),\n age: Type.Integer({\n minimum: -2147483648,\n maximum: 2147483647\n }),\n email: Type.String(),\n})');
|
|
85
|
+
});
|
|
59
86
|
it('works with literal property types', async () => {
|
|
60
87
|
const runner = await createTestRunner();
|
|
61
88
|
const { LitModel } = (await runner.compile(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.test.jsx","sourceRoot":"","sources":["../../test/models.test.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE7D,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;;KAE5C,CAAC,CAA0B,CAAC;QAE7B,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAG,EAAE,iBAAiB,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;;;;;KAK7C,CAAC,CAA0B,CAAC;QAE7B,YAAY,CACV,MAAM,CAAC,OAAO,EACd,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,EAAG,EACpC,
|
|
1
|
+
{"version":3,"file":"models.test.jsx","sourceRoot":"","sources":["../../test/models.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ describe('nullable', () => {
|
|
|
27
27
|
`);
|
|
28
28
|
expectRender(runner.program, _$createComponent(TypeBoxSchema, {
|
|
29
29
|
type: NullInt
|
|
30
|
-
}), 'Type.Object({\n count: Type.Union([Type.Integer()
|
|
30
|
+
}), 'Type.Object({\n count: Type.Union([\n Type.Integer({\n minimum: -2147483648,\n maximum: 2147483647\n }),\n Type.Null()\n ]),\n})');
|
|
31
31
|
});
|
|
32
32
|
it('works with optional nullable property', async () => {
|
|
33
33
|
const runner = await createTestRunner();
|
|
@@ -1 +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,
|
|
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,uJACF,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":[]}
|
|
@@ -18,7 +18,7 @@ describe('nullable', () => {
|
|
|
18
18
|
count: int32 | null;
|
|
19
19
|
}
|
|
20
20
|
`));
|
|
21
|
-
expectRender(runner.program, <TypeBoxSchema type={NullInt}/>, 'Type.Object({\n count: Type.Union([Type.Integer()
|
|
21
|
+
expectRender(runner.program, <TypeBoxSchema type={NullInt}/>, 'Type.Object({\n count: Type.Union([\n Type.Integer({\n minimum: -2147483648,\n maximum: 2147483647\n }),\n Type.Null()\n ]),\n})');
|
|
22
22
|
});
|
|
23
23
|
it('works with optional nullable property', async () => {
|
|
24
24
|
const runner = await createTestRunner();
|
|
@@ -1 +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,
|
|
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,uJAAuJ,CACxJ,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"}
|
|
@@ -27,7 +27,7 @@ describe('optionality', () => {
|
|
|
27
27
|
`);
|
|
28
28
|
expectRender(runner.program, _$createComponent(TypeBoxSchema, {
|
|
29
29
|
type: OptInt
|
|
30
|
-
}), 'Type.Object({\n count: Type.Optional(Type.Integer()),\n})');
|
|
30
|
+
}), 'Type.Object({\n count: Type.Optional(Type.Integer({\n minimum: -2147483648,\n maximum: 2147483647\n })),\n})');
|
|
31
31
|
});
|
|
32
32
|
it('does not wrap required properties', async () => {
|
|
33
33
|
const runner = await createTestRunner();
|
|
@@ -55,7 +55,7 @@ describe('optionality', () => {
|
|
|
55
55
|
`);
|
|
56
56
|
expectRender(runner.program, _$createComponent(TypeBoxSchema, {
|
|
57
57
|
type: MixedModel
|
|
58
|
-
}), 'Type.Object({\n required: Type.String(),\n optional: Type.Optional(Type.Integer()),\n alsoRequired: Type.Boolean(),\n})');
|
|
58
|
+
}), 'Type.Object({\n required: Type.String(),\n optional: Type.Optional(Type.Integer({\n minimum: -2147483648,\n maximum: 2147483647\n })),\n alsoRequired: Type.Boolean(),\n})');
|
|
59
59
|
});
|
|
60
60
|
});
|
|
61
61
|
//# sourceMappingURL=optionality.test.js.map
|
|
@@ -1 +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,
|
|
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,sHACF,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,sLACF,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -18,7 +18,7 @@ describe('optionality', () => {
|
|
|
18
18
|
count?: int32;
|
|
19
19
|
}
|
|
20
20
|
`));
|
|
21
|
-
expectRender(runner.program, <TypeBoxSchema type={OptInt}/>, 'Type.Object({\n count: Type.Optional(Type.Integer()),\n})');
|
|
21
|
+
expectRender(runner.program, <TypeBoxSchema type={OptInt}/>, 'Type.Object({\n count: Type.Optional(Type.Integer({\n minimum: -2147483648,\n maximum: 2147483647\n })),\n})');
|
|
22
22
|
});
|
|
23
23
|
it('does not wrap required properties', async () => {
|
|
24
24
|
const runner = await createTestRunner();
|
|
@@ -38,7 +38,7 @@ describe('optionality', () => {
|
|
|
38
38
|
alsoRequired: boolean;
|
|
39
39
|
}
|
|
40
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})');
|
|
41
|
+
expectRender(runner.program, <TypeBoxSchema type={MixedModel}/>, 'Type.Object({\n required: Type.String(),\n optional: Type.Optional(Type.Integer({\n minimum: -2147483648,\n maximum: 2147483647\n })),\n alsoRequired: Type.Boolean(),\n})');
|
|
42
42
|
});
|
|
43
43
|
});
|
|
44
44
|
//# sourceMappingURL=optionality.test.jsx.map
|
|
@@ -1 +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,
|
|
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,sHAAsH,CACvH,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,sLAAsL,CACvL,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recursive.test.d.ts","sourceRoot":"","sources":["../../test/recursive.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,137 @@
|
|
|
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('recursive types', () => {
|
|
11
|
+
it('wraps self-referencing model in Type.Recursive', async () => {
|
|
12
|
+
const runner = await createTestRunner();
|
|
13
|
+
const {
|
|
14
|
+
TreeNode
|
|
15
|
+
} = await runner.compile(`
|
|
16
|
+
@test model TreeNode {
|
|
17
|
+
value: string;
|
|
18
|
+
children: TreeNode[];
|
|
19
|
+
}
|
|
20
|
+
`);
|
|
21
|
+
const template = _$createComponent(Output, {
|
|
22
|
+
get program() {
|
|
23
|
+
return runner.program;
|
|
24
|
+
},
|
|
25
|
+
get namePolicy() {
|
|
26
|
+
return createTSNamePolicy();
|
|
27
|
+
},
|
|
28
|
+
externals: [typebox],
|
|
29
|
+
get children() {
|
|
30
|
+
return _$createComponent(SourceFile, {
|
|
31
|
+
path: "test.ts",
|
|
32
|
+
get children() {
|
|
33
|
+
return _$createComponent(TypeBoxSchemaDeclaration, {
|
|
34
|
+
type: TreeNode,
|
|
35
|
+
"export": true
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
const output = render(template, {
|
|
42
|
+
insertFinalNewLine: false
|
|
43
|
+
});
|
|
44
|
+
const contents = output.contents[0].contents;
|
|
45
|
+
expect(contents).toContain('Type.Recursive(This =>');
|
|
46
|
+
expect(contents).toContain('Type.Array(This)');
|
|
47
|
+
expect(contents).toContain('value: Type.String()');
|
|
48
|
+
});
|
|
49
|
+
it('handles optional self-reference', async () => {
|
|
50
|
+
const runner = await createTestRunner();
|
|
51
|
+
const {
|
|
52
|
+
LinkedNode
|
|
53
|
+
} = await runner.compile(`
|
|
54
|
+
@test model LinkedNode {
|
|
55
|
+
value: string;
|
|
56
|
+
next?: LinkedNode;
|
|
57
|
+
}
|
|
58
|
+
`);
|
|
59
|
+
const template = _$createComponent(Output, {
|
|
60
|
+
get program() {
|
|
61
|
+
return runner.program;
|
|
62
|
+
},
|
|
63
|
+
get namePolicy() {
|
|
64
|
+
return createTSNamePolicy();
|
|
65
|
+
},
|
|
66
|
+
externals: [typebox],
|
|
67
|
+
get children() {
|
|
68
|
+
return _$createComponent(SourceFile, {
|
|
69
|
+
path: "test.ts",
|
|
70
|
+
get children() {
|
|
71
|
+
return _$createComponent(TypeBoxSchemaDeclaration, {
|
|
72
|
+
type: LinkedNode,
|
|
73
|
+
"export": true
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
const output = render(template, {
|
|
80
|
+
insertFinalNewLine: false
|
|
81
|
+
});
|
|
82
|
+
const contents = output.contents[0].contents;
|
|
83
|
+
expect(contents).toContain('Type.Recursive(This =>');
|
|
84
|
+
expect(contents).toContain('Type.Optional(This)');
|
|
85
|
+
});
|
|
86
|
+
it('does not wrap non-recursive model', async () => {
|
|
87
|
+
const runner = await createTestRunner();
|
|
88
|
+
const {
|
|
89
|
+
Simple
|
|
90
|
+
} = await runner.compile(`
|
|
91
|
+
@test model Simple {
|
|
92
|
+
name: string;
|
|
93
|
+
age: int32;
|
|
94
|
+
}
|
|
95
|
+
`);
|
|
96
|
+
expectRender(runner.program, _$createComponent(TypeBoxSchema, {
|
|
97
|
+
type: Simple
|
|
98
|
+
}), 'Type.Object({\n name: Type.String(),\n age: Type.Integer({\n minimum: -2147483648,\n maximum: 2147483647\n }),\n})');
|
|
99
|
+
});
|
|
100
|
+
it('handles self-referencing through Record', async () => {
|
|
101
|
+
const runner = await createTestRunner();
|
|
102
|
+
const {
|
|
103
|
+
JsonValue
|
|
104
|
+
} = await runner.compile(`
|
|
105
|
+
@test model JsonValue {
|
|
106
|
+
nested: Record<JsonValue>;
|
|
107
|
+
}
|
|
108
|
+
`);
|
|
109
|
+
const template = _$createComponent(Output, {
|
|
110
|
+
get program() {
|
|
111
|
+
return runner.program;
|
|
112
|
+
},
|
|
113
|
+
get namePolicy() {
|
|
114
|
+
return createTSNamePolicy();
|
|
115
|
+
},
|
|
116
|
+
externals: [typebox],
|
|
117
|
+
get children() {
|
|
118
|
+
return _$createComponent(SourceFile, {
|
|
119
|
+
path: "test.ts",
|
|
120
|
+
get children() {
|
|
121
|
+
return _$createComponent(TypeBoxSchemaDeclaration, {
|
|
122
|
+
type: JsonValue,
|
|
123
|
+
"export": true
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
const output = render(template, {
|
|
130
|
+
insertFinalNewLine: false
|
|
131
|
+
});
|
|
132
|
+
const contents = output.contents[0].contents;
|
|
133
|
+
expect(contents).toContain('Type.Recursive(This =>');
|
|
134
|
+
expect(contents).toContain('Type.Record(');
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
//# sourceMappingURL=recursive.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["render","createTSNamePolicy","SourceFile","Output","describe","expect","it","TypeBoxSchema","TypeBoxSchemaDeclaration","typebox","createTestRunner","expectRender","runner","TreeNode","compile","template","_$createComponent","program","namePolicy","externals","children","path","type","output","insertFinalNewLine","contents","toContain","LinkedNode","Simple","JsonValue"],"sources":["../../test/recursive.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,75 @@
|
|
|
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('recursive types', () => {
|
|
10
|
+
it('wraps self-referencing model in Type.Recursive', async () => {
|
|
11
|
+
const runner = await createTestRunner();
|
|
12
|
+
const { TreeNode } = (await runner.compile(`
|
|
13
|
+
@test model TreeNode {
|
|
14
|
+
value: string;
|
|
15
|
+
children: TreeNode[];
|
|
16
|
+
}
|
|
17
|
+
`));
|
|
18
|
+
const template = (<Output program={runner.program} namePolicy={createTSNamePolicy()} externals={[typebox]}>
|
|
19
|
+
<SourceFile path="test.ts">
|
|
20
|
+
<TypeBoxSchemaDeclaration type={TreeNode} export/>
|
|
21
|
+
</SourceFile>
|
|
22
|
+
</Output>);
|
|
23
|
+
const output = render(template, { insertFinalNewLine: false });
|
|
24
|
+
const contents = output.contents[0].contents;
|
|
25
|
+
expect(contents).toContain('Type.Recursive(This =>');
|
|
26
|
+
expect(contents).toContain('Type.Array(This)');
|
|
27
|
+
expect(contents).toContain('value: Type.String()');
|
|
28
|
+
});
|
|
29
|
+
it('handles optional self-reference', async () => {
|
|
30
|
+
const runner = await createTestRunner();
|
|
31
|
+
const { LinkedNode } = (await runner.compile(`
|
|
32
|
+
@test model LinkedNode {
|
|
33
|
+
value: string;
|
|
34
|
+
next?: LinkedNode;
|
|
35
|
+
}
|
|
36
|
+
`));
|
|
37
|
+
const template = (<Output program={runner.program} namePolicy={createTSNamePolicy()} externals={[typebox]}>
|
|
38
|
+
<SourceFile path="test.ts">
|
|
39
|
+
<TypeBoxSchemaDeclaration type={LinkedNode} export/>
|
|
40
|
+
</SourceFile>
|
|
41
|
+
</Output>);
|
|
42
|
+
const output = render(template, { insertFinalNewLine: false });
|
|
43
|
+
const contents = output.contents[0].contents;
|
|
44
|
+
expect(contents).toContain('Type.Recursive(This =>');
|
|
45
|
+
expect(contents).toContain('Type.Optional(This)');
|
|
46
|
+
});
|
|
47
|
+
it('does not wrap non-recursive model', async () => {
|
|
48
|
+
const runner = await createTestRunner();
|
|
49
|
+
const { Simple } = (await runner.compile(`
|
|
50
|
+
@test model Simple {
|
|
51
|
+
name: string;
|
|
52
|
+
age: int32;
|
|
53
|
+
}
|
|
54
|
+
`));
|
|
55
|
+
expectRender(runner.program, <TypeBoxSchema type={Simple}/>, 'Type.Object({\n name: Type.String(),\n age: Type.Integer({\n minimum: -2147483648,\n maximum: 2147483647\n }),\n})');
|
|
56
|
+
});
|
|
57
|
+
it('handles self-referencing through Record', async () => {
|
|
58
|
+
const runner = await createTestRunner();
|
|
59
|
+
const { JsonValue } = (await runner.compile(`
|
|
60
|
+
@test model JsonValue {
|
|
61
|
+
nested: Record<JsonValue>;
|
|
62
|
+
}
|
|
63
|
+
`));
|
|
64
|
+
const template = (<Output program={runner.program} namePolicy={createTSNamePolicy()} externals={[typebox]}>
|
|
65
|
+
<SourceFile path="test.ts">
|
|
66
|
+
<TypeBoxSchemaDeclaration type={JsonValue} export/>
|
|
67
|
+
</SourceFile>
|
|
68
|
+
</Output>);
|
|
69
|
+
const output = render(template, { insertFinalNewLine: false });
|
|
70
|
+
const contents = output.contents[0].contents;
|
|
71
|
+
expect(contents).toContain('Type.Recursive(This =>');
|
|
72
|
+
expect(contents).toContain('Type.Record(');
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
//# sourceMappingURL=recursive.test.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recursive.test.jsx","sourceRoot":"","sources":["../../test/recursive.test.tsx"],"names":[],"mappings":"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"}
|