@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.
Files changed (82) hide show
  1. package/LICENSE +21 -0
  2. package/dist/src/components/TypeBoxSchema.d.ts +8 -0
  3. package/dist/src/components/TypeBoxSchema.d.ts.map +1 -0
  4. package/dist/src/components/TypeBoxSchema.js +28 -0
  5. package/dist/src/components/TypeBoxSchema.js.map +1 -0
  6. package/dist/src/components/TypeBoxSchema.jsx +19 -0
  7. package/dist/src/components/TypeBoxSchema.jsx.map +1 -0
  8. package/dist/src/components/TypeBoxSchemaDeclaration.d.ts +9 -0
  9. package/dist/src/components/TypeBoxSchemaDeclaration.d.ts.map +1 -0
  10. package/dist/src/components/TypeBoxSchemaDeclaration.js +21 -0
  11. package/dist/src/components/TypeBoxSchemaDeclaration.js.map +1 -0
  12. package/dist/src/components/TypeBoxSchemaDeclaration.jsx +20 -0
  13. package/dist/src/components/TypeBoxSchemaDeclaration.jsx.map +1 -0
  14. package/dist/src/components/index.d.ts +3 -0
  15. package/dist/src/components/index.d.ts.map +1 -0
  16. package/dist/src/components/index.js +3 -0
  17. package/dist/src/components/index.js.map +1 -0
  18. package/dist/src/emitter.d.ts +3 -0
  19. package/dist/src/emitter.d.ts.map +1 -0
  20. package/dist/src/emitter.js +57 -0
  21. package/dist/src/emitter.js.map +1 -0
  22. package/dist/src/emitter.jsx +40 -0
  23. package/dist/src/emitter.jsx.map +1 -0
  24. package/dist/src/external-packages/typebox.d.ts +4 -0
  25. package/dist/src/external-packages/typebox.d.ts.map +1 -0
  26. package/dist/src/external-packages/typebox.js +11 -0
  27. package/dist/src/external-packages/typebox.js.map +1 -0
  28. package/dist/src/index.d.ts +6 -0
  29. package/dist/src/index.d.ts.map +1 -0
  30. package/dist/src/index.js +6 -0
  31. package/dist/src/index.js.map +1 -0
  32. package/dist/src/lib.d.ts +13 -0
  33. package/dist/src/lib.d.ts.map +1 -0
  34. package/dist/src/lib.js +10 -0
  35. package/dist/src/lib.js.map +1 -0
  36. package/dist/src/testing/index.d.ts +3 -0
  37. package/dist/src/testing/index.d.ts.map +1 -0
  38. package/dist/src/testing/index.js +6 -0
  39. package/dist/src/testing/index.js.map +1 -0
  40. package/dist/src/typeboxBaseSchema.d.ts +4 -0
  41. package/dist/src/typeboxBaseSchema.d.ts.map +1 -0
  42. package/dist/src/typeboxBaseSchema.js +129 -0
  43. package/dist/src/typeboxBaseSchema.js.map +1 -0
  44. package/dist/src/typeboxBaseSchema.jsx +136 -0
  45. package/dist/src/typeboxBaseSchema.jsx.map +1 -0
  46. package/dist/src/utils.d.ts +18 -0
  47. package/dist/src/utils.d.ts.map +1 -0
  48. package/dist/src/utils.js +118 -0
  49. package/dist/src/utils.js.map +1 -0
  50. package/dist/src/utils.jsx +114 -0
  51. package/dist/src/utils.jsx.map +1 -0
  52. package/dist/test/emitter/default.test.d.ts +2 -0
  53. package/dist/test/emitter/default.test.d.ts.map +1 -0
  54. package/dist/test/emitter/default.test.js +13 -0
  55. package/dist/test/emitter/default.test.js.map +1 -0
  56. package/dist/test/emitter/default.test.jsx +11 -0
  57. package/dist/test/emitter/default.test.jsx.map +1 -0
  58. package/dist/test/intrinsics.test.d.ts +2 -0
  59. package/dist/test/intrinsics.test.d.ts.map +1 -0
  60. package/dist/test/intrinsics.test.js +48 -0
  61. package/dist/test/intrinsics.test.js.map +1 -0
  62. package/dist/test/intrinsics.test.jsx +26 -0
  63. package/dist/test/intrinsics.test.jsx.map +1 -0
  64. package/dist/test/literals.test.d.ts +2 -0
  65. package/dist/test/literals.test.d.ts.map +1 -0
  66. package/dist/test/literals.test.js +39 -0
  67. package/dist/test/literals.test.js.map +1 -0
  68. package/dist/test/literals.test.jsx +22 -0
  69. package/dist/test/literals.test.jsx.map +1 -0
  70. package/dist/test/scalars.test.d.ts +2 -0
  71. package/dist/test/scalars.test.d.ts.map +1 -0
  72. package/dist/test/scalars.test.js +326 -0
  73. package/dist/test/scalars.test.js.map +1 -0
  74. package/dist/test/scalars.test.jsx +171 -0
  75. package/dist/test/scalars.test.jsx.map +1 -0
  76. package/dist/test/utils.d.ts +8 -0
  77. package/dist/test/utils.d.ts.map +1 -0
  78. package/dist/test/utils.js +63 -0
  79. package/dist/test/utils.js.map +1 -0
  80. package/dist/test/utils.jsx +45 -0
  81. package/dist/test/utils.jsx.map +1 -0
  82. package/package.json +67 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Jordan Hood
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,8 @@
1
+ import { Children } from '@alloy-js/core';
2
+ import { Type } from '@typespec/compiler';
3
+ export interface TypeBoxSchemaProps {
4
+ readonly type: Type;
5
+ readonly nested?: boolean;
6
+ }
7
+ export declare function TypeBoxSchema(props: TypeBoxSchemaProps): Children;
8
+ //# sourceMappingURL=TypeBoxSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeBoxSchema.d.ts","sourceRoot":"","sources":["../../../src/components/TypeBoxSchema.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAU,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAK1C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,QAAQ,CAkBjE"}
@@ -0,0 +1,28 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { refkey } from '@alloy-js/core';
3
+ import { MemberExpression } from '@alloy-js/typescript';
4
+ import { useTsp } from '@typespec/emitter-framework';
5
+ import { typeboxBaseSchemaParts } from "../typeboxBaseSchema.js";
6
+ import { refkeySym, shouldReference } from "../utils.js";
7
+ export function TypeBoxSchema(props) {
8
+ const {
9
+ $
10
+ } = useTsp();
11
+ if (!props.nested) {
12
+ return typeboxBaseSchemaParts(props.type);
13
+ }
14
+ const type = $.modelProperty.is(props.type) ? props.type.type : props.type;
15
+ if (shouldReference($.program, type)) {
16
+ return _$createComponent(MemberExpression, {
17
+ get children() {
18
+ return _$createComponent(MemberExpression.Part, {
19
+ get refkey() {
20
+ return refkey(type, refkeySym);
21
+ }
22
+ });
23
+ }
24
+ });
25
+ }
26
+ return typeboxBaseSchemaParts(type);
27
+ }
28
+ //# sourceMappingURL=TypeBoxSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["refkey","MemberExpression","useTsp","typeboxBaseSchemaParts","refkeySym","shouldReference","TypeBoxSchema","props","$","nested","type","modelProperty","is","program","_$createComponent","children","Part"],"sources":["../../../src/components/TypeBoxSchema.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAAmBA,MAAM,QAAQ,gBAAgB;AACjD,SAASC,gBAAgB,QAAQ,sBAAsB;AAEvD,SAASC,MAAM,QAAQ,6BAA6B;AACpD,SAASC,sBAAsB;AAC/B,SAASC,SAAS,EAAEC,eAAe;AAOnC,OAAO,SAASC,aAAaA,CAACC,KAAyB,EAAY;EACjE,MAAM;IAAEC;EAAE,CAAC,GAAGN,MAAM,CAAC,CAAC;EAEtB,IAAI,CAACK,KAAK,CAACE,MAAM,EAAE;IACjB,OAAON,sBAAsB,CAACI,KAAK,CAACG,IAAI,CAAC;EAC3C;EAEA,MAAMA,IAAI,GAAGF,CAAC,CAACG,aAAa,CAACC,EAAE,CAACL,KAAK,CAACG,IAAI,CAAC,GAAGH,KAAK,CAACG,IAAI,CAACA,IAAI,GAAGH,KAAK,CAACG,IAAI;EAE1E,IAAIL,eAAe,CAACG,CAAC,CAACK,OAAO,EAAEH,IAAI,CAAC,EAAE;IACpC,OAAAI,iBAAA,CACGb,gBAAgB;MAAA,IAAAc,SAAA;QAAA,OAAAD,iBAAA,CACdb,gBAAgB,CAACe,IAAI;UAAA,IAAChB,MAAMA,CAAA;YAAA,OAAEA,MAAM,CAACU,IAAI,EAAEN,SAAS,CAAC;UAAA;QAAA;MAAA;IAAA;EAG5D;EAEA,OAAOD,sBAAsB,CAACO,IAAI,CAAC;AACrC","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ import { refkey } from '@alloy-js/core';
2
+ import { MemberExpression } from '@alloy-js/typescript';
3
+ import { useTsp } from '@typespec/emitter-framework';
4
+ import { typeboxBaseSchemaParts } from '../typeboxBaseSchema.jsx';
5
+ import { refkeySym, shouldReference } from '../utils.jsx';
6
+ export function TypeBoxSchema(props) {
7
+ const { $ } = useTsp();
8
+ if (!props.nested) {
9
+ return typeboxBaseSchemaParts(props.type);
10
+ }
11
+ const type = $.modelProperty.is(props.type) ? props.type.type : props.type;
12
+ if (shouldReference($.program, type)) {
13
+ return (<MemberExpression>
14
+ <MemberExpression.Part refkey={refkey(type, refkeySym)}/>
15
+ </MemberExpression>);
16
+ }
17
+ return typeboxBaseSchemaParts(type);
18
+ }
19
+ //# sourceMappingURL=TypeBoxSchema.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeBoxSchema.jsx","sourceRoot":"","sources":["../../../src/components/TypeBoxSchema.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAO1D,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;IAEvB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IAE3E,IAAI,eAAe,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO,CACL,CAAC,gBAAgB,CACf;QAAA,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EACzD;MAAA,EAAE,gBAAgB,CAAC,CACpB,CAAC;IACJ,CAAC;IAED,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import * as ay from '@alloy-js/core';
2
+ import * as ts from '@alloy-js/typescript';
3
+ import { TypeBoxSchemaProps } from './TypeBoxSchema.jsx';
4
+ interface TypeBoxSchemaDeclarationProps extends Omit<ts.VarDeclarationProps, 'type' | 'name' | 'value' | 'kind'>, TypeBoxSchemaProps {
5
+ readonly name?: string;
6
+ }
7
+ export declare function TypeBoxSchemaDeclaration(props: TypeBoxSchemaDeclarationProps): ay.Children;
8
+ export {};
9
+ //# sourceMappingURL=TypeBoxSchemaDeclaration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeBoxSchemaDeclaration.d.ts","sourceRoot":"","sources":["../../../src/components/TypeBoxSchemaDeclaration.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3C,OAAO,EAAiB,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAExE,UAAU,6BACR,SAAQ,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,EAAE,kBAAkB;IAC5F,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,eAsB5E"}
@@ -0,0 +1,21 @@
1
+ import { createComponent as _$createComponent, mergeProps as _$mergeProps } from "@alloy-js/core/jsx-runtime";
2
+ import * as ay from '@alloy-js/core';
3
+ import * as ts from '@alloy-js/typescript';
4
+ import { refkeySym } from "../utils.js";
5
+ import { TypeBoxSchema } from "./TypeBoxSchema.js";
6
+ export function TypeBoxSchemaDeclaration(props) {
7
+ const internalRk = ay.refkey(props.type, refkeySym);
8
+ const [schemaProps, varDeclProps] = ay.splitProps(props, ['type', 'nested']);
9
+ const refkeys = [props.refkey ?? []].flat();
10
+ refkeys.push(internalRk);
11
+ const newProps = ay.mergeProps(varDeclProps, {
12
+ refkey: refkeys,
13
+ name: props.name || 'name' in props.type && typeof props.type.name === 'string' && props.type.name || props.type.kind
14
+ });
15
+ return _$createComponent(ts.VarDeclaration, _$mergeProps(newProps, {
16
+ get children() {
17
+ return _$createComponent(TypeBoxSchema, schemaProps);
18
+ }
19
+ }));
20
+ }
21
+ //# sourceMappingURL=TypeBoxSchemaDeclaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ay","ts","refkeySym","TypeBoxSchema","TypeBoxSchemaDeclaration","props","internalRk","refkey","type","schemaProps","varDeclProps","splitProps","refkeys","flat","push","newProps","mergeProps","name","kind","_$createComponent","VarDeclaration","_$mergeProps","children"],"sources":["../../../src/components/TypeBoxSchemaDeclaration.tsx"],"sourcesContent":[null],"mappings":";AAAA,OAAO,KAAKA,EAAE,MAAM,gBAAgB;AACpC,OAAO,KAAKC,EAAE,MAAM,sBAAsB;AAC1C,SAASC,SAAS;AAClB,SAASC,aAAa;AAOtB,OAAO,SAASC,wBAAwBA,CAACC,KAAoC,EAAE;EAC7E,MAAMC,UAAU,GAAGN,EAAE,CAACO,MAAM,CAACF,KAAK,CAACG,IAAI,EAAEN,SAAS,CAAC;EACnD,MAAM,CAACO,WAAW,EAAEC,YAAY,CAAC,GAAGV,EAAE,CAACW,UAAU,CAACN,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAG1E;EAED,MAAMO,OAAO,GAAG,CAACP,KAAK,CAACE,MAAM,IAAI,EAAE,CAAC,CAACM,IAAI,CAAC,CAAC;EAC3CD,OAAO,CAACE,IAAI,CAACR,UAAU,CAAC;EACxB,MAAMS,QAAQ,GAAGf,EAAE,CAACgB,UAAU,CAACN,YAAY,EAAE;IAC3CH,MAAM,EAAEK,OAAO;IACfK,IAAI,EACFZ,KAAK,CAACY,IAAI,IACT,MAAM,IAAIZ,KAAK,CAACG,IAAI,IAAI,OAAOH,KAAK,CAACG,IAAI,CAACS,IAAI,KAAK,QAAQ,IAAIZ,KAAK,CAACG,IAAI,CAACS,IAAK,IAChFZ,KAAK,CAACG,IAAI,CAACU;EACf,CAAC,CAAC;EAEF,OAAAC,iBAAA,CACGlB,EAAE,CAACmB,cAAc,EAAAC,YAAA,CAAKN,QAAQ;IAAA,IAAAO,SAAA;MAAA,OAAAH,iBAAA,CAC5BhB,aAAa,EAAKM,WAAW;IAAA;EAAA;AAGpC","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ import * as ay from '@alloy-js/core';
2
+ import * as ts from '@alloy-js/typescript';
3
+ import { refkeySym } from '../utils.jsx';
4
+ import { TypeBoxSchema } from './TypeBoxSchema.jsx';
5
+ export function TypeBoxSchemaDeclaration(props) {
6
+ const internalRk = ay.refkey(props.type, refkeySym);
7
+ const [schemaProps, varDeclProps] = ay.splitProps(props, ['type', 'nested']);
8
+ const refkeys = [props.refkey ?? []].flat();
9
+ refkeys.push(internalRk);
10
+ const newProps = ay.mergeProps(varDeclProps, {
11
+ refkey: refkeys,
12
+ name: props.name ||
13
+ ('name' in props.type && typeof props.type.name === 'string' && props.type.name) ||
14
+ props.type.kind,
15
+ });
16
+ return (<ts.VarDeclaration {...newProps}>
17
+ <TypeBoxSchema {...schemaProps}/>
18
+ </ts.VarDeclaration>);
19
+ }
20
+ //# sourceMappingURL=TypeBoxSchemaDeclaration.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeBoxSchemaDeclaration.jsx","sourceRoot":"","sources":["../../../src/components/TypeBoxSchemaDeclaration.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAsB,MAAM,qBAAqB,CAAC;AAOxE,MAAM,UAAU,wBAAwB,CAAC,KAAoC;IAC3E,MAAM,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpD,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAG1E,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzB,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE;QAC3C,MAAM,EAAE,OAAO;QACf,IAAI,EACF,KAAK,CAAC,IAAI;YACV,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAChF,KAAK,CAAC,IAAI,CAAC,IAAI;KAClB,CAAC,CAAC;IAEH,OAAO,CACL,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,CAC9B;MAAA,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,EACjC;IAAA,EAAE,EAAE,CAAC,cAAc,CAAC,CACrB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './TypeBoxSchema.jsx';
2
+ export * from './TypeBoxSchemaDeclaration.jsx';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./TypeBoxSchema.js";
2
+ export * from "./TypeBoxSchemaDeclaration.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/components/index.ts"],"sourcesContent":[null],"mappings":"AAAA;AACA","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { EmitContext } from '@typespec/compiler';
2
+ export declare function $onEmit(context: EmitContext): Promise<void>;
3
+ //# sourceMappingURL=emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/emitter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAA0C,MAAM,oBAAoB,CAAC;AAOzF,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,iBAyBjD"}
@@ -0,0 +1,57 @@
1
+ import { createComponent as _$createComponent, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
2
+ import * as ay from '@alloy-js/core';
3
+ import * as ts from '@alloy-js/typescript';
4
+ import { ListenerFlow, navigateProgram } from '@typespec/compiler';
5
+ import { $ } from '@typespec/compiler/typekit';
6
+ import { Output, writeOutput } from '@typespec/emitter-framework';
7
+ import { TypeBoxSchemaDeclaration } from "./components/TypeBoxSchemaDeclaration.js";
8
+ import { typebox } from './external-packages/typebox.js';
9
+ import { newTopologicalTypeCollector } from "./utils.js";
10
+ export async function $onEmit(context) {
11
+ const types = getAllDataTypes(context.program);
12
+ const tsNamePolicy = ts.createTSNamePolicy();
13
+ writeOutput(context.program, _$createComponent(Output, {
14
+ get program() {
15
+ return context.program;
16
+ },
17
+ namePolicy: tsNamePolicy,
18
+ externals: [typebox],
19
+ get children() {
20
+ return _$createComponent(ts.SourceFile, {
21
+ path: "models.ts",
22
+ get children() {
23
+ return _$createComponent(ay.For, {
24
+ each: types,
25
+ ender: ";",
26
+ get joiner() {
27
+ return [";", _$createIntrinsic("hbr", {}), _$createIntrinsic("hbr", {})];
28
+ },
29
+ children: type => _$createComponent(TypeBoxSchemaDeclaration, {
30
+ type: type,
31
+ "export": true
32
+ })
33
+ });
34
+ }
35
+ });
36
+ }
37
+ }), context.emitterOutputDir);
38
+ }
39
+ function getAllDataTypes(program) {
40
+ const collector = newTopologicalTypeCollector(program);
41
+ const globalNs = program.getGlobalNamespaceType();
42
+ navigateProgram(program, {
43
+ namespace(n) {
44
+ if (n !== globalNs && !$(program).type.isUserDefined(n)) {
45
+ return ListenerFlow.NoRecursion;
46
+ }
47
+ },
48
+ model: collector.collectType,
49
+ enum: collector.collectType,
50
+ union: collector.collectType,
51
+ scalar: collector.collectType
52
+ }, {
53
+ includeTemplateDeclaration: false
54
+ });
55
+ return collector.types;
56
+ }
57
+ //# sourceMappingURL=emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ay","ts","ListenerFlow","navigateProgram","$","Output","writeOutput","TypeBoxSchemaDeclaration","typebox","newTopologicalTypeCollector","$onEmit","context","types","getAllDataTypes","program","tsNamePolicy","createTSNamePolicy","_$createComponent","namePolicy","externals","children","SourceFile","path","For","each","ender","joiner","_$createIntrinsic","type","emitterOutputDir","collector","globalNs","getGlobalNamespaceType","namespace","n","isUserDefined","NoRecursion","model","collectType","enum","union","scalar","includeTemplateDeclaration"],"sources":["../../src/emitter.tsx"],"sourcesContent":[null],"mappings":";AAAA,OAAO,KAAKA,EAAE,MAAM,gBAAgB;AACpC,OAAO,KAAKC,EAAE,MAAM,sBAAsB;AAC1C,SAAsBC,YAAY,EAAEC,eAAe,QAAiB,oBAAoB;AACxF,SAASC,CAAC,QAAQ,4BAA4B;AAC9C,SAASC,MAAM,EAAEC,WAAW,QAAQ,6BAA6B;AACjE,SAASC,wBAAwB;AACjC,SAASC,OAAO,QAAQ,gCAAgC;AACxD,SAASC,2BAA2B;AAEpC,OAAO,eAAeC,OAAOA,CAACC,OAAoB,EAAE;EAClD,MAAMC,KAAK,GAAGC,eAAe,CAACF,OAAO,CAACG,OAAO,CAAC;EAC9C,MAAMC,YAAY,GAAGd,EAAE,CAACe,kBAAkB,CAAC,CAAC;EAE5CV,WAAW,CACTK,OAAO,CAACG,OAAO,EAAAG,iBAAA,CACdZ,MAAM;IAAA,IAACS,OAAOA,CAAA;MAAA,OAAEH,OAAO,CAACG,OAAO;IAAA;IAAEI,UAAU,EAAEH,YAAY;IAAEI,SAAS,EAAE,CAACX,OAAO,CAAC;IAAA,IAAAY,SAAA;MAAA,OAAAH,iBAAA,CAC7EhB,EAAE,CAACoB,UAAU;QAACC,IAAI;QAAA,IAAAF,SAAA;UAAA,OAAAH,iBAAA,CAChBjB,EAAE,CAACuB,GAAG;YACLC,IAAI,EAAEZ,KAAK;YACXa,KAAK;YAAA,IACLC,MAAMA,CAAA;cAAA,aAAAC,iBAAA,aAAAA,iBAAA;YAAA;YAAAP,QAAA,EAQJQ,IAAI,IAAAX,iBAAA,CAAMV,wBAAwB;cAACqB,IAAI,EAAEA,IAAI;cAAA;YAAA;UAAW;QAAA;MAAA;IAAA;EAAA,IAIhEjB,OAAO,CAACkB,gBACV,CAAC;AACH;AAEA,SAAShB,eAAeA,CAACC,OAAgB,EAAE;EACzC,MAAMgB,SAAS,GAAGrB,2BAA2B,CAACK,OAAO,CAAC;EACtD,MAAMiB,QAAQ,GAAGjB,OAAO,CAACkB,sBAAsB,CAAC,CAAC;EAEjD7B,eAAe,CACbW,OAAO,EACP;IACEmB,SAASA,CAACC,CAAC,EAAE;MACX,IAAIA,CAAC,KAAKH,QAAQ,IAAI,CAAC3B,CAAC,CAACU,OAAO,CAAC,CAACc,IAAI,CAACO,aAAa,CAACD,CAAC,CAAC,EAAE;QACvD,OAAOhC,YAAY,CAACkC,WAAW;MACjC;IACF,CAAC;IACDC,KAAK,EAAEP,SAAS,CAACQ,WAAW;IAC5BC,IAAI,EAAET,SAAS,CAACQ,WAAW;IAC3BE,KAAK,EAAEV,SAAS,CAACQ,WAAW;IAC5BG,MAAM,EAAEX,SAAS,CAACQ;EACpB,CAAC,EACD;IAAEI,0BAA0B,EAAE;EAAM,CACtC,CAAC;EAED,OAAOZ,SAAS,CAAClB,KAAK;AACxB","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ import * as ay from '@alloy-js/core';
2
+ import * as ts from '@alloy-js/typescript';
3
+ import { ListenerFlow, navigateProgram } from '@typespec/compiler';
4
+ import { $ } from '@typespec/compiler/typekit';
5
+ import { Output, writeOutput } from '@typespec/emitter-framework';
6
+ import { TypeBoxSchemaDeclaration } from './components/TypeBoxSchemaDeclaration.jsx';
7
+ import { typebox } from './external-packages/typebox.js';
8
+ import { newTopologicalTypeCollector } from './utils.jsx';
9
+ export async function $onEmit(context) {
10
+ const types = getAllDataTypes(context.program);
11
+ const tsNamePolicy = ts.createTSNamePolicy();
12
+ writeOutput(context.program, <Output program={context.program} namePolicy={tsNamePolicy} externals={[typebox]}>
13
+ <ts.SourceFile path="models.ts">
14
+ <ay.For each={types} ender=";" joiner={<>
15
+ ;
16
+ <hbr />
17
+ <hbr />
18
+ </>}>
19
+ {(type) => <TypeBoxSchemaDeclaration type={type} export/>}
20
+ </ay.For>
21
+ </ts.SourceFile>
22
+ </Output>, context.emitterOutputDir);
23
+ }
24
+ function getAllDataTypes(program) {
25
+ const collector = newTopologicalTypeCollector(program);
26
+ const globalNs = program.getGlobalNamespaceType();
27
+ navigateProgram(program, {
28
+ namespace(n) {
29
+ if (n !== globalNs && !$(program).type.isUserDefined(n)) {
30
+ return ListenerFlow.NoRecursion;
31
+ }
32
+ },
33
+ model: collector.collectType,
34
+ enum: collector.collectType,
35
+ union: collector.collectType,
36
+ scalar: collector.collectType,
37
+ }, { includeTemplateDeclaration: false });
38
+ return collector.types;
39
+ }
40
+ //# sourceMappingURL=emitter.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitter.jsx","sourceRoot":"","sources":["../../src/emitter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAe,YAAY,EAAE,eAAe,EAAW,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAE,CAAC,EAAE,MAAM,4BAA4B,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAoB;IAChD,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC;IAE7C,WAAW,CACT,OAAO,CAAC,OAAO,EACf,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAC/E;MAAA,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAC7B;QAAA,CAAC,EAAE,CAAC,GAAG,CACL,IAAI,CAAC,CAAC,KAAK,CAAC,CACZ,KAAK,CAAC,GAAG,CACT,MAAM,CAAC,CACL,EACE;;cACA,CAAC,GAAG,CAAC,AAAD,EACJ;cAAA,CAAC,GAAG,CAAC,AAAD,EACN;YAAA,GACF,CAAC,CAED;UAAA,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAG,CAC5D;QAAA,EAAE,EAAE,CAAC,GAAG,CACV;MAAA,EAAE,EAAE,CAAC,UAAU,CACjB;IAAA,EAAE,MAAM,CAAC,EACT,OAAO,CAAC,gBAAgB,CACzB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,MAAM,SAAS,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAElD,eAAe,CACb,OAAO,EACP;QACE,SAAS,CAAC,CAAC;YACT,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,OAAO,YAAY,CAAC,WAAW,CAAC;YAClC,CAAC;QACH,CAAC;QACD,KAAK,EAAE,SAAS,CAAC,WAAW;QAC5B,IAAI,EAAE,SAAS,CAAC,WAAW;QAC3B,KAAK,EAAE,SAAS,CAAC,WAAW;QAC5B,MAAM,EAAE,SAAS,CAAC,WAAW;KAC9B,EACD,EAAE,0BAA0B,EAAE,KAAK,EAAE,CACtC,CAAC;IAEF,OAAO,SAAS,CAAC,KAAK,CAAC;AACzB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const typebox: {
2
+ Type: import("@alloy-js/core").Refkey;
3
+ } & {} & {} & import("@alloy-js/core").SymbolCreator & import("@alloy-js/typescript").ExternalPackage;
4
+ //# sourceMappingURL=typebox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typebox.d.ts","sourceRoot":"","sources":["../../../src/external-packages/typebox.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO;;qGAQlB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { createPackage } from '@alloy-js/typescript';
2
+ export const typebox = createPackage({
3
+ name: 'typebox',
4
+ version: '^1.0.0',
5
+ descriptor: {
6
+ '.': {
7
+ named: ['Type']
8
+ }
9
+ }
10
+ });
11
+ //# sourceMappingURL=typebox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createPackage","typebox","name","version","descriptor","named"],"sources":["../../../src/external-packages/typebox.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,aAAa,QAAQ,sBAAsB;AAEpD,OAAO,MAAMC,OAAO,GAAGD,aAAa,CAAC;EACnCE,IAAI,EAAE,SAAS;EACfC,OAAO,EAAE,QAAQ;EACjBC,UAAU,EAAE;IACV,GAAG,EAAE;MACHC,KAAK,EAAE,CAAC,MAAM;IAChB;EACF;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ export * from './components/index.js';
2
+ export { $onEmit } from './emitter.jsx';
3
+ export * from './external-packages/typebox.js';
4
+ export { $lib } from './lib.js';
5
+ export * from './utils.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './components/index.js';
2
+ export { $onEmit } from "./emitter.js";
3
+ export * from './external-packages/typebox.js';
4
+ export { $lib } from './lib.js';
5
+ export * from './utils.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["$onEmit","$lib"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc,uBAAuB;AACrC,SAASA,OAAO;AAChB,cAAc,gCAAgC;AAC9C,SAASC,IAAI,QAAQ,UAAU;AAC/B,cAAc,YAAY","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
2
+ [code: string]: import("@typespec/compiler").DiagnosticMessages;
3
+ }, Record<string, any>, never>;
4
+ export declare const reportDiagnostic: <C extends string | number, M extends keyof {
5
+ [code: string]: import("@typespec/compiler").DiagnosticMessages;
6
+ }[C]>(program: import("@typespec/compiler").Program, diag: import("@typespec/compiler").DiagnosticReport<{
7
+ [code: string]: import("@typespec/compiler").DiagnosticMessages;
8
+ }, C, M>) => void, createDiagnostic: <C extends string | number, M extends keyof {
9
+ [code: string]: import("@typespec/compiler").DiagnosticMessages;
10
+ }[C]>(diag: import("@typespec/compiler").DiagnosticReport<{
11
+ [code: string]: import("@typespec/compiler").DiagnosticMessages;
12
+ }, C, M>) => import("@typespec/compiler").Diagnostic;
13
+ //# sourceMappingURL=lib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI;;8BAGf,CAAC;AAEH,eAAO,MAAQ,gBAAgB;;;;mBAAE,gBAAgB;;;;oDAAS,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { createTypeSpecLibrary } from '@typespec/compiler';
2
+ export const $lib = createTypeSpecLibrary({
3
+ name: '@typespec-dev/emitter-typebox',
4
+ diagnostics: {}
5
+ });
6
+ export const {
7
+ reportDiagnostic,
8
+ createDiagnostic
9
+ } = $lib;
10
+ //# sourceMappingURL=lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createTypeSpecLibrary","$lib","name","diagnostics","reportDiagnostic","createDiagnostic"],"sources":["../../src/lib.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,qBAAqB,QAAQ,oBAAoB;AAE1D,OAAO,MAAMC,IAAI,GAAGD,qBAAqB,CAAC;EACxCE,IAAI,EAAE,+BAA+B;EACrCC,WAAW,EAAE,CAAC;AAChB,CAAC,CAAC;AAEF,OAAO,MAAM;EAAEC,gBAAgB;EAAEC;AAAiB,CAAC,GAAGJ,IAAI","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { type TypeSpecTestLibrary } from '@typespec/compiler/testing';
2
+ export declare const TypeSpecTypeBoxTestLibrary: TypeSpecTestLibrary;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,0BAA0B,EAAE,mBAGvC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { createTestLibrary, findTestPackageRoot } from '@typespec/compiler/testing';
2
+ export const TypeSpecTypeBoxTestLibrary = createTestLibrary({
3
+ name: '@typespec-dev/emitter-typebox',
4
+ packageRoot: await findTestPackageRoot(import.meta.url)
5
+ });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createTestLibrary","findTestPackageRoot","TypeSpecTypeBoxTestLibrary","name","packageRoot","import","meta","url"],"sources":["../../../src/testing/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SACEA,iBAAiB,EACjBC,mBAAmB,QAEd,4BAA4B;AAEnC,OAAO,MAAMC,0BAA+C,GAAGF,iBAAiB,CAAC;EAC/EG,IAAI,EAAE,+BAA+B;EACrCC,WAAW,EAAE,MAAMH,mBAAmB,CAACI,MAAM,CAACC,IAAI,CAACC,GAAG;AACxD,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import { Children } from '@alloy-js/core/jsx-runtime';
2
+ import { Type } from '@typespec/compiler';
3
+ export declare function typeboxBaseSchemaParts(type: Type): Children;
4
+ //# sourceMappingURL=typeboxBaseSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeboxBaseSchema.d.ts","sourceRoot":"","sources":["../../src/typeboxBaseSchema.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAuB,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAK/D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,CAqB3D"}
@@ -0,0 +1,129 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { refkey } from '@alloy-js/core';
3
+ import { MemberExpression, ObjectExpression, ObjectProperty } from '@alloy-js/typescript';
4
+ import { useTsp } from '@typespec/emitter-framework';
5
+ import { refkeySym, shouldReference, typeboxCall } from "./utils.js";
6
+ export function typeboxBaseSchemaParts(type) {
7
+ const {
8
+ $
9
+ } = useTsp();
10
+ switch (type.kind) {
11
+ case 'Intrinsic':
12
+ return intrinsicBaseType(type);
13
+ case 'String':
14
+ case 'Number':
15
+ case 'Boolean':
16
+ return literalBaseType($, type);
17
+ case 'Scalar':
18
+ return scalarBaseType($, type);
19
+ case 'ModelProperty':
20
+ return typeboxBaseSchemaParts(type.type);
21
+ case 'EnumMember':
22
+ return type.value ? literalBaseType($, $.literal.create(type.value)) : literalBaseType($, $.literal.create(type.name));
23
+ default:
24
+ return typeboxCall('Any');
25
+ }
26
+ }
27
+ function literalBaseType($, type) {
28
+ switch (type.kind) {
29
+ case 'String':
30
+ return typeboxCall('Literal', `"${type.value}"`);
31
+ case 'Number':
32
+ case 'Boolean':
33
+ return typeboxCall('Literal', `${type.value}`);
34
+ }
35
+ }
36
+ function formatOpts(format) {
37
+ return _$createComponent(ObjectExpression, {
38
+ get children() {
39
+ return _$createComponent(ObjectProperty, {
40
+ name: "format",
41
+ children: `"${format}"`
42
+ });
43
+ }
44
+ });
45
+ }
46
+ function scalarBaseType($, type) {
47
+ if (type.baseScalar && shouldReference($.program, type.baseScalar)) {
48
+ return _$createComponent(MemberExpression, {
49
+ get children() {
50
+ return _$createComponent(MemberExpression.Part, {
51
+ get refkey() {
52
+ return refkey(type.baseScalar, refkeySym);
53
+ }
54
+ });
55
+ }
56
+ });
57
+ }
58
+ if ($.scalar.extendsBoolean(type)) {
59
+ return typeboxCall('Boolean');
60
+ } else if ($.scalar.extendsNumeric(type)) {
61
+ if ($.scalar.extendsInteger(type)) {
62
+ if ($.scalar.extendsInt32(type) || $.scalar.extendsUint32(type) || $.scalar.extendsSafeint(type)) {
63
+ return typeboxCall('Integer');
64
+ } else {
65
+ return typeboxCall('BigInt');
66
+ }
67
+ } else {
68
+ return typeboxCall('Number');
69
+ }
70
+ } else if ($.scalar.extendsString(type)) {
71
+ if ($.scalar.extendsUrl(type)) {
72
+ return typeboxCall('String', formatOpts('uri'));
73
+ }
74
+ return typeboxCall('String');
75
+ } else if ($.scalar.extendsBytes(type)) {
76
+ return typeboxCall('Any');
77
+ } else if ($.scalar.extendsPlainDate(type)) {
78
+ return typeboxCall('Date');
79
+ } else if ($.scalar.extendsPlainTime(type)) {
80
+ return typeboxCall('String', formatOpts('time'));
81
+ } else if ($.scalar.extendsUtcDateTime(type)) {
82
+ const encoding = $.scalar.getEncoding(type);
83
+ if (encoding === undefined) {
84
+ return typeboxCall('Date');
85
+ } else if (encoding.encoding === 'unixTimestamp') {
86
+ return scalarBaseType($, encoding.type);
87
+ } else if (encoding.encoding === 'rfc3339') {
88
+ return typeboxCall('String', formatOpts('date-time'));
89
+ } else {
90
+ return scalarBaseType($, encoding.type);
91
+ }
92
+ } else if ($.scalar.extendsOffsetDateTime(type)) {
93
+ const encoding = $.scalar.getEncoding(type);
94
+ if (encoding === undefined) {
95
+ return typeboxCall('Date');
96
+ } else if (encoding.encoding === 'rfc3339') {
97
+ return typeboxCall('String', formatOpts('date-time'));
98
+ } else {
99
+ return scalarBaseType($, encoding.type);
100
+ }
101
+ } else if ($.scalar.extendsDuration(type)) {
102
+ const encoding = $.scalar.getEncoding(type);
103
+ if (encoding === undefined || encoding.encoding === 'ISO8601') {
104
+ return typeboxCall('String', formatOpts('duration'));
105
+ } else {
106
+ return scalarBaseType($, encoding.type);
107
+ }
108
+ } else {
109
+ return typeboxCall('Any');
110
+ }
111
+ }
112
+ function intrinsicBaseType(type) {
113
+ if (type.kind === 'Intrinsic') {
114
+ switch (type.name) {
115
+ case 'null':
116
+ return typeboxCall('Null');
117
+ case 'never':
118
+ return typeboxCall('Never');
119
+ case 'unknown':
120
+ return typeboxCall('Unknown');
121
+ case 'void':
122
+ return typeboxCall('Void');
123
+ default:
124
+ return typeboxCall('Any');
125
+ }
126
+ }
127
+ return typeboxCall('Any');
128
+ }
129
+ //# sourceMappingURL=typeboxBaseSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["refkey","MemberExpression","ObjectExpression","ObjectProperty","useTsp","refkeySym","shouldReference","typeboxCall","typeboxBaseSchemaParts","type","$","kind","intrinsicBaseType","literalBaseType","scalarBaseType","value","literal","create","name","formatOpts","format","_$createComponent","children","baseScalar","program","Part","scalar","extendsBoolean","extendsNumeric","extendsInteger","extendsInt32","extendsUint32","extendsSafeint","extendsString","extendsUrl","extendsBytes","extendsPlainDate","extendsPlainTime","extendsUtcDateTime","encoding","getEncoding","undefined","extendsOffsetDateTime","extendsDuration"],"sources":["../../src/typeboxBaseSchema.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}