@typespec-dev/emitter-typebox 0.2.0 → 0.3.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 (53) hide show
  1. package/README.md +70 -0
  2. package/dist/src/components/TypeBoxSchema.d.ts.map +1 -1
  3. package/dist/src/components/TypeBoxSchema.js +4 -3
  4. package/dist/src/components/TypeBoxSchema.js.map +1 -1
  5. package/dist/src/components/TypeBoxSchema.jsx +4 -3
  6. package/dist/src/components/TypeBoxSchema.jsx.map +1 -1
  7. package/dist/src/typeboxBaseSchema.d.ts +2 -2
  8. package/dist/src/typeboxBaseSchema.d.ts.map +1 -1
  9. package/dist/src/typeboxBaseSchema.js +68 -33
  10. package/dist/src/typeboxBaseSchema.js.map +1 -1
  11. package/dist/src/typeboxBaseSchema.jsx +36 -28
  12. package/dist/src/typeboxBaseSchema.jsx.map +1 -1
  13. package/dist/src/typeboxConstraints.d.ts +10 -0
  14. package/dist/src/typeboxConstraints.d.ts.map +1 -0
  15. package/dist/src/typeboxConstraints.js +308 -0
  16. package/dist/src/typeboxConstraints.js.map +1 -0
  17. package/dist/src/typeboxConstraints.jsx +246 -0
  18. package/dist/src/typeboxConstraints.jsx.map +1 -0
  19. package/dist/test/arrays.test.js +1 -1
  20. package/dist/test/arrays.test.js.map +1 -1
  21. package/dist/test/arrays.test.jsx +1 -1
  22. package/dist/test/arrays.test.jsx.map +1 -1
  23. package/dist/test/constraints.test.d.ts +2 -0
  24. package/dist/test/constraints.test.d.ts.map +1 -0
  25. package/dist/test/constraints.test.js +414 -0
  26. package/dist/test/constraints.test.js.map +1 -0
  27. package/dist/test/constraints.test.jsx +279 -0
  28. package/dist/test/constraints.test.jsx.map +1 -0
  29. package/dist/test/dictionaries.test.js +1 -1
  30. package/dist/test/dictionaries.test.js.map +1 -1
  31. package/dist/test/dictionaries.test.jsx +1 -1
  32. package/dist/test/dictionaries.test.jsx.map +1 -1
  33. package/dist/test/models.test.js +2 -2
  34. package/dist/test/models.test.js.map +1 -1
  35. package/dist/test/models.test.jsx +2 -2
  36. package/dist/test/models.test.jsx.map +1 -1
  37. package/dist/test/nullable.test.js +1 -1
  38. package/dist/test/nullable.test.js.map +1 -1
  39. package/dist/test/nullable.test.jsx +1 -1
  40. package/dist/test/nullable.test.jsx.map +1 -1
  41. package/dist/test/optionality.test.js +2 -2
  42. package/dist/test/optionality.test.js.map +1 -1
  43. package/dist/test/optionality.test.jsx +2 -2
  44. package/dist/test/optionality.test.jsx.map +1 -1
  45. package/dist/test/scalars.test.js +13 -13
  46. package/dist/test/scalars.test.js.map +1 -1
  47. package/dist/test/scalars.test.jsx +13 -13
  48. package/dist/test/scalars.test.jsx.map +1 -1
  49. package/dist/test/unions.test.js +1 -1
  50. package/dist/test/unions.test.js.map +1 -1
  51. package/dist/test/unions.test.jsx +1 -1
  52. package/dist/test/unions.test.jsx.map +1 -1
  53. package/package.json +1 -1
@@ -0,0 +1,414 @@
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('string constraints', () => {
6
+ it('applies minLength and maxLength', async () => {
7
+ const runner = await createTestRunner();
8
+ const {
9
+ nameProp
10
+ } = await runner.compile(`
11
+ model Test {
12
+ @test @minLength(1) @maxLength(100) nameProp: string;
13
+ }
14
+ `);
15
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
16
+ type: nameProp
17
+ }), 'Type.String({\n minLength: 1,\n maxLength: 100\n})');
18
+ });
19
+ it('applies pattern', async () => {
20
+ const runner = await createTestRunner();
21
+ const {
22
+ codeProp
23
+ } = await runner.compile(`
24
+ model Test {
25
+ @test @pattern("^[a-z]+$") codeProp: string;
26
+ }
27
+ `);
28
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
29
+ type: codeProp
30
+ }), 'Type.String({\n pattern: "^[a-z]+$"\n})');
31
+ });
32
+ it('applies format', async () => {
33
+ const runner = await createTestRunner();
34
+ const {
35
+ emailProp
36
+ } = await runner.compile(`
37
+ model Test {
38
+ @test @format("email") emailProp: string;
39
+ }
40
+ `);
41
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
42
+ type: emailProp
43
+ }), 'Type.String({\n format: "email"\n})');
44
+ });
45
+ it('escapes backslashes in pattern', async () => {
46
+ const runner = await createTestRunner();
47
+ const {
48
+ phoneProp
49
+ } = await runner.compile(`
50
+ model Test {
51
+ @test @pattern("^\\\\d{3}-\\\\d{4}$") phoneProp: string;
52
+ }
53
+ `);
54
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
55
+ type: phoneProp
56
+ }), 'Type.String({\n pattern: "^\\\\d{3}-\\\\d{4}$"\n})');
57
+ });
58
+ it('applies minLength only', async () => {
59
+ const runner = await createTestRunner();
60
+ const {
61
+ tagProp
62
+ } = await runner.compile(`
63
+ model Test {
64
+ @test @minLength(1) tagProp: string;
65
+ }
66
+ `);
67
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
68
+ type: tagProp
69
+ }), 'Type.String({\n minLength: 1\n})');
70
+ });
71
+ });
72
+ describe('numeric constraints', () => {
73
+ it('applies minValue and maxValue', async () => {
74
+ const runner = await createTestRunner();
75
+ const {
76
+ scoreProp
77
+ } = await runner.compile(`
78
+ model Test {
79
+ @test @minValue(0) @maxValue(100) scoreProp: int32;
80
+ }
81
+ `);
82
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
83
+ type: scoreProp
84
+ }), 'Type.Integer({\n minimum: 0,\n maximum: 100\n})');
85
+ });
86
+ it('applies exclusive bounds', async () => {
87
+ const runner = await createTestRunner();
88
+ const {
89
+ priceProp
90
+ } = await runner.compile(`
91
+ model Test {
92
+ @test @minValueExclusive(0) priceProp: float64;
93
+ }
94
+ `);
95
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
96
+ type: priceProp
97
+ }), 'Type.Number({\n exclusiveMinimum: 0\n})');
98
+ });
99
+ it('applies maxValueExclusive', async () => {
100
+ const runner = await createTestRunner();
101
+ const {
102
+ rateProp
103
+ } = await runner.compile(`
104
+ model Test {
105
+ @test @maxValueExclusive(1) rateProp: float64;
106
+ }
107
+ `);
108
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
109
+ type: rateProp
110
+ }), 'Type.Number({\n exclusiveMaximum: 1\n})');
111
+ });
112
+ it('narrows intrinsic bounds with user constraints', async () => {
113
+ const runner = await createTestRunner();
114
+ const {
115
+ ageProp
116
+ } = await runner.compile(`
117
+ model Test {
118
+ @test @minValue(0) @maxValue(150) ageProp: int32;
119
+ }
120
+ `);
121
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
122
+ type: ageProp
123
+ }), 'Type.Integer({\n minimum: 0,\n maximum: 150\n})');
124
+ });
125
+ });
126
+ describe('intrinsic numeric bounds', () => {
127
+ it('applies int8 bounds', async () => {
128
+ const runner = await createTestRunner();
129
+ const {
130
+ val
131
+ } = await runner.compile(`
132
+ model Test {
133
+ @test val: int8;
134
+ }
135
+ `);
136
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
137
+ get type() {
138
+ return val.type;
139
+ }
140
+ }), 'Type.Integer({\n minimum: -128,\n maximum: 127\n})');
141
+ });
142
+ it('applies uint8 bounds', async () => {
143
+ const runner = await createTestRunner();
144
+ const {
145
+ val
146
+ } = await runner.compile(`
147
+ model Test {
148
+ @test val: uint8;
149
+ }
150
+ `);
151
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
152
+ get type() {
153
+ return val.type;
154
+ }
155
+ }), 'Type.Integer({\n minimum: 0,\n maximum: 255\n})');
156
+ });
157
+ it('applies int16 bounds', async () => {
158
+ const runner = await createTestRunner();
159
+ const {
160
+ val
161
+ } = await runner.compile(`
162
+ model Test {
163
+ @test val: int16;
164
+ }
165
+ `);
166
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
167
+ get type() {
168
+ return val.type;
169
+ }
170
+ }), 'Type.Integer({\n minimum: -32768,\n maximum: 32767\n})');
171
+ });
172
+ it('applies uint16 bounds', async () => {
173
+ const runner = await createTestRunner();
174
+ const {
175
+ val
176
+ } = await runner.compile(`
177
+ model Test {
178
+ @test val: uint16;
179
+ }
180
+ `);
181
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
182
+ get type() {
183
+ return val.type;
184
+ }
185
+ }), 'Type.Integer({\n minimum: 0,\n maximum: 65535\n})');
186
+ });
187
+ it('applies int32 bounds', async () => {
188
+ const runner = await createTestRunner();
189
+ const {
190
+ val
191
+ } = await runner.compile(`
192
+ model Test {
193
+ @test val: int32;
194
+ }
195
+ `);
196
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
197
+ get type() {
198
+ return val.type;
199
+ }
200
+ }), 'Type.Integer({\n minimum: -2147483648,\n maximum: 2147483647\n})');
201
+ });
202
+ it('applies uint32 bounds', async () => {
203
+ const runner = await createTestRunner();
204
+ const {
205
+ val
206
+ } = await runner.compile(`
207
+ model Test {
208
+ @test val: uint32;
209
+ }
210
+ `);
211
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
212
+ get type() {
213
+ return val.type;
214
+ }
215
+ }), 'Type.Integer({\n minimum: 0,\n maximum: 4294967295\n})');
216
+ });
217
+ it('applies safeint bounds', async () => {
218
+ const runner = await createTestRunner();
219
+ const {
220
+ val
221
+ } = await runner.compile(`
222
+ model Test {
223
+ @test val: safeint;
224
+ }
225
+ `);
226
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
227
+ get type() {
228
+ return val.type;
229
+ }
230
+ }), 'Type.Integer({\n minimum: -9007199254740991,\n maximum: 9007199254740991\n})');
231
+ });
232
+ it('applies float32 bounds', async () => {
233
+ const runner = await createTestRunner();
234
+ const {
235
+ val
236
+ } = await runner.compile(`
237
+ model Test {
238
+ @test val: float32;
239
+ }
240
+ `);
241
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
242
+ get type() {
243
+ return val.type;
244
+ }
245
+ }), 'Type.Number({\n minimum: -3.4028235e+38,\n maximum: 3.4028235e+38\n})');
246
+ });
247
+ it('does not apply bounds to float64', async () => {
248
+ const runner = await createTestRunner();
249
+ const {
250
+ val
251
+ } = await runner.compile(`
252
+ model Test {
253
+ @test val: float64;
254
+ }
255
+ `);
256
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
257
+ get type() {
258
+ return val.type;
259
+ }
260
+ }), 'Type.Number()');
261
+ });
262
+ });
263
+ describe('array constraints', () => {
264
+ it('applies minItems and maxItems', async () => {
265
+ const runner = await createTestRunner();
266
+ const {
267
+ itemsProp
268
+ } = await runner.compile(`
269
+ model Test {
270
+ @test @minItems(1) @maxItems(10) itemsProp: string[];
271
+ }
272
+ `);
273
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
274
+ type: itemsProp
275
+ }), 'Type.Array(\n Type.String(),\n {\n minItems: 1,\n maxItems: 10\n }\n)');
276
+ });
277
+ it('applies minItems only', async () => {
278
+ const runner = await createTestRunner();
279
+ const {
280
+ tagsProp
281
+ } = await runner.compile(`
282
+ model Test {
283
+ @test @minItems(1) tagsProp: string[];
284
+ }
285
+ `);
286
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
287
+ type: tagsProp
288
+ }), 'Type.Array(\n Type.String(),\n {\n minItems: 1\n }\n)');
289
+ });
290
+ });
291
+ describe('description', () => {
292
+ it('applies @doc to string property', async () => {
293
+ const runner = await createTestRunner();
294
+ const {
295
+ nameProp
296
+ } = await runner.compile(`
297
+ model Test {
298
+ @test @doc("A person's name") nameProp: string;
299
+ }
300
+ `);
301
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
302
+ type: nameProp
303
+ }), 'Type.String({\n description: "A person\'s name"\n})');
304
+ });
305
+ it('escapes double quotes in description', async () => {
306
+ const runner = await createTestRunner();
307
+ const {
308
+ valProp
309
+ } = await runner.compile(`
310
+ model Test {
311
+ @test @doc("A \\"quoted\\" value") valProp: string;
312
+ }
313
+ `);
314
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
315
+ type: valProp
316
+ }), 'Type.String({\n description: "A \\"quoted\\" value"\n})');
317
+ });
318
+ it('applies @doc to numeric property', async () => {
319
+ const runner = await createTestRunner();
320
+ const {
321
+ ageProp
322
+ } = await runner.compile(`
323
+ model Test {
324
+ @test @doc("Age in years") ageProp: float64;
325
+ }
326
+ `);
327
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
328
+ type: ageProp
329
+ }), 'Type.Number({\n description: "Age in years"\n})');
330
+ });
331
+ });
332
+ describe('defaults', () => {
333
+ it('applies string default', async () => {
334
+ const runner = await createTestRunner();
335
+ const {
336
+ greetingProp
337
+ } = await runner.compile(`
338
+ model Test {
339
+ @test greetingProp?: string = "hello";
340
+ }
341
+ `);
342
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
343
+ type: greetingProp
344
+ }), 'Type.String({\n default: "hello"\n})');
345
+ });
346
+ it('applies numeric default', async () => {
347
+ const runner = await createTestRunner();
348
+ const {
349
+ limitProp
350
+ } = await runner.compile(`
351
+ model Test {
352
+ @test limitProp?: float64 = 10;
353
+ }
354
+ `);
355
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
356
+ type: limitProp
357
+ }), 'Type.Number({\n default: 10\n})');
358
+ });
359
+ it('applies boolean default', async () => {
360
+ const runner = await createTestRunner();
361
+ const {
362
+ activeProp
363
+ } = await runner.compile(`
364
+ model Test {
365
+ @test activeProp?: boolean = true;
366
+ }
367
+ `);
368
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
369
+ type: activeProp
370
+ }), 'Type.Boolean({\n default: true\n})');
371
+ });
372
+ });
373
+ describe('combined constraints', () => {
374
+ it('combines string constraints with description', async () => {
375
+ const runner = await createTestRunner();
376
+ const {
377
+ nameProp
378
+ } = await runner.compile(`
379
+ model Test {
380
+ @test @minLength(1) @maxLength(50) @doc("User name") nameProp: string;
381
+ }
382
+ `);
383
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
384
+ type: nameProp
385
+ }), 'Type.String({\n minLength: 1,\n maxLength: 50,\n description: "User name"\n})');
386
+ });
387
+ it('combines numeric constraints with default', async () => {
388
+ const runner = await createTestRunner();
389
+ const {
390
+ limitProp
391
+ } = await runner.compile(`
392
+ model Test {
393
+ @test @minValue(1) @maxValue(100) limitProp?: float64 = 10;
394
+ }
395
+ `);
396
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
397
+ type: limitProp
398
+ }), 'Type.Number({\n minimum: 1,\n maximum: 100,\n default: 10\n})');
399
+ });
400
+ it('combines format with description', async () => {
401
+ const runner = await createTestRunner();
402
+ const {
403
+ emailProp
404
+ } = await runner.compile(`
405
+ model Test {
406
+ @test @format("email") @doc("Email address") emailProp: string;
407
+ }
408
+ `);
409
+ expectRender(runner.program, _$createComponent(TypeBoxSchema, {
410
+ type: emailProp
411
+ }), 'Type.String({\n format: "email",\n description: "Email address"\n})');
412
+ });
413
+ });
414
+ //# sourceMappingURL=constraints.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","it","TypeBoxSchema","createTestRunner","expectRender","runner","nameProp","compile","program","_$createComponent","type","codeProp","emailProp","phoneProp","tagProp","scoreProp","priceProp","rateProp","ageProp","val","itemsProp","tagsProp","valProp","greetingProp","limitProp","activeProp"],"sources":["../../test/constraints.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}