@typespec-dev/emitter-typebox 0.1.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/LICENSE +21 -0
- package/dist/src/components/TypeBoxSchema.d.ts +8 -0
- package/dist/src/components/TypeBoxSchema.d.ts.map +1 -0
- package/dist/src/components/TypeBoxSchema.js +28 -0
- package/dist/src/components/TypeBoxSchema.js.map +1 -0
- package/dist/src/components/TypeBoxSchema.jsx +19 -0
- package/dist/src/components/TypeBoxSchema.jsx.map +1 -0
- package/dist/src/components/TypeBoxSchemaDeclaration.d.ts +9 -0
- package/dist/src/components/TypeBoxSchemaDeclaration.d.ts.map +1 -0
- package/dist/src/components/TypeBoxSchemaDeclaration.js +21 -0
- package/dist/src/components/TypeBoxSchemaDeclaration.js.map +1 -0
- package/dist/src/components/TypeBoxSchemaDeclaration.jsx +20 -0
- package/dist/src/components/TypeBoxSchemaDeclaration.jsx.map +1 -0
- package/dist/src/components/index.d.ts +3 -0
- package/dist/src/components/index.d.ts.map +1 -0
- package/dist/src/components/index.js +3 -0
- package/dist/src/components/index.js.map +1 -0
- package/dist/src/emitter.d.ts +3 -0
- package/dist/src/emitter.d.ts.map +1 -0
- package/dist/src/emitter.js +57 -0
- package/dist/src/emitter.js.map +1 -0
- package/dist/src/emitter.jsx +40 -0
- package/dist/src/emitter.jsx.map +1 -0
- package/dist/src/external-packages/typebox.d.ts +4 -0
- package/dist/src/external-packages/typebox.d.ts.map +1 -0
- package/dist/src/external-packages/typebox.js +11 -0
- package/dist/src/external-packages/typebox.js.map +1 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +6 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/lib.d.ts +13 -0
- package/dist/src/lib.d.ts.map +1 -0
- package/dist/src/lib.js +10 -0
- package/dist/src/lib.js.map +1 -0
- package/dist/src/testing/index.d.ts +3 -0
- package/dist/src/testing/index.d.ts.map +1 -0
- package/dist/src/testing/index.js +6 -0
- package/dist/src/testing/index.js.map +1 -0
- package/dist/src/typeboxBaseSchema.d.ts +4 -0
- package/dist/src/typeboxBaseSchema.d.ts.map +1 -0
- package/dist/src/typeboxBaseSchema.js +129 -0
- package/dist/src/typeboxBaseSchema.js.map +1 -0
- package/dist/src/typeboxBaseSchema.jsx +136 -0
- package/dist/src/typeboxBaseSchema.jsx.map +1 -0
- package/dist/src/utils.d.ts +18 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +118 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/src/utils.jsx +114 -0
- package/dist/src/utils.jsx.map +1 -0
- package/dist/test/emitter/default.test.d.ts +2 -0
- package/dist/test/emitter/default.test.d.ts.map +1 -0
- package/dist/test/emitter/default.test.js +13 -0
- package/dist/test/emitter/default.test.js.map +1 -0
- package/dist/test/emitter/default.test.jsx +11 -0
- package/dist/test/emitter/default.test.jsx.map +1 -0
- package/dist/test/intrinsics.test.d.ts +2 -0
- package/dist/test/intrinsics.test.d.ts.map +1 -0
- package/dist/test/intrinsics.test.js +48 -0
- package/dist/test/intrinsics.test.js.map +1 -0
- package/dist/test/intrinsics.test.jsx +26 -0
- package/dist/test/intrinsics.test.jsx.map +1 -0
- package/dist/test/literals.test.d.ts +2 -0
- package/dist/test/literals.test.d.ts.map +1 -0
- package/dist/test/literals.test.js +39 -0
- package/dist/test/literals.test.js.map +1 -0
- package/dist/test/literals.test.jsx +22 -0
- package/dist/test/literals.test.jsx.map +1 -0
- package/dist/test/scalars.test.d.ts +2 -0
- package/dist/test/scalars.test.d.ts.map +1 -0
- package/dist/test/scalars.test.js +326 -0
- package/dist/test/scalars.test.js.map +1 -0
- package/dist/test/scalars.test.jsx +171 -0
- package/dist/test/scalars.test.jsx.map +1 -0
- package/dist/test/utils.d.ts +8 -0
- package/dist/test/utils.d.ts.map +1 -0
- package/dist/test/utils.js +63 -0
- package/dist/test/utils.js.map +1 -0
- package/dist/test/utils.jsx +45 -0
- package/dist/test/utils.jsx.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { refkey } from '@alloy-js/core';
|
|
2
|
+
import { MemberExpression, ObjectExpression, ObjectProperty } from '@alloy-js/typescript';
|
|
3
|
+
import { useTsp } from '@typespec/emitter-framework';
|
|
4
|
+
import { refkeySym, shouldReference, typeboxCall } from './utils.jsx';
|
|
5
|
+
export function typeboxBaseSchemaParts(type) {
|
|
6
|
+
const { $ } = useTsp();
|
|
7
|
+
switch (type.kind) {
|
|
8
|
+
case 'Intrinsic':
|
|
9
|
+
return intrinsicBaseType(type);
|
|
10
|
+
case 'String':
|
|
11
|
+
case 'Number':
|
|
12
|
+
case 'Boolean':
|
|
13
|
+
return literalBaseType($, type);
|
|
14
|
+
case 'Scalar':
|
|
15
|
+
return scalarBaseType($, type);
|
|
16
|
+
case 'ModelProperty':
|
|
17
|
+
return typeboxBaseSchemaParts(type.type);
|
|
18
|
+
case 'EnumMember':
|
|
19
|
+
return type.value
|
|
20
|
+
? literalBaseType($, $.literal.create(type.value))
|
|
21
|
+
: literalBaseType($, $.literal.create(type.name));
|
|
22
|
+
default:
|
|
23
|
+
return typeboxCall('Any');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function literalBaseType($, type) {
|
|
27
|
+
switch (type.kind) {
|
|
28
|
+
case 'String':
|
|
29
|
+
return typeboxCall('Literal', `"${type.value}"`);
|
|
30
|
+
case 'Number':
|
|
31
|
+
case 'Boolean':
|
|
32
|
+
return typeboxCall('Literal', `${type.value}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function formatOpts(format) {
|
|
36
|
+
return (<ObjectExpression>
|
|
37
|
+
<ObjectProperty name="format">{`"${format}"`}</ObjectProperty>
|
|
38
|
+
</ObjectExpression>);
|
|
39
|
+
}
|
|
40
|
+
function scalarBaseType($, type) {
|
|
41
|
+
if (type.baseScalar && shouldReference($.program, type.baseScalar)) {
|
|
42
|
+
return (<MemberExpression>
|
|
43
|
+
<MemberExpression.Part refkey={refkey(type.baseScalar, refkeySym)}/>
|
|
44
|
+
</MemberExpression>);
|
|
45
|
+
}
|
|
46
|
+
if ($.scalar.extendsBoolean(type)) {
|
|
47
|
+
return typeboxCall('Boolean');
|
|
48
|
+
}
|
|
49
|
+
else if ($.scalar.extendsNumeric(type)) {
|
|
50
|
+
if ($.scalar.extendsInteger(type)) {
|
|
51
|
+
if ($.scalar.extendsInt32(type) ||
|
|
52
|
+
$.scalar.extendsUint32(type) ||
|
|
53
|
+
$.scalar.extendsSafeint(type)) {
|
|
54
|
+
return typeboxCall('Integer');
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
return typeboxCall('BigInt');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
return typeboxCall('Number');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else if ($.scalar.extendsString(type)) {
|
|
65
|
+
if ($.scalar.extendsUrl(type)) {
|
|
66
|
+
return typeboxCall('String', formatOpts('uri'));
|
|
67
|
+
}
|
|
68
|
+
return typeboxCall('String');
|
|
69
|
+
}
|
|
70
|
+
else if ($.scalar.extendsBytes(type)) {
|
|
71
|
+
return typeboxCall('Any');
|
|
72
|
+
}
|
|
73
|
+
else if ($.scalar.extendsPlainDate(type)) {
|
|
74
|
+
return typeboxCall('Date');
|
|
75
|
+
}
|
|
76
|
+
else if ($.scalar.extendsPlainTime(type)) {
|
|
77
|
+
return typeboxCall('String', formatOpts('time'));
|
|
78
|
+
}
|
|
79
|
+
else if ($.scalar.extendsUtcDateTime(type)) {
|
|
80
|
+
const encoding = $.scalar.getEncoding(type);
|
|
81
|
+
if (encoding === undefined) {
|
|
82
|
+
return typeboxCall('Date');
|
|
83
|
+
}
|
|
84
|
+
else if (encoding.encoding === 'unixTimestamp') {
|
|
85
|
+
return scalarBaseType($, encoding.type);
|
|
86
|
+
}
|
|
87
|
+
else if (encoding.encoding === 'rfc3339') {
|
|
88
|
+
return typeboxCall('String', formatOpts('date-time'));
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
return scalarBaseType($, encoding.type);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else if ($.scalar.extendsOffsetDateTime(type)) {
|
|
95
|
+
const encoding = $.scalar.getEncoding(type);
|
|
96
|
+
if (encoding === undefined) {
|
|
97
|
+
return typeboxCall('Date');
|
|
98
|
+
}
|
|
99
|
+
else if (encoding.encoding === 'rfc3339') {
|
|
100
|
+
return typeboxCall('String', formatOpts('date-time'));
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
return scalarBaseType($, encoding.type);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
else if ($.scalar.extendsDuration(type)) {
|
|
107
|
+
const encoding = $.scalar.getEncoding(type);
|
|
108
|
+
if (encoding === undefined || encoding.encoding === 'ISO8601') {
|
|
109
|
+
return typeboxCall('String', formatOpts('duration'));
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
return scalarBaseType($, encoding.type);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
return typeboxCall('Any');
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function intrinsicBaseType(type) {
|
|
120
|
+
if (type.kind === 'Intrinsic') {
|
|
121
|
+
switch (type.name) {
|
|
122
|
+
case 'null':
|
|
123
|
+
return typeboxCall('Null');
|
|
124
|
+
case 'never':
|
|
125
|
+
return typeboxCall('Never');
|
|
126
|
+
case 'unknown':
|
|
127
|
+
return typeboxCall('Unknown');
|
|
128
|
+
case 'void':
|
|
129
|
+
return typeboxCall('Void');
|
|
130
|
+
default:
|
|
131
|
+
return typeboxCall('Any');
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return typeboxCall('Any');
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=typeboxBaseSchema.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeboxBaseSchema.jsx","sourceRoot":"","sources":["../../src/typeboxBaseSchema.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Refkey } from '@alloy-js/core';
|
|
2
|
+
import { Children } from '@alloy-js/core/jsx-runtime';
|
|
3
|
+
import { Program, Type } from '@typespec/compiler';
|
|
4
|
+
export declare const refkeySym: unique symbol;
|
|
5
|
+
export declare function isDeclaration(program: Program, type: Type): boolean;
|
|
6
|
+
export declare function isRecord(program: Program, type: Type): boolean;
|
|
7
|
+
export declare function shouldReference(program: Program, type: Type): boolean;
|
|
8
|
+
export declare function isBuiltIn(program: Program, type: Type): boolean;
|
|
9
|
+
interface TypeCollector {
|
|
10
|
+
collectType: (type: Type) => void;
|
|
11
|
+
get types(): Type[];
|
|
12
|
+
}
|
|
13
|
+
export declare function newTopologicalTypeCollector(program: Program): TypeCollector;
|
|
14
|
+
export declare function typeboxCall(method: string, ...args: Children[]): Children;
|
|
15
|
+
export declare function idPart(id: string): Children;
|
|
16
|
+
export declare function refkeyPart(refkey: Refkey): Children;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAKnD,eAAO,MAAM,SAAS,eAAwC,CAAC;AAE/D,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAyBnE;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAE9D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,WAE3D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,WAoBrD;AAED,UAAU,aAAa;IACrB,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAClC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;CACrB;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAkD3E;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,YAQ9D;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,YAEhC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,YAExC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { FunctionCallExpression, MemberExpression } from '@alloy-js/typescript';
|
|
3
|
+
import { $ } from '@typespec/compiler/typekit';
|
|
4
|
+
import { SCCSet } from '@typespec/emitter-framework';
|
|
5
|
+
import { typebox } from './external-packages/typebox.js';
|
|
6
|
+
export const refkeySym = Symbol.for('typespec-typebox.refkey');
|
|
7
|
+
export function isDeclaration(program, type) {
|
|
8
|
+
switch (type.kind) {
|
|
9
|
+
case 'Namespace':
|
|
10
|
+
case 'Interface':
|
|
11
|
+
case 'Operation':
|
|
12
|
+
case 'EnumMember':
|
|
13
|
+
return false;
|
|
14
|
+
case 'UnionVariant':
|
|
15
|
+
return false;
|
|
16
|
+
case 'Model':
|
|
17
|
+
if (($(program).array.is(type) || $(program).record.is(type)) && isBuiltIn(program, type)) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
return Boolean(type.name);
|
|
21
|
+
case 'Union':
|
|
22
|
+
return Boolean(type.name);
|
|
23
|
+
case 'Enum':
|
|
24
|
+
return true;
|
|
25
|
+
case 'Scalar':
|
|
26
|
+
return true;
|
|
27
|
+
default:
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export function isRecord(program, type) {
|
|
32
|
+
return type.kind === 'Model' && !!type.indexer && type.indexer.key === $(program).builtin.string;
|
|
33
|
+
}
|
|
34
|
+
export function shouldReference(program, type) {
|
|
35
|
+
return isDeclaration(program, type) && !isBuiltIn(program, type);
|
|
36
|
+
}
|
|
37
|
+
export function isBuiltIn(program, type) {
|
|
38
|
+
if (type.kind === 'ModelProperty' && type.model) {
|
|
39
|
+
type = type.model;
|
|
40
|
+
}
|
|
41
|
+
if (!('namespace' in type) || type.namespace === undefined) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
const globalNs = program.getGlobalNamespaceType();
|
|
45
|
+
let tln = type.namespace;
|
|
46
|
+
if (tln === globalNs) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
while (tln.namespace !== globalNs) {
|
|
50
|
+
tln = tln.namespace;
|
|
51
|
+
}
|
|
52
|
+
return tln === globalNs.namespaces.get('TypeSpec');
|
|
53
|
+
}
|
|
54
|
+
export function newTopologicalTypeCollector(program) {
|
|
55
|
+
const types = new SCCSet(referencedTypes);
|
|
56
|
+
function referencedTypes(type) {
|
|
57
|
+
switch (type.kind) {
|
|
58
|
+
case 'Model':
|
|
59
|
+
return [...(type.baseModel ? [type.baseModel] : []), ...(type.indexer ? [type.indexer.key, type.indexer.value] : []), ...[...type.properties.values()].map(p => p.type)];
|
|
60
|
+
case 'Union':
|
|
61
|
+
return [...type.variants.values()].map(v => v.kind === 'UnionVariant' ? v.type : v);
|
|
62
|
+
case 'UnionVariant':
|
|
63
|
+
return [type.type];
|
|
64
|
+
case 'Interface':
|
|
65
|
+
return [...type.operations.values()];
|
|
66
|
+
case 'Operation':
|
|
67
|
+
return [type.parameters, type.returnType];
|
|
68
|
+
case 'Enum':
|
|
69
|
+
return [];
|
|
70
|
+
case 'Scalar':
|
|
71
|
+
return type.baseScalar ? [type.baseScalar] : [];
|
|
72
|
+
case 'Tuple':
|
|
73
|
+
return type.values;
|
|
74
|
+
case 'Namespace':
|
|
75
|
+
return [...type.operations.values(), ...type.scalars.values(), ...type.models.values(), ...type.enums.values(), ...type.interfaces.values(), ...type.namespaces.values()];
|
|
76
|
+
default:
|
|
77
|
+
return [];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
collectType(type) {
|
|
82
|
+
if (shouldReference(program, type)) {
|
|
83
|
+
types.add(type);
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
get types() {
|
|
87
|
+
return types.items;
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
export function typeboxCall(method, ...args) {
|
|
92
|
+
const target = _$createComponent(MemberExpression, {
|
|
93
|
+
get children() {
|
|
94
|
+
return [_$createComponent(MemberExpression.Part, {
|
|
95
|
+
get refkey() {
|
|
96
|
+
return typebox.Type;
|
|
97
|
+
}
|
|
98
|
+
}), _$createComponent(MemberExpression.Part, {
|
|
99
|
+
id: method
|
|
100
|
+
})];
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
return _$createComponent(FunctionCallExpression, {
|
|
104
|
+
target: target,
|
|
105
|
+
args: args
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
export function idPart(id) {
|
|
109
|
+
return _$createComponent(MemberExpression.Part, {
|
|
110
|
+
id: id
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
export function refkeyPart(refkey) {
|
|
114
|
+
return _$createComponent(MemberExpression.Part, {
|
|
115
|
+
refkey: refkey
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FunctionCallExpression","MemberExpression","$","SCCSet","typebox","refkeySym","Symbol","for","isDeclaration","program","type","kind","array","is","record","isBuiltIn","Boolean","name","isRecord","indexer","key","builtin","string","shouldReference","model","namespace","undefined","globalNs","getGlobalNamespaceType","tln","namespaces","get","newTopologicalTypeCollector","types","referencedTypes","baseModel","value","properties","values","map","p","variants","v","operations","parameters","returnType","baseScalar","scalars","models","enums","interfaces","collectType","add","items","typeboxCall","method","args","target","_$createComponent","children","Part","refkey","Type","id","idPart","refkeyPart"],"sources":["../../src/utils.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { FunctionCallExpression, MemberExpression } from '@alloy-js/typescript';
|
|
2
|
+
import { $ } from '@typespec/compiler/typekit';
|
|
3
|
+
import { SCCSet } from '@typespec/emitter-framework';
|
|
4
|
+
import { typebox } from './external-packages/typebox.js';
|
|
5
|
+
export const refkeySym = Symbol.for('typespec-typebox.refkey');
|
|
6
|
+
export function isDeclaration(program, type) {
|
|
7
|
+
switch (type.kind) {
|
|
8
|
+
case 'Namespace':
|
|
9
|
+
case 'Interface':
|
|
10
|
+
case 'Operation':
|
|
11
|
+
case 'EnumMember':
|
|
12
|
+
return false;
|
|
13
|
+
case 'UnionVariant':
|
|
14
|
+
return false;
|
|
15
|
+
case 'Model':
|
|
16
|
+
if (($(program).array.is(type) || $(program).record.is(type)) && isBuiltIn(program, type)) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return Boolean(type.name);
|
|
20
|
+
case 'Union':
|
|
21
|
+
return Boolean(type.name);
|
|
22
|
+
case 'Enum':
|
|
23
|
+
return true;
|
|
24
|
+
case 'Scalar':
|
|
25
|
+
return true;
|
|
26
|
+
default:
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export function isRecord(program, type) {
|
|
31
|
+
return type.kind === 'Model' && !!type.indexer && type.indexer.key === $(program).builtin.string;
|
|
32
|
+
}
|
|
33
|
+
export function shouldReference(program, type) {
|
|
34
|
+
return isDeclaration(program, type) && !isBuiltIn(program, type);
|
|
35
|
+
}
|
|
36
|
+
export function isBuiltIn(program, type) {
|
|
37
|
+
if (type.kind === 'ModelProperty' && type.model) {
|
|
38
|
+
type = type.model;
|
|
39
|
+
}
|
|
40
|
+
if (!('namespace' in type) || type.namespace === undefined) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
const globalNs = program.getGlobalNamespaceType();
|
|
44
|
+
let tln = type.namespace;
|
|
45
|
+
if (tln === globalNs) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
while (tln.namespace !== globalNs) {
|
|
49
|
+
tln = tln.namespace;
|
|
50
|
+
}
|
|
51
|
+
return tln === globalNs.namespaces.get('TypeSpec');
|
|
52
|
+
}
|
|
53
|
+
export function newTopologicalTypeCollector(program) {
|
|
54
|
+
const types = new SCCSet(referencedTypes);
|
|
55
|
+
function referencedTypes(type) {
|
|
56
|
+
switch (type.kind) {
|
|
57
|
+
case 'Model':
|
|
58
|
+
return [
|
|
59
|
+
...(type.baseModel ? [type.baseModel] : []),
|
|
60
|
+
...(type.indexer ? [type.indexer.key, type.indexer.value] : []),
|
|
61
|
+
...[...type.properties.values()].map((p) => p.type),
|
|
62
|
+
];
|
|
63
|
+
case 'Union':
|
|
64
|
+
return [...type.variants.values()].map((v) => (v.kind === 'UnionVariant' ? v.type : v));
|
|
65
|
+
case 'UnionVariant':
|
|
66
|
+
return [type.type];
|
|
67
|
+
case 'Interface':
|
|
68
|
+
return [...type.operations.values()];
|
|
69
|
+
case 'Operation':
|
|
70
|
+
return [type.parameters, type.returnType];
|
|
71
|
+
case 'Enum':
|
|
72
|
+
return [];
|
|
73
|
+
case 'Scalar':
|
|
74
|
+
return type.baseScalar ? [type.baseScalar] : [];
|
|
75
|
+
case 'Tuple':
|
|
76
|
+
return type.values;
|
|
77
|
+
case 'Namespace':
|
|
78
|
+
return [
|
|
79
|
+
...type.operations.values(),
|
|
80
|
+
...type.scalars.values(),
|
|
81
|
+
...type.models.values(),
|
|
82
|
+
...type.enums.values(),
|
|
83
|
+
...type.interfaces.values(),
|
|
84
|
+
...type.namespaces.values(),
|
|
85
|
+
];
|
|
86
|
+
default:
|
|
87
|
+
return [];
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
collectType(type) {
|
|
92
|
+
if (shouldReference(program, type)) {
|
|
93
|
+
types.add(type);
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
get types() {
|
|
97
|
+
return types.items;
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
export function typeboxCall(method, ...args) {
|
|
102
|
+
const target = (<MemberExpression>
|
|
103
|
+
<MemberExpression.Part refkey={typebox.Type}/>
|
|
104
|
+
<MemberExpression.Part id={method}/>
|
|
105
|
+
</MemberExpression>);
|
|
106
|
+
return <FunctionCallExpression target={target} args={args}/>;
|
|
107
|
+
}
|
|
108
|
+
export function idPart(id) {
|
|
109
|
+
return <MemberExpression.Part id={id}/>;
|
|
110
|
+
}
|
|
111
|
+
export function refkeyPart(refkey) {
|
|
112
|
+
return <MemberExpression.Part refkey={refkey}/>;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=utils.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.jsx","sourceRoot":"","sources":["../../src/utils.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.test.d.ts","sourceRoot":"","sources":["../../../test/emitter/default.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { expect, it } from 'vitest';
|
|
2
|
+
import { createEmitterTestRunner } from "../utils.js";
|
|
3
|
+
it('emits scalar declarations', async () => {
|
|
4
|
+
const runner = await createEmitterTestRunner();
|
|
5
|
+
await runner.compile(`
|
|
6
|
+
scalar MyScalar extends string;
|
|
7
|
+
`);
|
|
8
|
+
const {
|
|
9
|
+
text
|
|
10
|
+
} = await runner.program.host.readFile('@typespec-dev/emitter-typebox/models.ts');
|
|
11
|
+
expect(text.trim()).toMatchSnapshot();
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=default.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["expect","it","createEmitterTestRunner","runner","compile","text","program","host","readFile","trim","toMatchSnapshot"],"sources":["../../../test/emitter/default.test.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACnC,SAASC,uBAAuB;AAEhCD,EAAE,CAAC,2BAA2B,EAAE,YAAY;EAC1C,MAAME,MAAM,GAAG,MAAMD,uBAAuB,CAAC,CAAC;EAC9C,MAAMC,MAAM,CAACC,OAAO,CAAC;AACvB;AACA,GAAG,CAAC;EAEF,MAAM;IAAEC;EAAK,CAAC,GAAG,MAAMF,MAAM,CAACG,OAAO,CAACC,IAAI,CAACC,QAAQ,CAAC,yCAAyC,CAAC;EAE9FR,MAAM,CAACK,IAAI,CAACI,IAAI,CAAC,CAAC,CAAC,CAACC,eAAe,CAAC,CAAC;AACvC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { expect, it } from 'vitest';
|
|
2
|
+
import { createEmitterTestRunner } from '../utils.jsx';
|
|
3
|
+
it('emits scalar declarations', async () => {
|
|
4
|
+
const runner = await createEmitterTestRunner();
|
|
5
|
+
await runner.compile(`
|
|
6
|
+
scalar MyScalar extends string;
|
|
7
|
+
`);
|
|
8
|
+
const { text } = await runner.program.host.readFile('@typespec-dev/emitter-typebox/models.ts');
|
|
9
|
+
expect(text.trim()).toMatchSnapshot();
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=default.test.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.test.jsx","sourceRoot":"","sources":["../../../test/emitter/default.test.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;IACzC,MAAM,MAAM,GAAG,MAAM,uBAAuB,EAAE,CAAC;IAC/C,MAAM,MAAM,CAAC,OAAO,CAAC;;GAEpB,CAAC,CAAC;IAEH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,yCAAyC,CAAC,CAAC;IAE/F,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;AACxC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intrinsics.test.d.ts","sourceRoot":"","sources":["../../test/intrinsics.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { it } from 'vitest';
|
|
3
|
+
import { TypeBoxSchema } from "../src/components/TypeBoxSchema.js";
|
|
4
|
+
import { createTestRunner, expectRender } from "./utils.js";
|
|
5
|
+
it('works with intrinsics', async () => {
|
|
6
|
+
const runner = await createTestRunner();
|
|
7
|
+
const {
|
|
8
|
+
nullProp,
|
|
9
|
+
neverProp,
|
|
10
|
+
unknownProp,
|
|
11
|
+
voidProp
|
|
12
|
+
} = await runner.compile(`
|
|
13
|
+
model Test {
|
|
14
|
+
@test
|
|
15
|
+
nullProp: null,
|
|
16
|
+
|
|
17
|
+
@test
|
|
18
|
+
neverProp: never,
|
|
19
|
+
|
|
20
|
+
@test
|
|
21
|
+
unknownProp: unknown,
|
|
22
|
+
|
|
23
|
+
@test
|
|
24
|
+
voidProp: void,
|
|
25
|
+
}
|
|
26
|
+
`);
|
|
27
|
+
expectRender(runner.program, _$createComponent(TypeBoxSchema, {
|
|
28
|
+
get type() {
|
|
29
|
+
return nullProp.type;
|
|
30
|
+
}
|
|
31
|
+
}), 'Type.Null()');
|
|
32
|
+
expectRender(runner.program, _$createComponent(TypeBoxSchema, {
|
|
33
|
+
get type() {
|
|
34
|
+
return neverProp.type;
|
|
35
|
+
}
|
|
36
|
+
}), 'Type.Never()');
|
|
37
|
+
expectRender(runner.program, _$createComponent(TypeBoxSchema, {
|
|
38
|
+
get type() {
|
|
39
|
+
return unknownProp.type;
|
|
40
|
+
}
|
|
41
|
+
}), 'Type.Unknown()');
|
|
42
|
+
expectRender(runner.program, _$createComponent(TypeBoxSchema, {
|
|
43
|
+
get type() {
|
|
44
|
+
return voidProp.type;
|
|
45
|
+
}
|
|
46
|
+
}), 'Type.Void()');
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=intrinsics.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["it","TypeBoxSchema","createTestRunner","expectRender","runner","nullProp","neverProp","unknownProp","voidProp","compile","program","_$createComponent","type"],"sources":["../../test/intrinsics.test.tsx"],"sourcesContent":[null],"mappings":";AACA,SAASA,EAAE,QAAQ,QAAQ;AAC3B,SAASC,aAAa;AACtB,SAASC,gBAAgB,EAAEC,YAAY;AAEvCH,EAAE,CAAC,uBAAuB,EAAE,YAAY;EACtC,MAAMI,MAAM,GAAG,MAAMF,gBAAgB,CAAC,CAAC;EACvC,MAAM;IAAEG,QAAQ;IAAEC,SAAS;IAAEC,WAAW;IAAEC;EAAS,CAAC,GAAI,MAAMJ,MAAM,CAACK,OAAO,CAAC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAmC;EAEpCN,YAAY,CAACC,MAAM,CAACM,OAAO,EAAAC,iBAAA,CAAGV,aAAa;IAAA,IAACW,IAAIA,CAAA;MAAA,OAAEP,QAAQ,CAACO,IAAI;IAAA;EAAA,IAAM,aAAa,CAAC;EACnFT,YAAY,CAACC,MAAM,CAACM,OAAO,EAAAC,iBAAA,CAAGV,aAAa;IAAA,IAACW,IAAIA,CAAA;MAAA,OAAEN,SAAS,CAACM,IAAI;IAAA;EAAA,IAAM,cAAc,CAAC;EACrFT,YAAY,CAACC,MAAM,CAACM,OAAO,EAAAC,iBAAA,CAAGV,aAAa;IAAA,IAACW,IAAIA,CAAA;MAAA,OAAEL,WAAW,CAACK,IAAI;IAAA;EAAA,IAAM,gBAAgB,CAAC;EACzFT,YAAY,CAACC,MAAM,CAACM,OAAO,EAAAC,iBAAA,CAAGV,aAAa;IAAA,IAACW,IAAIA,CAAA;MAAA,OAAEJ,QAAQ,CAACI,IAAI;IAAA;EAAA,IAAM,aAAa,CAAC;AACrF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { it } from 'vitest';
|
|
2
|
+
import { TypeBoxSchema } from '../src/components/TypeBoxSchema.jsx';
|
|
3
|
+
import { createTestRunner, expectRender } from './utils.jsx';
|
|
4
|
+
it('works with intrinsics', async () => {
|
|
5
|
+
const runner = await createTestRunner();
|
|
6
|
+
const { nullProp, neverProp, unknownProp, voidProp } = (await runner.compile(`
|
|
7
|
+
model Test {
|
|
8
|
+
@test
|
|
9
|
+
nullProp: null,
|
|
10
|
+
|
|
11
|
+
@test
|
|
12
|
+
neverProp: never,
|
|
13
|
+
|
|
14
|
+
@test
|
|
15
|
+
unknownProp: unknown,
|
|
16
|
+
|
|
17
|
+
@test
|
|
18
|
+
voidProp: void,
|
|
19
|
+
}
|
|
20
|
+
`));
|
|
21
|
+
expectRender(runner.program, <TypeBoxSchema type={nullProp.type}/>, 'Type.Null()');
|
|
22
|
+
expectRender(runner.program, <TypeBoxSchema type={neverProp.type}/>, 'Type.Never()');
|
|
23
|
+
expectRender(runner.program, <TypeBoxSchema type={unknownProp.type}/>, 'Type.Unknown()');
|
|
24
|
+
expectRender(runner.program, <TypeBoxSchema type={voidProp.type}/>, 'Type.Void()');
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=intrinsics.test.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intrinsics.test.jsx","sourceRoot":"","sources":["../../test/intrinsics.test.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE7D,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;IACrC,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACxC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;;;;GAc5E,CAAC,CAAkC,CAAC;IAErC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAG,EAAE,aAAa,CAAC,CAAC;IACpF,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAG,EAAE,cAAc,CAAC,CAAC;IACtF,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAG,EAAE,gBAAgB,CAAC,CAAC;IAC1F,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAG,EAAE,aAAa,CAAC,CAAC;AACtF,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"literals.test.d.ts","sourceRoot":"","sources":["../../test/literals.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { it } from 'vitest';
|
|
3
|
+
import { TypeBoxSchema } from "../src/components/TypeBoxSchema.js";
|
|
4
|
+
import { createTestRunner, expectRender } from "./utils.js";
|
|
5
|
+
it('works with literals', async () => {
|
|
6
|
+
const runner = await createTestRunner();
|
|
7
|
+
const {
|
|
8
|
+
stringProp,
|
|
9
|
+
numberProp,
|
|
10
|
+
booleanProp
|
|
11
|
+
} = await runner.compile(`
|
|
12
|
+
model Test {
|
|
13
|
+
@test
|
|
14
|
+
stringProp: "hello",
|
|
15
|
+
|
|
16
|
+
@test
|
|
17
|
+
numberProp: 123,
|
|
18
|
+
|
|
19
|
+
@test
|
|
20
|
+
booleanProp: true,
|
|
21
|
+
}
|
|
22
|
+
`);
|
|
23
|
+
expectRender(runner.program, _$createComponent(TypeBoxSchema, {
|
|
24
|
+
get type() {
|
|
25
|
+
return stringProp.type;
|
|
26
|
+
}
|
|
27
|
+
}), 'Type.Literal("hello")');
|
|
28
|
+
expectRender(runner.program, _$createComponent(TypeBoxSchema, {
|
|
29
|
+
get type() {
|
|
30
|
+
return numberProp.type;
|
|
31
|
+
}
|
|
32
|
+
}), 'Type.Literal(123)');
|
|
33
|
+
expectRender(runner.program, _$createComponent(TypeBoxSchema, {
|
|
34
|
+
get type() {
|
|
35
|
+
return booleanProp.type;
|
|
36
|
+
}
|
|
37
|
+
}), 'Type.Literal(true)');
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=literals.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["it","TypeBoxSchema","createTestRunner","expectRender","runner","stringProp","numberProp","booleanProp","compile","program","_$createComponent","type"],"sources":["../../test/literals.test.tsx"],"sourcesContent":[null],"mappings":";AACA,SAASA,EAAE,QAAQ,QAAQ;AAC3B,SAASC,aAAa;AACtB,SAASC,gBAAgB,EAAEC,YAAY;AAEvCH,EAAE,CAAC,qBAAqB,EAAE,YAAY;EACpC,MAAMI,MAAM,GAAG,MAAMF,gBAAgB,CAAC,CAAC;EACvC,MAAM;IAAEG,UAAU;IAAEC,UAAU;IAAEC;EAAY,CAAC,GAAI,MAAMH,MAAM,CAACI,OAAO,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAmC;EAEpCL,YAAY,CAACC,MAAM,CAACK,OAAO,EAAAC,iBAAA,CAAGT,aAAa;IAAA,IAACU,IAAIA,CAAA;MAAA,OAAEN,UAAU,CAACM,IAAI;IAAA;EAAA,IAAM,uBAAuB,CAAC;EAC/FR,YAAY,CAACC,MAAM,CAACK,OAAO,EAAAC,iBAAA,CAAGT,aAAa;IAAA,IAACU,IAAIA,CAAA;MAAA,OAAEL,UAAU,CAACK,IAAI;IAAA;EAAA,IAAM,mBAAmB,CAAC;EAC3FR,YAAY,CAACC,MAAM,CAACK,OAAO,EAAAC,iBAAA,CAAGT,aAAa;IAAA,IAACU,IAAIA,CAAA;MAAA,OAAEJ,WAAW,CAACI,IAAI;IAAA;EAAA,IAAM,oBAAoB,CAAC;AAC/F,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { it } from 'vitest';
|
|
2
|
+
import { TypeBoxSchema } from '../src/components/TypeBoxSchema.jsx';
|
|
3
|
+
import { createTestRunner, expectRender } from './utils.jsx';
|
|
4
|
+
it('works with literals', async () => {
|
|
5
|
+
const runner = await createTestRunner();
|
|
6
|
+
const { stringProp, numberProp, booleanProp } = (await runner.compile(`
|
|
7
|
+
model Test {
|
|
8
|
+
@test
|
|
9
|
+
stringProp: "hello",
|
|
10
|
+
|
|
11
|
+
@test
|
|
12
|
+
numberProp: 123,
|
|
13
|
+
|
|
14
|
+
@test
|
|
15
|
+
booleanProp: true,
|
|
16
|
+
}
|
|
17
|
+
`));
|
|
18
|
+
expectRender(runner.program, <TypeBoxSchema type={stringProp.type}/>, 'Type.Literal("hello")');
|
|
19
|
+
expectRender(runner.program, <TypeBoxSchema type={numberProp.type}/>, 'Type.Literal(123)');
|
|
20
|
+
expectRender(runner.program, <TypeBoxSchema type={booleanProp.type}/>, 'Type.Literal(true)');
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=literals.test.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"literals.test.jsx","sourceRoot":"","sources":["../../test/literals.test.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE7D,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;IACnC,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACxC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;GAWrE,CAAC,CAAkC,CAAC;IAErC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAG,EAAE,uBAAuB,CAAC,CAAC;IAChG,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAG,EAAE,mBAAmB,CAAC,CAAC;IAC5F,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAG,EAAE,oBAAoB,CAAC,CAAC;AAChG,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scalars.test.d.ts","sourceRoot":"","sources":["../../test/scalars.test.tsx"],"names":[],"mappings":""}
|