@typespec/compiler 0.61.0-dev.6 → 0.61.0-dev.8
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/dist/manifest.js +2 -2
- package/dist/src/core/numeric.js +1 -1
- package/dist/src/core/numeric.js.map +1 -1
- package/dist/src/core/program.d.ts.map +1 -1
- package/dist/src/core/program.js +2 -0
- package/dist/src/core/program.js.map +1 -1
- package/dist/src/experimental/index.d.ts +3 -0
- package/dist/src/experimental/index.d.ts.map +1 -1
- package/dist/src/experimental/index.js +3 -0
- package/dist/src/experimental/index.js.map +1 -1
- package/dist/src/experimental/mutators.d.ts +57 -0
- package/dist/src/experimental/mutators.d.ts.map +1 -0
- package/dist/src/experimental/mutators.js +173 -0
- package/dist/src/experimental/mutators.js.map +1 -0
- package/dist/src/experimental/realm.d.ts +34 -0
- package/dist/src/experimental/realm.d.ts.map +1 -0
- package/dist/src/experimental/realm.js +128 -0
- package/dist/src/experimental/realm.js.map +1 -0
- package/dist/src/experimental/typekit/define-kit.d.ts +28 -0
- package/dist/src/experimental/typekit/define-kit.d.ts.map +1 -0
- package/dist/src/experimental/typekit/define-kit.js +45 -0
- package/dist/src/experimental/typekit/define-kit.js.map +1 -0
- package/dist/src/experimental/typekit/index.d.ts +3 -0
- package/dist/src/experimental/typekit/index.d.ts.map +1 -0
- package/dist/src/experimental/typekit/index.js +3 -0
- package/dist/src/experimental/typekit/index.js.map +1 -0
- package/dist/src/experimental/typekit/kits/index.d.ts +9 -0
- package/dist/src/experimental/typekit/kits/index.d.ts.map +1 -0
- package/dist/src/experimental/typekit/kits/index.js +9 -0
- package/dist/src/experimental/typekit/kits/index.js.map +1 -0
- package/dist/src/experimental/typekit/kits/literal.d.ts +59 -0
- package/dist/src/experimental/typekit/kits/literal.d.ts.map +1 -0
- package/dist/src/experimental/typekit/kits/literal.js +51 -0
- package/dist/src/experimental/typekit/kits/literal.js.map +1 -0
- package/dist/src/experimental/typekit/kits/model-property.d.ts +45 -0
- package/dist/src/experimental/typekit/kits/model-property.d.ts.map +1 -0
- package/dist/src/experimental/typekit/kits/model-property.js +19 -0
- package/dist/src/experimental/typekit/kits/model-property.js.map +1 -0
- package/dist/src/experimental/typekit/kits/model.d.ts +48 -0
- package/dist/src/experimental/typekit/kits/model.d.ts.map +1 -0
- package/dist/src/experimental/typekit/kits/model.js +26 -0
- package/dist/src/experimental/typekit/kits/model.js.map +1 -0
- package/dist/src/experimental/typekit/kits/realm.d.ts +24 -0
- package/dist/src/experimental/typekit/kits/realm.d.ts.map +1 -0
- package/dist/src/experimental/typekit/kits/realm.js +17 -0
- package/dist/src/experimental/typekit/kits/realm.js.map +1 -0
- package/dist/src/experimental/typekit/kits/scalar.d.ts +354 -0
- package/dist/src/experimental/typekit/kits/scalar.d.ts.map +1 -0
- package/dist/src/experimental/typekit/kits/scalar.js +91 -0
- package/dist/src/experimental/typekit/kits/scalar.js.map +1 -0
- package/dist/src/experimental/typekit/kits/type.d.ts +25 -0
- package/dist/src/experimental/typekit/kits/type.d.ts.map +1 -0
- package/dist/src/experimental/typekit/kits/type.js +55 -0
- package/dist/src/experimental/typekit/kits/type.js.map +1 -0
- package/dist/src/experimental/typekit/kits/union-variant.d.ts +43 -0
- package/dist/src/experimental/typekit/kits/union-variant.d.ts.map +1 -0
- package/dist/src/experimental/typekit/kits/union-variant.js +22 -0
- package/dist/src/experimental/typekit/kits/union-variant.js.map +1 -0
- package/dist/src/experimental/typekit/kits/union.d.ts +56 -0
- package/dist/src/experimental/typekit/kits/union.d.ts.map +1 -0
- package/dist/src/experimental/typekit/kits/union.js +69 -0
- package/dist/src/experimental/typekit/kits/union.js.map +1 -0
- package/dist/src/experimental/typekit/utils.d.ts +8 -0
- package/dist/src/experimental/typekit/utils.d.ts.map +1 -0
- package/dist/src/experimental/typekit/utils.js +28 -0
- package/dist/src/experimental/typekit/utils.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
import type { Scalar, Type } from "../../../core/types.js";
|
|
2
|
+
import { type EncodeData } from "../../../lib/decorators.js";
|
|
3
|
+
interface ScalarKit {
|
|
4
|
+
/**
|
|
5
|
+
* Operations for scalar types like strings, numerics, booleans, dates, etc.
|
|
6
|
+
*/
|
|
7
|
+
scalar: {
|
|
8
|
+
/**
|
|
9
|
+
* Check if `type` is any scalar type.
|
|
10
|
+
*
|
|
11
|
+
* @param type The type to check.
|
|
12
|
+
*/
|
|
13
|
+
is(type: Type): type is Scalar;
|
|
14
|
+
/**
|
|
15
|
+
* Check if `type` is exactly the standard boolean type.
|
|
16
|
+
*
|
|
17
|
+
* @param type The type to check.
|
|
18
|
+
*/
|
|
19
|
+
isBoolean(type: Type): type is Scalar;
|
|
20
|
+
/**
|
|
21
|
+
* Check if `type` is exactly the standard bytes type.
|
|
22
|
+
*
|
|
23
|
+
* @param type The type to check.
|
|
24
|
+
*/
|
|
25
|
+
isBytes(type: Type): type is Scalar;
|
|
26
|
+
/**
|
|
27
|
+
* Check if `type` is exactly the standard decimal type.
|
|
28
|
+
*
|
|
29
|
+
* @param type The type to check.
|
|
30
|
+
*/
|
|
31
|
+
isDecimal(type: Type): type is Scalar;
|
|
32
|
+
/**
|
|
33
|
+
* Check if `type` is exactly the standard decimal128 type.
|
|
34
|
+
*
|
|
35
|
+
* @param type The type to check.
|
|
36
|
+
*/
|
|
37
|
+
isDecimal128(type: Type): type is Scalar;
|
|
38
|
+
/**
|
|
39
|
+
* Check if `type` is exactly the standard duration type.
|
|
40
|
+
*
|
|
41
|
+
* @param type The type to check.
|
|
42
|
+
*/
|
|
43
|
+
isDuration(type: Type): type is Scalar;
|
|
44
|
+
/**
|
|
45
|
+
* Check if `type` is exactly the standard float type.
|
|
46
|
+
*
|
|
47
|
+
* @param type The type to check.
|
|
48
|
+
*/
|
|
49
|
+
isFloat(type: Type): type is Scalar;
|
|
50
|
+
/**
|
|
51
|
+
* Check if `type` is exactly the standard float32 type.
|
|
52
|
+
*
|
|
53
|
+
* @param type The type to check.
|
|
54
|
+
*/
|
|
55
|
+
isFloat32(type: Type): type is Scalar;
|
|
56
|
+
/**
|
|
57
|
+
* Check if `type` is exactly the standard float64 type.
|
|
58
|
+
*
|
|
59
|
+
* @param type The type to check.
|
|
60
|
+
*/
|
|
61
|
+
isFloat64(type: Type): type is Scalar;
|
|
62
|
+
/**
|
|
63
|
+
* Check if `type` is exactly the standard int8 type.
|
|
64
|
+
*
|
|
65
|
+
* @param type The type to check.
|
|
66
|
+
*/
|
|
67
|
+
isInt8(type: Type): type is Scalar;
|
|
68
|
+
/**
|
|
69
|
+
* Check if `type` is exactly the standard int16 type.
|
|
70
|
+
*
|
|
71
|
+
* @param type The type to check.
|
|
72
|
+
*/
|
|
73
|
+
isInt16(type: Type): type is Scalar;
|
|
74
|
+
/**
|
|
75
|
+
* Check if `type` is exactly the standard int32 type.
|
|
76
|
+
*
|
|
77
|
+
* @param type The type to check.
|
|
78
|
+
*/
|
|
79
|
+
isInt32(type: Type): type is Scalar;
|
|
80
|
+
/**
|
|
81
|
+
* Check if `type` is exactly the standard int64 type.
|
|
82
|
+
*
|
|
83
|
+
* @param type The type to check.
|
|
84
|
+
*/
|
|
85
|
+
isInt64(type: Type): type is Scalar;
|
|
86
|
+
/**
|
|
87
|
+
* Check if `type` is exactly the standard integer type.
|
|
88
|
+
*
|
|
89
|
+
* @param type The type to check.
|
|
90
|
+
*/
|
|
91
|
+
isInteger(type: Type): type is Scalar;
|
|
92
|
+
/**
|
|
93
|
+
* Check if `type` is exactly the standard offsetDateTime type.
|
|
94
|
+
*
|
|
95
|
+
* @param type The type to check.
|
|
96
|
+
*/
|
|
97
|
+
isOffsetDateTime(type: Type): type is Scalar;
|
|
98
|
+
/**
|
|
99
|
+
* Check if `type` is exactly the standard plainDate type.
|
|
100
|
+
*
|
|
101
|
+
* @param type The type to check.
|
|
102
|
+
*/
|
|
103
|
+
isPlainDate(type: Type): type is Scalar;
|
|
104
|
+
/**
|
|
105
|
+
* Check if `type` is exactly the standard plainTime type.
|
|
106
|
+
*
|
|
107
|
+
* @param type The type to check.
|
|
108
|
+
*/
|
|
109
|
+
isPlainTime(type: Type): type is Scalar;
|
|
110
|
+
/**
|
|
111
|
+
* Check if `type` is exactly the standard safeint type.
|
|
112
|
+
*
|
|
113
|
+
* @param type The type to check.
|
|
114
|
+
*/
|
|
115
|
+
isSafeint(type: Type): type is Scalar;
|
|
116
|
+
/**
|
|
117
|
+
* Check if `type` is exactly the standard uint8 type.
|
|
118
|
+
*
|
|
119
|
+
* @param type The type to check.
|
|
120
|
+
*/
|
|
121
|
+
isUint8(type: Type): type is Scalar;
|
|
122
|
+
/**
|
|
123
|
+
* Check if `type` is exactly the standard uint16 type.
|
|
124
|
+
*
|
|
125
|
+
* @param type The type to check.
|
|
126
|
+
*/
|
|
127
|
+
isUint16(type: Type): type is Scalar;
|
|
128
|
+
/**
|
|
129
|
+
* Check if `type` is exactly the standard uint32 type.
|
|
130
|
+
*
|
|
131
|
+
* @param type The type to check.
|
|
132
|
+
*/
|
|
133
|
+
isUint32(type: Type): type is Scalar;
|
|
134
|
+
/**
|
|
135
|
+
* Check if `type` is exactly the standard uint64 type.
|
|
136
|
+
*
|
|
137
|
+
* @param type The type to check.
|
|
138
|
+
*/
|
|
139
|
+
isUint64(type: Type): type is Scalar;
|
|
140
|
+
/**
|
|
141
|
+
* Check if `type` is exactly the standard url type.
|
|
142
|
+
*
|
|
143
|
+
* @param type The type to check.
|
|
144
|
+
*/
|
|
145
|
+
isUrl(type: Type): type is Scalar;
|
|
146
|
+
/**
|
|
147
|
+
* Check if `type` is exactly the standard utcDateTime type.
|
|
148
|
+
*
|
|
149
|
+
* @param type The type to check.
|
|
150
|
+
*/
|
|
151
|
+
isUtcDateTime(type: Type): type is Scalar;
|
|
152
|
+
/**
|
|
153
|
+
*
|
|
154
|
+
* @param type The type to check.
|
|
155
|
+
*/
|
|
156
|
+
isNumeric(type: Type): type is Scalar;
|
|
157
|
+
/**
|
|
158
|
+
* Check if `type` is exactly the standard string type.
|
|
159
|
+
*
|
|
160
|
+
* @param type The type to check.
|
|
161
|
+
*/
|
|
162
|
+
isString(type: Type): type is Scalar;
|
|
163
|
+
/**
|
|
164
|
+
* Check if `type` extends the standard boolean type.
|
|
165
|
+
*
|
|
166
|
+
* @param type The type to check.
|
|
167
|
+
*/
|
|
168
|
+
extendsBoolean(type: Type): type is Scalar;
|
|
169
|
+
/**
|
|
170
|
+
* Check if `type` extends the standard string type.
|
|
171
|
+
*
|
|
172
|
+
* @param type The type to check.
|
|
173
|
+
*/
|
|
174
|
+
extendsString(type: Type): type is Scalar;
|
|
175
|
+
/**
|
|
176
|
+
* Check if `type` extends the standard numeric type.
|
|
177
|
+
*
|
|
178
|
+
* @param type The type to check.
|
|
179
|
+
*/
|
|
180
|
+
extendsNumeric(type: Type): type is Scalar;
|
|
181
|
+
/**
|
|
182
|
+
* Check if `type` extends the standard bytes type.
|
|
183
|
+
*
|
|
184
|
+
* @param type The type to check.
|
|
185
|
+
*/
|
|
186
|
+
extendsBytes(type: Type): type is Scalar;
|
|
187
|
+
/**
|
|
188
|
+
* Check if `type` extends the standard decimal type.
|
|
189
|
+
*
|
|
190
|
+
* @param type The type to check.
|
|
191
|
+
*/
|
|
192
|
+
extendsDecimal(type: Type): type is Scalar;
|
|
193
|
+
/**
|
|
194
|
+
* Check if `type` extends the standard decimal128 type.
|
|
195
|
+
*
|
|
196
|
+
* @param type The type to check.
|
|
197
|
+
*/
|
|
198
|
+
extendsDecimal128(type: Type): type is Scalar;
|
|
199
|
+
/**
|
|
200
|
+
* Check if `type` extends the standard duration type.
|
|
201
|
+
*
|
|
202
|
+
* @param type The type to check.
|
|
203
|
+
*/
|
|
204
|
+
extendsDuration(type: Type): type is Scalar;
|
|
205
|
+
/**
|
|
206
|
+
* Check if `type` extends the standard float type.
|
|
207
|
+
*
|
|
208
|
+
* @param type The type to check.
|
|
209
|
+
*/
|
|
210
|
+
extendsFloat(type: Type): type is Scalar;
|
|
211
|
+
/**
|
|
212
|
+
* Check if `type` extends the standard float32 type.
|
|
213
|
+
*
|
|
214
|
+
* @param type The type to check.
|
|
215
|
+
*/
|
|
216
|
+
extendsFloat32(type: Type): type is Scalar;
|
|
217
|
+
/**
|
|
218
|
+
* Check if `type` extends the standard float64 type.
|
|
219
|
+
*
|
|
220
|
+
* @param type The type to check.
|
|
221
|
+
*/
|
|
222
|
+
extendsFloat64(type: Type): type is Scalar;
|
|
223
|
+
/**
|
|
224
|
+
* Check if `type` extends the standard int8 type.
|
|
225
|
+
*
|
|
226
|
+
* @param type The type to check.
|
|
227
|
+
*/
|
|
228
|
+
extendsInt8(type: Type): type is Scalar;
|
|
229
|
+
/**
|
|
230
|
+
* Check if `type` extends the standard int16 type.
|
|
231
|
+
*
|
|
232
|
+
* @param type The type to check.
|
|
233
|
+
*/
|
|
234
|
+
extendsInt16(type: Type): type is Scalar;
|
|
235
|
+
/**
|
|
236
|
+
* Check if `type` extends the standard int32 type.
|
|
237
|
+
*
|
|
238
|
+
* @param type The type to check.
|
|
239
|
+
*/
|
|
240
|
+
extendsInt32(type: Type): type is Scalar;
|
|
241
|
+
/**
|
|
242
|
+
* Check if `type` extends the standard int64 type.
|
|
243
|
+
*
|
|
244
|
+
* @param type The type to check.
|
|
245
|
+
*/
|
|
246
|
+
extendsInt64(type: Type): type is Scalar;
|
|
247
|
+
/**
|
|
248
|
+
* Check if `type` extends the standard integer type.
|
|
249
|
+
*
|
|
250
|
+
* @param type The type to check.
|
|
251
|
+
*/
|
|
252
|
+
extendsInteger(type: Type): type is Scalar;
|
|
253
|
+
/**
|
|
254
|
+
* Check if `type` extends the standard offsetDateTime type.
|
|
255
|
+
*
|
|
256
|
+
* @param type The type to check.
|
|
257
|
+
*/
|
|
258
|
+
extendsOffsetDateTime(type: Type): type is Scalar;
|
|
259
|
+
/**
|
|
260
|
+
* Check if `type` extends the standard plainDate type.
|
|
261
|
+
*
|
|
262
|
+
* @param type The type to check.
|
|
263
|
+
*/
|
|
264
|
+
extendsPlainDate(type: Type): type is Scalar;
|
|
265
|
+
/**
|
|
266
|
+
* Check if `type` extends the standard plainTime type.
|
|
267
|
+
*
|
|
268
|
+
* @param type The type to check.
|
|
269
|
+
*/
|
|
270
|
+
extendsPlainTime(type: Type): type is Scalar;
|
|
271
|
+
/**
|
|
272
|
+
* Check if `type` extends the standard safeint type.
|
|
273
|
+
*
|
|
274
|
+
* @param type The type to check.
|
|
275
|
+
*/
|
|
276
|
+
extendsSafeint(type: Type): type is Scalar;
|
|
277
|
+
/**
|
|
278
|
+
* Check if `type` extends the standard uint8 type.
|
|
279
|
+
*
|
|
280
|
+
* @param type The type to check.
|
|
281
|
+
*/
|
|
282
|
+
extendsUint8(type: Type): type is Scalar;
|
|
283
|
+
/**
|
|
284
|
+
* Check if `type` extends the standard uint16 type.
|
|
285
|
+
*
|
|
286
|
+
* @param type The type to check.
|
|
287
|
+
*/
|
|
288
|
+
extendsUint16(type: Type): type is Scalar;
|
|
289
|
+
/**
|
|
290
|
+
* Check if `type` extends the standard uint32 type.
|
|
291
|
+
*
|
|
292
|
+
* @param type The type to check.
|
|
293
|
+
*/
|
|
294
|
+
extendsUint32(type: Type): type is Scalar;
|
|
295
|
+
/**
|
|
296
|
+
* Check if `type` extends the standard uint64 type.
|
|
297
|
+
*
|
|
298
|
+
* @param type The type to check.
|
|
299
|
+
*/
|
|
300
|
+
extendsUint64(type: Type): type is Scalar;
|
|
301
|
+
/**
|
|
302
|
+
* Check if `type` extends the standard url type.
|
|
303
|
+
*
|
|
304
|
+
* @param type The type to check.
|
|
305
|
+
*/
|
|
306
|
+
extendsUrl(type: Type): type is Scalar;
|
|
307
|
+
/**
|
|
308
|
+
* Check if `type` extends the standard utcDateTime type.
|
|
309
|
+
*
|
|
310
|
+
* @param type The type to check.
|
|
311
|
+
*/
|
|
312
|
+
extendsUtcDateTime(type: Type): type is Scalar;
|
|
313
|
+
/**
|
|
314
|
+
* Get the standard built-in base type of a scalar. For all built-in scalar
|
|
315
|
+
* types (numeric, string, int32, etc.) this will just return the scalar
|
|
316
|
+
* type. For user-defined scalars, this will return the first base scalar
|
|
317
|
+
* that is built-in. For user-defined scalars without a standard base type,
|
|
318
|
+
* this will return null.
|
|
319
|
+
*
|
|
320
|
+
* @param type The scalar to check.
|
|
321
|
+
*/
|
|
322
|
+
getStdBase(type: Scalar): Scalar | null;
|
|
323
|
+
/**
|
|
324
|
+
* Get the encoding information for a scalar type. Returns undefined if no
|
|
325
|
+
* encoding data is specified.
|
|
326
|
+
*
|
|
327
|
+
* Note: This will return the encoding data for the scalar type itself, not
|
|
328
|
+
* the model property that uses the scalar type. If this scalar might be
|
|
329
|
+
* referenced from a model property, use {@link modelProperty.getEncoding}
|
|
330
|
+
* instead.
|
|
331
|
+
*
|
|
332
|
+
* @param scalar The scalar to get the encoding data for.
|
|
333
|
+
*/
|
|
334
|
+
getEncoding(scalar: Scalar): EncodeData | undefined;
|
|
335
|
+
/**
|
|
336
|
+
* Get the well-known format for a string scalar. Returns undefined if no
|
|
337
|
+
* format is specified.
|
|
338
|
+
*
|
|
339
|
+
* Note: This will return the format data for the scalar type itself, not
|
|
340
|
+
* the model property that uses the scalar type. If this scalar might be
|
|
341
|
+
* referenced from a model property, use {@link ModelPropertyKit.getEncoding}
|
|
342
|
+
* instead.
|
|
343
|
+
*
|
|
344
|
+
* @param scalar The scalar to get the format for.
|
|
345
|
+
*/
|
|
346
|
+
getFormat(scalar: Scalar): string | undefined;
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
declare module "../define-kit.js" {
|
|
350
|
+
interface TypekitPrototype extends ScalarKit {
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
export {};
|
|
354
|
+
//# sourceMappingURL=scalar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scalar.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/scalar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { isIntrinsicType } from "../../../core/decorator-utils.js";
|
|
2
|
+
import { getEncode, getFormat } from "../../../lib/decorators.js";
|
|
3
|
+
import { defineKit } from "../define-kit.js";
|
|
4
|
+
defineKit({
|
|
5
|
+
scalar: {
|
|
6
|
+
is(type) {
|
|
7
|
+
return type.kind === "Scalar";
|
|
8
|
+
},
|
|
9
|
+
extendsBoolean: extendsStdType("boolean"),
|
|
10
|
+
extendsBytes: extendsStdType("bytes"),
|
|
11
|
+
extendsDecimal: extendsStdType("decimal"),
|
|
12
|
+
extendsDecimal128: extendsStdType("decimal128"),
|
|
13
|
+
extendsDuration: extendsStdType("duration"),
|
|
14
|
+
extendsFloat: extendsStdType("float"),
|
|
15
|
+
extendsFloat32: extendsStdType("float32"),
|
|
16
|
+
extendsFloat64: extendsStdType("float64"),
|
|
17
|
+
extendsInt8: extendsStdType("int8"),
|
|
18
|
+
extendsInt16: extendsStdType("int16"),
|
|
19
|
+
extendsInt32: extendsStdType("int32"),
|
|
20
|
+
extendsInt64: extendsStdType("int64"),
|
|
21
|
+
extendsInteger: extendsStdType("integer"),
|
|
22
|
+
extendsNumeric: extendsStdType("numeric"),
|
|
23
|
+
extendsOffsetDateTime: extendsStdType("offsetDateTime"),
|
|
24
|
+
extendsPlainDate: extendsStdType("plainDate"),
|
|
25
|
+
extendsPlainTime: extendsStdType("plainTime"),
|
|
26
|
+
extendsSafeint: extendsStdType("safeint"),
|
|
27
|
+
extendsString: extendsStdType("string"),
|
|
28
|
+
extendsUint8: extendsStdType("uint8"),
|
|
29
|
+
extendsUint16: extendsStdType("uint16"),
|
|
30
|
+
extendsUint32: extendsStdType("uint32"),
|
|
31
|
+
extendsUint64: extendsStdType("uint64"),
|
|
32
|
+
extendsUrl: extendsStdType("url"),
|
|
33
|
+
extendsUtcDateTime: extendsStdType("utcDateTime"),
|
|
34
|
+
isBoolean: isStdType("boolean"),
|
|
35
|
+
isBytes: isStdType("bytes"),
|
|
36
|
+
isDecimal: isStdType("decimal"),
|
|
37
|
+
isDecimal128: isStdType("decimal128"),
|
|
38
|
+
isDuration: isStdType("duration"),
|
|
39
|
+
isFloat: isStdType("float"),
|
|
40
|
+
isFloat32: isStdType("float32"),
|
|
41
|
+
isFloat64: isStdType("float64"),
|
|
42
|
+
isInt8: isStdType("int8"),
|
|
43
|
+
isInt16: isStdType("int16"),
|
|
44
|
+
isInt32: isStdType("int32"),
|
|
45
|
+
isInt64: isStdType("int64"),
|
|
46
|
+
isInteger: isStdType("integer"),
|
|
47
|
+
isNumeric: isStdType("numeric"),
|
|
48
|
+
isOffsetDateTime: isStdType("offsetDateTime"),
|
|
49
|
+
isPlainDate: isStdType("plainDate"),
|
|
50
|
+
isPlainTime: isStdType("plainTime"),
|
|
51
|
+
isSafeint: isStdType("safeint"),
|
|
52
|
+
isString: isStdType("string"),
|
|
53
|
+
isUint8: isStdType("uint8"),
|
|
54
|
+
isUint16: isStdType("uint16"),
|
|
55
|
+
isUint32: isStdType("uint32"),
|
|
56
|
+
isUint64: isStdType("uint64"),
|
|
57
|
+
isUrl: isStdType("url"),
|
|
58
|
+
isUtcDateTime: isStdType("utcDateTime"),
|
|
59
|
+
getStdBase(type) {
|
|
60
|
+
const tspNamespace = this.program.resolveTypeReference("TypeSpec")[0];
|
|
61
|
+
let current = type;
|
|
62
|
+
while (current) {
|
|
63
|
+
if (current.namespace === tspNamespace) {
|
|
64
|
+
return current;
|
|
65
|
+
}
|
|
66
|
+
current = current.baseScalar;
|
|
67
|
+
}
|
|
68
|
+
return null;
|
|
69
|
+
},
|
|
70
|
+
getEncoding(type) {
|
|
71
|
+
return getEncode(this.program, type);
|
|
72
|
+
},
|
|
73
|
+
getFormat(type) {
|
|
74
|
+
return getFormat(this.program, type);
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
function isStdType(typeName) {
|
|
79
|
+
return function (type) {
|
|
80
|
+
return type === this.program.checker.getStdType(typeName);
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function extendsStdType(typeName) {
|
|
84
|
+
return function (type) {
|
|
85
|
+
if (!this.scalar.is(type)) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
return isIntrinsicType(this.program, type, typeName);
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=scalar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scalar.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/scalar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Type } from "../../../core/types.js";
|
|
2
|
+
/** @experimental */
|
|
3
|
+
export interface TypeKit {
|
|
4
|
+
/**
|
|
5
|
+
* Clones a type and adds it to the typekit's realm.
|
|
6
|
+
* @param type Type to clone
|
|
7
|
+
*/
|
|
8
|
+
clone<T extends Type>(type: T): T;
|
|
9
|
+
/**
|
|
10
|
+
* Finishes a type, applying all the decorators.
|
|
11
|
+
*/
|
|
12
|
+
finishType(type: Type): void;
|
|
13
|
+
}
|
|
14
|
+
interface BaseTypeKit {
|
|
15
|
+
/**
|
|
16
|
+
* Utilities for working with general types.
|
|
17
|
+
*/
|
|
18
|
+
type: TypeKit;
|
|
19
|
+
}
|
|
20
|
+
declare module "../define-kit.js" {
|
|
21
|
+
interface TypekitPrototype extends BaseTypeKit {
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAInD,qBAAqB;AACrB,MAAM,WAAW,OAAO;IACtB;;;OAGG;IACH,KAAK,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;IAClC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CAC9B;AAED,UAAU,WAAW;IACnB;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;CACf;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,gBAAiB,SAAQ,WAAW;KAAG;CAClD"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { defineKit } from "../define-kit.js";
|
|
2
|
+
import { copyMap } from "../utils.js";
|
|
3
|
+
defineKit({
|
|
4
|
+
type: {
|
|
5
|
+
finishType(type) {
|
|
6
|
+
this.program.checker.finishType(type);
|
|
7
|
+
},
|
|
8
|
+
clone(type) {
|
|
9
|
+
let clone;
|
|
10
|
+
switch (type.kind) {
|
|
11
|
+
case "Model":
|
|
12
|
+
clone = this.program.checker.createType({
|
|
13
|
+
...type,
|
|
14
|
+
decorators: [...type.decorators],
|
|
15
|
+
properties: copyMap(type.properties),
|
|
16
|
+
indexer: type.indexer ? { ...type.indexer } : undefined,
|
|
17
|
+
});
|
|
18
|
+
break;
|
|
19
|
+
case "Union":
|
|
20
|
+
clone = this.program.checker.createType({
|
|
21
|
+
...type,
|
|
22
|
+
decorators: [...type.decorators],
|
|
23
|
+
variants: copyMap(type.variants),
|
|
24
|
+
get options() {
|
|
25
|
+
return Array.from(this.variants.values()).map((v) => v.type);
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
break;
|
|
29
|
+
case "Interface":
|
|
30
|
+
clone = this.program.checker.createType({
|
|
31
|
+
...type,
|
|
32
|
+
decorators: [...type.decorators],
|
|
33
|
+
operations: copyMap(type.operations),
|
|
34
|
+
});
|
|
35
|
+
break;
|
|
36
|
+
case "Enum":
|
|
37
|
+
clone = this.program.checker.createType({
|
|
38
|
+
...type,
|
|
39
|
+
decorators: [...type.decorators],
|
|
40
|
+
members: copyMap(type.members),
|
|
41
|
+
});
|
|
42
|
+
break;
|
|
43
|
+
default:
|
|
44
|
+
clone = this.program.checker.createType({
|
|
45
|
+
...type,
|
|
46
|
+
...("decorators" in type ? { decorators: [...type.decorators] } : {}),
|
|
47
|
+
});
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
this.realm.get().addType(clone);
|
|
51
|
+
return clone;
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/type.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AA0BtC,SAAS,CAAc;IACrB,IAAI,EAAE;QACJ,UAAU,CAAC,IAAU;YACnB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,KAAK,CAAiB,IAAO;YAC3B,IAAI,KAAQ,CAAC;YACb,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,OAAO;oBACV,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;wBACtC,GAAG,IAAI;wBACP,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;wBAChC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;wBACpC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS;qBACxD,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,OAAO;oBACV,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;wBACtC,GAAG,IAAI;wBACP,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;wBAChC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAChC,IAAI,OAAO;4BACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACpE,CAAC;qBACF,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,WAAW;oBACd,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;wBACtC,GAAG,IAAI;wBACP,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;wBAChC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;qBACrC,CAAC,CAAC;oBACH,MAAM;gBAER,KAAK,MAAM;oBACT,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;wBACtC,GAAG,IAAI;wBACP,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;wBAChC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;qBAC/B,CAAC,CAAC;oBACH,MAAM;gBACR;oBACE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;wBACtC,GAAG,IAAI;wBACP,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACtE,CAAC,CAAC;oBACH,MAAM;YACV,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;KACF;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { Type, Union, UnionVariant } from "../../../core/types.js";
|
|
2
|
+
import { DecoratorArgs } from "../utils.js";
|
|
3
|
+
interface UnionVariantDescriptor {
|
|
4
|
+
/**
|
|
5
|
+
* The name of the union variant.
|
|
6
|
+
*/
|
|
7
|
+
name?: string | symbol;
|
|
8
|
+
/**
|
|
9
|
+
* Decorators to apply to the union variant.
|
|
10
|
+
*/
|
|
11
|
+
decorators?: DecoratorArgs[];
|
|
12
|
+
/**
|
|
13
|
+
* The type of the union variant.
|
|
14
|
+
*/
|
|
15
|
+
type: Type;
|
|
16
|
+
/**
|
|
17
|
+
* The union that the variant belongs to. If not provided here, it is assumed
|
|
18
|
+
* that it will be set in `union.build`.
|
|
19
|
+
*/
|
|
20
|
+
union?: Union;
|
|
21
|
+
}
|
|
22
|
+
export interface UnionVariantKit {
|
|
23
|
+
unionVariant: {
|
|
24
|
+
/**
|
|
25
|
+
* Create a union variant.
|
|
26
|
+
*
|
|
27
|
+
* @param desc The descriptor of the union variant.
|
|
28
|
+
*/
|
|
29
|
+
create(desc: UnionVariantDescriptor): UnionVariant;
|
|
30
|
+
/**
|
|
31
|
+
* Check if the given `type` is a union.
|
|
32
|
+
*
|
|
33
|
+
* @param type The type to check.
|
|
34
|
+
*/
|
|
35
|
+
is(type: Type): type is UnionVariant;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
declare module "../define-kit.js" {
|
|
39
|
+
interface TypekitPrototype extends UnionVariantKit {
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=union-variant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"union-variant.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/union-variant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAwB,aAAa,EAAE,MAAM,aAAa,CAAC;AAElE,UAAU,sBAAsB;IAC9B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAE7B;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IAEX;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE;QACZ;;;;WAIG;QACH,MAAM,CAAC,IAAI,EAAE,sBAAsB,GAAG,YAAY,CAAC;QAEnD;;;;WAIG;QACH,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,YAAY,CAAC;KACtC,CAAC;CACH;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,gBAAiB,SAAQ,eAAe;KAAG;CACtD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { defineKit } from "../define-kit.js";
|
|
2
|
+
import { decoratorApplication } from "../utils.js";
|
|
3
|
+
defineKit({
|
|
4
|
+
unionVariant: {
|
|
5
|
+
create(desc) {
|
|
6
|
+
const variant = this.program.checker.createType({
|
|
7
|
+
kind: "UnionVariant",
|
|
8
|
+
name: desc.name ?? Symbol("name"),
|
|
9
|
+
decorators: decoratorApplication(desc.decorators),
|
|
10
|
+
type: desc.type,
|
|
11
|
+
node: undefined,
|
|
12
|
+
union: desc.union,
|
|
13
|
+
});
|
|
14
|
+
this.program.checker.finishType(variant);
|
|
15
|
+
return variant;
|
|
16
|
+
},
|
|
17
|
+
is(type) {
|
|
18
|
+
return type.kind === "UnionVariant";
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=union-variant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"union-variant.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/union-variant.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAiB,MAAM,aAAa,CAAC;AA+ClE,SAAS,CAAkB;IACzB,YAAY,EAAE;QACZ,MAAM,CAAC,IAAI;YACT,MAAM,OAAO,GAAiB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC5D,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC;gBACjC,UAAU,EAAE,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC;gBACjD,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,SAAgB;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAY;aACzB,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,EAAE,CAAC,IAAI;YACL,OAAO,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC;QACtC,CAAC;KACF;CACF,CAAC,CAAC"}
|