@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.
Files changed (107) 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 +10 -5
  4. package/dist/src/components/TypeBoxSchema.js.map +1 -1
  5. package/dist/src/components/TypeBoxSchema.jsx +10 -5
  6. package/dist/src/components/TypeBoxSchema.jsx.map +1 -1
  7. package/dist/src/typeboxBaseSchema.d.ts +3 -2
  8. package/dist/src/typeboxBaseSchema.d.ts.map +1 -1
  9. package/dist/src/typeboxBaseSchema.js +207 -74
  10. package/dist/src/typeboxBaseSchema.js.map +1 -1
  11. package/dist/src/typeboxBaseSchema.jsx +148 -52
  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 +15 -1
  30. package/dist/test/dictionaries.test.js.map +1 -1
  31. package/dist/test/dictionaries.test.jsx +11 -1
  32. package/dist/test/dictionaries.test.jsx.map +1 -1
  33. package/dist/test/discriminated-unions.test.d.ts +2 -0
  34. package/dist/test/discriminated-unions.test.d.ts.map +1 -0
  35. package/dist/test/discriminated-unions.test.js +156 -0
  36. package/dist/test/discriminated-unions.test.js.map +1 -0
  37. package/dist/test/discriminated-unions.test.jsx +105 -0
  38. package/dist/test/discriminated-unions.test.jsx.map +1 -0
  39. package/dist/test/emitter/custom-scalars.test.d.ts +2 -0
  40. package/dist/test/emitter/custom-scalars.test.d.ts.map +1 -0
  41. package/dist/test/emitter/custom-scalars.test.js +42 -0
  42. package/dist/test/emitter/custom-scalars.test.js.map +1 -0
  43. package/dist/test/emitter/custom-scalars.test.jsx +38 -0
  44. package/dist/test/emitter/custom-scalars.test.jsx.map +1 -0
  45. package/dist/test/emitter/discriminated-unions.test.d.ts +2 -0
  46. package/dist/test/emitter/discriminated-unions.test.d.ts.map +1 -0
  47. package/dist/test/emitter/discriminated-unions.test.js +52 -0
  48. package/dist/test/emitter/discriminated-unions.test.js.map +1 -0
  49. package/dist/test/emitter/discriminated-unions.test.jsx +48 -0
  50. package/dist/test/emitter/discriminated-unions.test.jsx.map +1 -0
  51. package/dist/test/emitter/inheritance.test.d.ts +2 -0
  52. package/dist/test/emitter/inheritance.test.d.ts.map +1 -0
  53. package/dist/test/emitter/inheritance.test.js +56 -0
  54. package/dist/test/emitter/inheritance.test.js.map +1 -0
  55. package/dist/test/emitter/inheritance.test.jsx +50 -0
  56. package/dist/test/emitter/inheritance.test.jsx.map +1 -0
  57. package/dist/test/emitter/recursive.test.d.ts +2 -0
  58. package/dist/test/emitter/recursive.test.d.ts.map +1 -0
  59. package/dist/test/emitter/recursive.test.js +36 -0
  60. package/dist/test/emitter/recursive.test.js.map +1 -0
  61. package/dist/test/emitter/recursive.test.jsx +32 -0
  62. package/dist/test/emitter/recursive.test.jsx.map +1 -0
  63. package/dist/test/emitter/tuples.test.d.ts +2 -0
  64. package/dist/test/emitter/tuples.test.d.ts.map +1 -0
  65. package/dist/test/emitter/tuples.test.js +22 -0
  66. package/dist/test/emitter/tuples.test.js.map +1 -0
  67. package/dist/test/emitter/tuples.test.jsx +20 -0
  68. package/dist/test/emitter/tuples.test.jsx.map +1 -0
  69. package/dist/test/inheritance.test.d.ts +2 -0
  70. package/dist/test/inheritance.test.d.ts.map +1 -0
  71. package/dist/test/inheritance.test.js +162 -0
  72. package/dist/test/inheritance.test.js.map +1 -0
  73. package/dist/test/inheritance.test.jsx +92 -0
  74. package/dist/test/inheritance.test.jsx.map +1 -0
  75. package/dist/test/models.test.js +37 -2
  76. package/dist/test/models.test.js.map +1 -1
  77. package/dist/test/models.test.jsx +29 -2
  78. package/dist/test/models.test.jsx.map +1 -1
  79. package/dist/test/nullable.test.js +1 -1
  80. package/dist/test/nullable.test.js.map +1 -1
  81. package/dist/test/nullable.test.jsx +1 -1
  82. package/dist/test/nullable.test.jsx.map +1 -1
  83. package/dist/test/optionality.test.js +2 -2
  84. package/dist/test/optionality.test.js.map +1 -1
  85. package/dist/test/optionality.test.jsx +2 -2
  86. package/dist/test/optionality.test.jsx.map +1 -1
  87. package/dist/test/recursive.test.d.ts +2 -0
  88. package/dist/test/recursive.test.d.ts.map +1 -0
  89. package/dist/test/recursive.test.js +137 -0
  90. package/dist/test/recursive.test.js.map +1 -0
  91. package/dist/test/recursive.test.jsx +75 -0
  92. package/dist/test/recursive.test.jsx.map +1 -0
  93. package/dist/test/scalars.test.js +13 -13
  94. package/dist/test/scalars.test.js.map +1 -1
  95. package/dist/test/scalars.test.jsx +13 -13
  96. package/dist/test/scalars.test.jsx.map +1 -1
  97. package/dist/test/tuples.test.d.ts +2 -0
  98. package/dist/test/tuples.test.d.ts.map +1 -0
  99. package/dist/test/tuples.test.js +67 -0
  100. package/dist/test/tuples.test.js.map +1 -0
  101. package/dist/test/tuples.test.jsx +42 -0
  102. package/dist/test/tuples.test.jsx.map +1 -0
  103. package/dist/test/unions.test.js +1 -1
  104. package/dist/test/unions.test.js.map +1 -1
  105. package/dist/test/unions.test.jsx +1 -1
  106. package/dist/test/unions.test.jsx.map +1 -1
  107. package/package.json +7 -7
@@ -1,9 +1,43 @@
1
- import { For, refkey } from '@alloy-js/core';
1
+ import { createContext, For, refkey } from '@alloy-js/core';
2
2
  import { ArrayExpression, MemberExpression, ObjectExpression, ObjectProperty, } from '@alloy-js/typescript';
3
+ import { getDiscriminator, getDiscriminatedUnionFromInheritance, } from '@typespec/compiler';
3
4
  import { useTsp } from '@typespec/emitter-framework';
4
5
  import { TypeBoxSchema } from './components/TypeBoxSchema.jsx';
6
+ import { buildTypeboxOpts } from './typeboxConstraints.jsx';
5
7
  import { isRecord, refkeySym, shouldReference, typeboxCall } from './utils.jsx';
6
- export function typeboxBaseSchemaParts(type) {
8
+ export const RecursiveModelContext = createContext();
9
+ function isSelfReferencing($, model) {
10
+ const visited = new Set();
11
+ function check(type) {
12
+ if (visited.has(type))
13
+ return false;
14
+ visited.add(type);
15
+ if (type === model)
16
+ return true;
17
+ if (type.kind === 'Model') {
18
+ if ($.array.is(type)) {
19
+ return check(type.indexer.value);
20
+ }
21
+ if (isRecord($.program, type)) {
22
+ return check(type.indexer.value);
23
+ }
24
+ return false;
25
+ }
26
+ if (type.kind === 'Union') {
27
+ for (const variant of type.variants.values()) {
28
+ if (check(variant.type))
29
+ return true;
30
+ }
31
+ }
32
+ return false;
33
+ }
34
+ for (const prop of model.properties.values()) {
35
+ if (check(prop.type))
36
+ return true;
37
+ }
38
+ return false;
39
+ }
40
+ export function typeboxBaseSchemaParts(type, member) {
7
41
  const { $ } = useTsp();
8
42
  switch (type.kind) {
9
43
  case 'Intrinsic':
@@ -13,9 +47,9 @@ export function typeboxBaseSchemaParts(type) {
13
47
  case 'Boolean':
14
48
  return literalBaseType($, type);
15
49
  case 'Scalar':
16
- return scalarBaseType($, type);
50
+ return scalarBaseType($, type, member);
17
51
  case 'Model':
18
- return modelBaseType($, type);
52
+ return modelBaseType($, type, member);
19
53
  case 'Union':
20
54
  return unionBaseType(type);
21
55
  case 'Enum':
@@ -23,7 +57,7 @@ export function typeboxBaseSchemaParts(type) {
23
57
  case 'Tuple':
24
58
  return tupleBaseType(type);
25
59
  case 'ModelProperty':
26
- return typeboxBaseSchemaParts(type.type);
60
+ return typeboxBaseSchemaParts(type.type, type);
27
61
  case 'EnumMember':
28
62
  return type.value
29
63
  ? literalBaseType($, $.literal.create(type.value))
@@ -41,94 +75,157 @@ function literalBaseType($, type) {
41
75
  return typeboxCall('Literal', `${type.value}`);
42
76
  }
43
77
  }
44
- function formatOpts(format) {
45
- return (<ObjectExpression>
46
- <ObjectProperty name="format">{`"${format}"`}</ObjectProperty>
47
- </ObjectExpression>);
48
- }
49
- function scalarBaseType($, type) {
78
+ function scalarBaseType($, type, member) {
50
79
  if (type.baseScalar && shouldReference($.program, type.baseScalar)) {
51
80
  return (<MemberExpression>
52
81
  <MemberExpression.Part refkey={refkey(type.baseScalar, refkeySym)}/>
53
82
  </MemberExpression>);
54
83
  }
55
84
  if ($.scalar.extendsBoolean(type)) {
56
- return typeboxCall('Boolean');
85
+ const opts = buildTypeboxOpts($, type, { member });
86
+ return typeboxCall('Boolean', ...(opts ? [opts] : []));
57
87
  }
58
88
  else if ($.scalar.extendsNumeric(type)) {
89
+ const opts = buildTypeboxOpts($, type, { member });
59
90
  if ($.scalar.extendsInteger(type)) {
60
91
  if ($.scalar.extendsInt32(type) ||
61
92
  $.scalar.extendsUint32(type) ||
62
93
  $.scalar.extendsSafeint(type)) {
63
- return typeboxCall('Integer');
94
+ return typeboxCall('Integer', ...(opts ? [opts] : []));
64
95
  }
65
96
  else {
66
97
  return typeboxCall('BigInt');
67
98
  }
68
99
  }
69
100
  else {
70
- return typeboxCall('Number');
101
+ return typeboxCall('Number', ...(opts ? [opts] : []));
71
102
  }
72
103
  }
73
104
  else if ($.scalar.extendsString(type)) {
74
105
  if ($.scalar.extendsUrl(type)) {
75
- return typeboxCall('String', formatOpts('uri'));
106
+ const opts = buildTypeboxOpts($, type, { member, format: 'uri' });
107
+ return typeboxCall('String', ...(opts ? [opts] : []));
76
108
  }
77
- return typeboxCall('String');
109
+ const opts = buildTypeboxOpts($, type, { member });
110
+ return typeboxCall('String', ...(opts ? [opts] : []));
78
111
  }
79
112
  else if ($.scalar.extendsBytes(type)) {
80
113
  return typeboxCall('Any');
81
114
  }
82
115
  else if ($.scalar.extendsPlainDate(type)) {
83
- return typeboxCall('Date');
116
+ const opts = buildTypeboxOpts($, type, { member, format: 'date' });
117
+ return typeboxCall('String', ...(opts ? [opts] : []));
84
118
  }
85
119
  else if ($.scalar.extendsPlainTime(type)) {
86
- return typeboxCall('String', formatOpts('time'));
120
+ const opts = buildTypeboxOpts($, type, { member, format: 'time' });
121
+ return typeboxCall('String', ...(opts ? [opts] : []));
87
122
  }
88
123
  else if ($.scalar.extendsUtcDateTime(type)) {
89
124
  const encoding = $.scalar.getEncoding(type);
90
125
  if (encoding === undefined) {
91
- return typeboxCall('Date');
126
+ const opts = buildTypeboxOpts($, type, { member, format: 'date-time' });
127
+ return typeboxCall('String', ...(opts ? [opts] : []));
92
128
  }
93
129
  else if (encoding.encoding === 'unixTimestamp') {
94
- return scalarBaseType($, encoding.type);
130
+ return scalarBaseType($, encoding.type, member);
95
131
  }
96
132
  else if (encoding.encoding === 'rfc3339') {
97
- return typeboxCall('String', formatOpts('date-time'));
133
+ const opts = buildTypeboxOpts($, type, { member, format: 'date-time' });
134
+ return typeboxCall('String', ...(opts ? [opts] : []));
98
135
  }
99
136
  else {
100
- return scalarBaseType($, encoding.type);
137
+ return scalarBaseType($, encoding.type, member);
101
138
  }
102
139
  }
103
140
  else if ($.scalar.extendsOffsetDateTime(type)) {
104
141
  const encoding = $.scalar.getEncoding(type);
105
142
  if (encoding === undefined) {
106
- return typeboxCall('Date');
143
+ const opts = buildTypeboxOpts($, type, { member, format: 'date-time' });
144
+ return typeboxCall('String', ...(opts ? [opts] : []));
107
145
  }
108
146
  else if (encoding.encoding === 'rfc3339') {
109
- return typeboxCall('String', formatOpts('date-time'));
147
+ const opts = buildTypeboxOpts($, type, { member, format: 'date-time' });
148
+ return typeboxCall('String', ...(opts ? [opts] : []));
110
149
  }
111
150
  else {
112
- return scalarBaseType($, encoding.type);
151
+ return scalarBaseType($, encoding.type, member);
113
152
  }
114
153
  }
115
154
  else if ($.scalar.extendsDuration(type)) {
116
155
  const encoding = $.scalar.getEncoding(type);
117
156
  if (encoding === undefined || encoding.encoding === 'ISO8601') {
118
- return typeboxCall('String', formatOpts('duration'));
157
+ const opts = buildTypeboxOpts($, type, { member, format: 'duration' });
158
+ return typeboxCall('String', ...(opts ? [opts] : []));
119
159
  }
120
160
  else {
121
- return scalarBaseType($, encoding.type);
161
+ return scalarBaseType($, encoding.type, member);
122
162
  }
123
163
  }
124
164
  else {
125
165
  return typeboxCall('Any');
126
166
  }
127
167
  }
128
- function modelBaseType($, type) {
168
+ function hasDiscriminatedAncestor($, type) {
169
+ let current = type.baseModel;
170
+ while (current) {
171
+ if (getDiscriminator($.program, current))
172
+ return true;
173
+ current = current.baseModel;
174
+ }
175
+ return false;
176
+ }
177
+ function buildObjectFromProperties(properties) {
178
+ const members = (<ObjectExpression>
179
+ <For each={properties} comma hardline enderPunctuation>
180
+ {function (prop) {
181
+ const schema = <TypeBoxSchema type={prop} nested/>;
182
+ return (<ObjectProperty name={prop.name}>
183
+ {prop.optional ? typeboxCall('Optional', schema) : schema}
184
+ </ObjectProperty>);
185
+ }}
186
+ </For>
187
+ </ObjectExpression>);
188
+ return typeboxCall('Object', members);
189
+ }
190
+ function modelBaseType($, type, member) {
129
191
  if ($.array.is(type)) {
130
- return typeboxCall('Array', <TypeBoxSchema type={type.indexer.value} nested/>);
192
+ const opts = buildTypeboxOpts($, type, { member });
193
+ return typeboxCall('Array', <TypeBoxSchema type={type.indexer.value} nested/>, ...(opts ? [opts] : []));
194
+ }
195
+ const discriminator = getDiscriminator($.program, type);
196
+ if (discriminator) {
197
+ const [discUnion] = getDiscriminatedUnionFromInheritance(type, discriminator);
198
+ if (discUnion && discUnion.variants.size > 0) {
199
+ const variants = [...discUnion.variants.values()];
200
+ return typeboxCall('Union', <ArrayExpression>
201
+ <For each={variants} comma line>
202
+ {function (variant) {
203
+ return <TypeBoxSchema type={variant} nested/>;
204
+ }}
205
+ </For>
206
+ </ArrayExpression>);
207
+ }
131
208
  }
209
+ if (hasDiscriminatedAncestor($, type)) {
210
+ const allProperties = $.model.getProperties(type, { includeExtended: true });
211
+ if (allProperties.size > 0) {
212
+ return buildObjectFromProperties([...allProperties.values()]);
213
+ }
214
+ return typeboxCall('Object', <ObjectExpression />);
215
+ }
216
+ const recursive = isSelfReferencing($, type);
217
+ const schema = recursive ? (<RecursiveModelContext.Provider value={type}>
218
+ {modelSchemaBody($, type)}
219
+ </RecursiveModelContext.Provider>) : (modelSchemaBody($, type));
220
+ if (recursive) {
221
+ return typeboxCall('Recursive', <>
222
+ {'This => '}
223
+ {schema}
224
+ </>);
225
+ }
226
+ return schema;
227
+ }
228
+ function modelSchemaBody($, type) {
132
229
  let recordPart;
133
230
  if (isRecord($.program, type) ||
134
231
  (!!type.baseModel &&
@@ -138,37 +235,36 @@ function modelBaseType($, type) {
138
235
  }
139
236
  let objectPart;
140
237
  if (type.properties.size > 0) {
141
- const members = (<ObjectExpression>
142
- <For each={type.properties.values()} comma hardline enderPunctuation>
143
- {function (prop) {
144
- const schema = <TypeBoxSchema type={prop} nested/>;
145
- return (<ObjectProperty name={prop.name}>
146
- {prop.optional ? typeboxCall('Optional', schema) : schema}
147
- </ObjectProperty>);
148
- }}
149
- </For>
150
- </ObjectExpression>);
151
- objectPart = typeboxCall('Object', members);
152
- }
153
- if (!objectPart && !recordPart) {
154
- return typeboxCall('Object', <ObjectExpression />);
238
+ objectPart = buildObjectFromProperties([...type.properties.values()]);
155
239
  }
240
+ let ownSchema;
156
241
  if (objectPart && recordPart) {
157
- return typeboxCall('Intersect', <ArrayExpression>
158
- {objectPart}
159
- {recordPart}
242
+ const parts = [objectPart, recordPart];
243
+ ownSchema = typeboxCall('Intersect', <ArrayExpression>
244
+ <For each={parts} comma line>
245
+ {function (part) {
246
+ return part;
247
+ }}
248
+ </For>
160
249
  </ArrayExpression>);
161
250
  }
162
- const parts = objectPart ?? recordPart;
251
+ else {
252
+ ownSchema = objectPart ?? recordPart ?? typeboxCall('Object', <ObjectExpression />);
253
+ }
163
254
  if (type.baseModel && shouldReference($.program, type.baseModel)) {
255
+ const baseRef = (<MemberExpression>
256
+ <MemberExpression.Part refkey={refkey(type.baseModel, refkeySym)}/>
257
+ </MemberExpression>);
258
+ const intersectParts = [baseRef, ownSchema];
164
259
  return typeboxCall('Intersect', <ArrayExpression>
165
- <MemberExpression>
166
- <MemberExpression.Part refkey={refkey(type.baseModel, refkeySym)}/>
167
- </MemberExpression>
168
- {parts}
260
+ <For each={intersectParts} comma line>
261
+ {function (part) {
262
+ return part;
263
+ }}
264
+ </For>
169
265
  </ArrayExpression>);
170
266
  }
171
- return parts;
267
+ return ownSchema;
172
268
  }
173
269
  function unionBaseType(type) {
174
270
  return typeboxCall('Union', <ArrayExpression>
@@ -1 +1 @@
1
- {"version":3,"file":"typeboxBaseSchema.jsx","sourceRoot":"","sources":["../../src/typeboxBaseSchema.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typeboxBaseSchema.jsx","sourceRoot":"","sources":["../../src/typeboxBaseSchema.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Children } from '@alloy-js/core/jsx-runtime';
2
+ import { ModelProperty, Type } from '@typespec/compiler';
3
+ import { Typekit } from '@typespec/compiler/typekit';
4
+ interface BuildTypeboxOptsConfig {
5
+ member?: ModelProperty;
6
+ format?: string;
7
+ }
8
+ export declare function buildTypeboxOpts($: Typekit, type: Type, config?: BuildTypeboxOptsConfig): Children | undefined;
9
+ export {};
10
+ //# sourceMappingURL=typeboxConstraints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeboxConstraints.d.ts","sourceRoot":"","sources":["../../src/typeboxConstraints.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAyB,aAAa,EAAU,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAIrD,UAAU,sBAAsB;IAC9B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,OAAO,EACV,IAAI,EAAE,IAAI,EACV,MAAM,CAAC,EAAE,sBAAsB,GAC9B,QAAQ,GAAG,SAAS,CAqCtB"}
@@ -0,0 +1,308 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { For } from '@alloy-js/core';
3
+ import { ObjectExpression, ObjectProperty } from '@alloy-js/typescript';
4
+ import { getFormat, getPattern } from '@typespec/compiler';
5
+ import { ValueExpression } from '@typespec/emitter-framework/typescript';
6
+ import { isBuiltIn, shouldReference } from "./utils.js";
7
+ export function buildTypeboxOpts($, type, config) {
8
+ const member = config?.member;
9
+ const properties = [];
10
+ let hasFormat = false;
11
+ if ($.scalar.is(type)) {
12
+ if ($.scalar.extendsString(type)) {
13
+ hasFormat = collectStringConstraints($, type, member, properties);
14
+ } else if ($.scalar.extendsNumeric(type)) {
15
+ collectNumericConstraints($, type, member, properties);
16
+ }
17
+ }
18
+ if (!hasFormat && config?.format) {
19
+ properties.push(_$createComponent(ObjectProperty, {
20
+ name: "format",
21
+ get children() {
22
+ return `"${config.format}"`;
23
+ }
24
+ }));
25
+ }
26
+ if (type.kind === 'Model' && $.array.is(type)) {
27
+ collectArrayConstraints($, type, member, properties);
28
+ }
29
+ collectDescription($, type, member, properties);
30
+ collectDefault(member, properties);
31
+ if (properties.length === 0) {
32
+ return undefined;
33
+ }
34
+ return _$createComponent(ObjectExpression, {
35
+ get children() {
36
+ return _$createComponent(For, {
37
+ each: properties,
38
+ comma: true,
39
+ hardline: true,
40
+ children: function (prop) {
41
+ return prop;
42
+ }
43
+ });
44
+ }
45
+ });
46
+ }
47
+ function getDecoratorSources($, type, member) {
48
+ if (!$.scalar.is(type)) {
49
+ return [...(member ? [member] : []), type];
50
+ }
51
+ const sources = [...(member ? [member] : []), type];
52
+ let current = type.baseScalar;
53
+ while (current && !shouldReference($.program, current)) {
54
+ sources.push(current);
55
+ current = current.baseScalar;
56
+ }
57
+ return sources;
58
+ }
59
+ function maxNumeric(a, b) {
60
+ if (a === undefined) return b;
61
+ if (b === undefined) return a;
62
+ return Math.max(a, b);
63
+ }
64
+ function minNumeric(a, b) {
65
+ if (a === undefined) return b;
66
+ if (b === undefined) return a;
67
+ return Math.min(a, b);
68
+ }
69
+ function collectStringConstraints($, type, member, properties) {
70
+ const sources = getDecoratorSources($, type, member);
71
+ let minLength;
72
+ let maxLength;
73
+ let pattern;
74
+ let format;
75
+ for (const source of sources.reverse()) {
76
+ const srcMinLength = $.type.minLength(source);
77
+ const srcMaxLength = $.type.maxLength(source);
78
+ const srcPattern = getPattern($.program, source);
79
+ const srcFormat = getFormat($.program, source);
80
+ minLength = maxNumeric(minLength, srcMinLength);
81
+ maxLength = minNumeric(maxLength, srcMaxLength);
82
+ pattern = pattern ?? srcPattern;
83
+ format = format ?? srcFormat;
84
+ }
85
+ if (minLength !== undefined) {
86
+ properties.push(_$createComponent(ObjectProperty, {
87
+ name: "minLength",
88
+ children: `${minLength}`
89
+ }));
90
+ }
91
+ if (maxLength !== undefined) {
92
+ properties.push(_$createComponent(ObjectProperty, {
93
+ name: "maxLength",
94
+ children: `${maxLength}`
95
+ }));
96
+ }
97
+ if (pattern !== undefined) {
98
+ properties.push(_$createComponent(ObjectProperty, {
99
+ name: "pattern",
100
+ get children() {
101
+ return `"${pattern.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
102
+ }
103
+ }));
104
+ }
105
+ if (format !== undefined) {
106
+ properties.push(_$createComponent(ObjectProperty, {
107
+ name: "format",
108
+ children: `"${format}"`
109
+ }));
110
+ }
111
+ return format !== undefined;
112
+ }
113
+ function intrinsicNumericConstraints($, type) {
114
+ if (!$.scalar.is(type)) return {};
115
+ const knownType = $.scalar.getStdBase(type);
116
+ if (!knownType || !$.scalar.extendsNumeric(knownType)) return {};
117
+ if ($.scalar.extendsInt8(knownType)) {
118
+ return {
119
+ min: -(1 << 7),
120
+ max: (1 << 7) - 1
121
+ };
122
+ } else if ($.scalar.extendsInt16(knownType)) {
123
+ return {
124
+ min: -(1 << 15),
125
+ max: (1 << 15) - 1
126
+ };
127
+ } else if ($.scalar.extendsInt32(knownType)) {
128
+ return {
129
+ min: Number(-(1n << 31n)),
130
+ max: Number((1n << 31n) - 1n)
131
+ };
132
+ } else if ($.scalar.extendsUint8(knownType)) {
133
+ return {
134
+ min: 0,
135
+ max: (1 << 8) - 1
136
+ };
137
+ } else if ($.scalar.extendsUint16(knownType)) {
138
+ return {
139
+ min: 0,
140
+ max: (1 << 16) - 1
141
+ };
142
+ } else if ($.scalar.extendsUint32(knownType)) {
143
+ return {
144
+ min: 0,
145
+ max: Number((1n << 32n) - 1n)
146
+ };
147
+ } else if ($.scalar.extendsSafeint(knownType)) {
148
+ return {
149
+ min: Number.MIN_SAFE_INTEGER,
150
+ max: Number.MAX_SAFE_INTEGER
151
+ };
152
+ } else if ($.scalar.extendsFloat32(knownType)) {
153
+ return {
154
+ min: -3.4028235e38,
155
+ max: 3.4028235e38
156
+ };
157
+ }
158
+ return {};
159
+ }
160
+ function assignNumericConstraints(target, source) {
161
+ target.min = maxNumeric(target.min, source.min);
162
+ target.max = minNumeric(target.max, source.max);
163
+ target.minExclusive = maxNumeric(target.minExclusive, source.minExclusive);
164
+ target.maxExclusive = minNumeric(target.maxExclusive, source.maxExclusive);
165
+ }
166
+ function collectNumericConstraints($, type, member, properties) {
167
+ const sources = getDecoratorSources($, type, member);
168
+ const intrinsic = intrinsicNumericConstraints($, type);
169
+ const decorator = {};
170
+ for (const source of sources) {
171
+ const srcConstraints = {
172
+ min: $.type.minValue(source),
173
+ max: $.type.maxValue(source),
174
+ minExclusive: $.type.minValueExclusive(source),
175
+ maxExclusive: $.type.maxValueExclusive(source)
176
+ };
177
+ assignNumericConstraints(decorator, srcConstraints);
178
+ }
179
+ if (decorator.min !== undefined && decorator.minExclusive !== undefined) {
180
+ if (decorator.minExclusive > decorator.min) {
181
+ delete decorator.min;
182
+ } else {
183
+ delete decorator.minExclusive;
184
+ }
185
+ }
186
+ if (decorator.max !== undefined && decorator.maxExclusive !== undefined) {
187
+ if (decorator.maxExclusive < decorator.max) {
188
+ delete decorator.max;
189
+ } else {
190
+ delete decorator.maxExclusive;
191
+ }
192
+ }
193
+ const final = {};
194
+ if (intrinsic.min !== undefined) {
195
+ if (decorator.min !== undefined) {
196
+ if (intrinsic.min > decorator.min) {
197
+ delete decorator.min;
198
+ } else {
199
+ delete intrinsic.min;
200
+ }
201
+ } else if (decorator.minExclusive !== undefined) {
202
+ if (intrinsic.min > decorator.minExclusive) {
203
+ delete decorator.minExclusive;
204
+ } else {
205
+ delete intrinsic.min;
206
+ }
207
+ }
208
+ }
209
+ if (intrinsic.max !== undefined) {
210
+ if (decorator.max !== undefined) {
211
+ if (intrinsic.max < decorator.max) {
212
+ delete decorator.max;
213
+ } else {
214
+ delete intrinsic.max;
215
+ }
216
+ } else if (decorator.maxExclusive !== undefined) {
217
+ if (intrinsic.max < decorator.maxExclusive) {
218
+ delete decorator.maxExclusive;
219
+ } else {
220
+ delete intrinsic.max;
221
+ }
222
+ }
223
+ }
224
+ assignNumericConstraints(final, intrinsic);
225
+ assignNumericConstraints(final, decorator);
226
+ if (final.min !== undefined) {
227
+ properties.push(_$createComponent(ObjectProperty, {
228
+ name: "minimum",
229
+ get children() {
230
+ return `${final.min}`;
231
+ }
232
+ }));
233
+ }
234
+ if (final.max !== undefined) {
235
+ properties.push(_$createComponent(ObjectProperty, {
236
+ name: "maximum",
237
+ get children() {
238
+ return `${final.max}`;
239
+ }
240
+ }));
241
+ }
242
+ if (final.minExclusive !== undefined) {
243
+ properties.push(_$createComponent(ObjectProperty, {
244
+ name: "exclusiveMinimum",
245
+ get children() {
246
+ return `${final.minExclusive}`;
247
+ }
248
+ }));
249
+ }
250
+ if (final.maxExclusive !== undefined) {
251
+ properties.push(_$createComponent(ObjectProperty, {
252
+ name: "exclusiveMaximum",
253
+ get children() {
254
+ return `${final.maxExclusive}`;
255
+ }
256
+ }));
257
+ }
258
+ }
259
+ function collectArrayConstraints($, type, member, properties) {
260
+ let minItems = $.type.minItems(type);
261
+ let maxItems = $.type.maxItems(type);
262
+ if (member) {
263
+ minItems = maxNumeric(minItems, $.type.minItems(member));
264
+ maxItems = minNumeric(maxItems, $.type.maxItems(member));
265
+ }
266
+ if (minItems !== undefined && minItems > 0) {
267
+ properties.push(_$createComponent(ObjectProperty, {
268
+ name: "minItems",
269
+ children: `${minItems}`
270
+ }));
271
+ }
272
+ if (maxItems !== undefined && maxItems > 0) {
273
+ properties.push(_$createComponent(ObjectProperty, {
274
+ name: "maxItems",
275
+ children: `${maxItems}`
276
+ }));
277
+ }
278
+ }
279
+ function collectDescription($, type, member, properties) {
280
+ let description;
281
+ if (member) {
282
+ description = $.type.getDoc(member);
283
+ }
284
+ if (!description && !isBuiltIn($.program, type)) {
285
+ description = $.type.getDoc(type);
286
+ }
287
+ if (description) {
288
+ const escaped = description.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
289
+ properties.push(_$createComponent(ObjectProperty, {
290
+ name: "description",
291
+ children: `"${escaped}"`
292
+ }));
293
+ }
294
+ }
295
+ function collectDefault(member, properties) {
296
+ if (!member || !member.defaultValue) return;
297
+ properties.push(_$createComponent(ObjectProperty, {
298
+ name: "default",
299
+ get children() {
300
+ return _$createComponent(ValueExpression, {
301
+ get value() {
302
+ return member.defaultValue;
303
+ }
304
+ });
305
+ }
306
+ }));
307
+ }
308
+ //# sourceMappingURL=typeboxConstraints.js.map