typespec-fastify 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/src/components/OperationInterface.js +4 -2
  2. package/dist/src/components/OperationInterface.js.map +1 -1
  3. package/dist/src/components/OperationInterface.jsx +3 -1
  4. package/dist/src/components/OperationInterface.jsx.map +1 -1
  5. package/dist/src/components/ResponseTypes.js +0 -20
  6. package/dist/src/components/ResponseTypes.js.map +1 -1
  7. package/dist/src/components/ResponseTypes.jsx +0 -20
  8. package/dist/src/components/ResponseTypes.jsx.map +1 -1
  9. package/dist/src/components/RouteRegistration.d.ts +2 -2
  10. package/dist/src/components/RouteRegistration.js +110 -29
  11. package/dist/src/components/RouteRegistration.js.map +1 -1
  12. package/dist/src/components/RouteRegistration.jsx +111 -21
  13. package/dist/src/components/RouteRegistration.jsx.map +1 -1
  14. package/dist/src/components/RouterFile.js +4 -5
  15. package/dist/src/components/RouterFile.js.map +1 -1
  16. package/dist/src/components/RouterFile.jsx +4 -1
  17. package/dist/src/components/RouterFile.jsx.map +1 -1
  18. package/dist/src/components/RoutesDirectory.js +2 -4
  19. package/dist/src/components/RoutesDirectory.js.map +1 -1
  20. package/dist/src/components/RoutesDirectory.jsx +3 -3
  21. package/dist/src/components/RoutesDirectory.jsx.map +1 -1
  22. package/dist/src/components/ZodSchemasDirectory.d.ts +9 -0
  23. package/dist/src/components/ZodSchemasDirectory.js +37 -0
  24. package/dist/src/components/ZodSchemasDirectory.js.map +1 -0
  25. package/dist/src/components/ZodSchemasDirectory.jsx +25 -0
  26. package/dist/src/components/ZodSchemasDirectory.jsx.map +1 -0
  27. package/dist/src/emitter.js +9 -1
  28. package/dist/src/emitter.js.map +1 -1
  29. package/dist/src/emitter.jsx +5 -1
  30. package/dist/src/emitter.jsx.map +1 -1
  31. package/dist/src/external-packages/fastify-type-provider-zod.d.ts +5 -0
  32. package/dist/src/external-packages/fastify-type-provider-zod.js +11 -0
  33. package/dist/src/external-packages/fastify-type-provider-zod.js.map +1 -0
  34. package/dist/src/lib.d.ts +8 -1
  35. package/dist/src/lib.js +8 -1
  36. package/dist/src/lib.js.map +1 -1
  37. package/package.json +23 -4
@@ -55,13 +55,15 @@ export function OperationInterface(props) {
55
55
  }
56
56
  }
57
57
  if (operation.parameters.body) {
58
+ const bodyParam = operation.parameters.body;
58
59
  parameters.push({
59
60
  name: "body",
60
61
  type: _$createComponent(TypeExpression, {
61
62
  get type() {
62
- return operation.parameters.body.type;
63
+ return bodyParam.type;
63
64
  }
64
- })
65
+ }),
66
+ optional: bodyParam.property?.optional ?? false
65
67
  });
66
68
  }
67
69
  for (const param of operation.parameters.parameters) {
@@ -1 +1 @@
1
- {"version":3,"names":["For","List","refkey","code","ts","useTSNamePolicy","isVoidType","TypeExpression","getNoContentResponseRef","getOperationInterfaceRef","containerName","OperationInterface","props","operations","interfaceRef","namePolicy","_$createComponent","InterfaceDeclaration","name","children","each","hardline","semicolon","operation","opName","getName","parameters","param","type","paramName","push","optional","body","queryParams","filter","p","length","optionsType","InterfaceExpression","InterfaceMember","isVoid","returnType","is204Response","responses","some","r","statusCodes","shouldEmitVoid","noContentRef","InterfaceMethod"],"sources":["../../../src/components/OperationInterface.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["For","List","refkey","code","ts","useTSNamePolicy","isVoidType","TypeExpression","getNoContentResponseRef","getOperationInterfaceRef","containerName","OperationInterface","props","operations","interfaceRef","namePolicy","_$createComponent","InterfaceDeclaration","name","children","each","hardline","semicolon","operation","opName","getName","parameters","param","type","paramName","push","optional","body","bodyParam","property","queryParams","filter","p","length","optionsType","InterfaceExpression","InterfaceMember","isVoid","returnType","is204Response","responses","some","r","statusCodes","shouldEmitVoid","noContentRef","InterfaceMethod"],"sources":["../../../src/components/OperationInterface.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -38,9 +38,11 @@ export function OperationInterface(props) {
38
38
  }
39
39
  }
40
40
  if (operation.parameters.body) {
41
+ const bodyParam = operation.parameters.body;
41
42
  parameters.push({
42
43
  name: "body",
43
- type: <TypeExpression type={operation.parameters.body.type}/>,
44
+ type: <TypeExpression type={bodyParam.type}/>,
45
+ optional: bodyParam.property?.optional ?? false,
44
46
  });
45
47
  }
46
48
  for (const param of operation.parameters.parameters) {
@@ -1 +1 @@
1
- {"version":3,"file":"OperationInterface.jsx","sourceRoot":"","sources":["../../../src/components/OperationInterface.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OperationInterface.jsx","sourceRoot":"","sources":["../../../src/components/OperationInterface.tsx"],"names":[],"mappings":"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"}
@@ -18,24 +18,4 @@ export function ResponseTypes() {
18
18
  }
19
19
  }), "\n\n", ["export interface ResponseWithBody", "<", "TBody", ">", " ", "{", "\n", " ", "statusCode: number;", "\n", " ", "body: TBody;", "\n", "}"]];
20
20
  }
21
- /**
22
- * not quite working yields
23
- * export interface ResponseWithBody<t> {
24
- statusCode: number;
25
- body: T
26
- }
27
- */
28
- {
29
- /* <ts.InterfaceDeclaration
30
- name="ResponseWithBody"
31
- export
32
- refkey={responseWithBodyRef}
33
- typeParameters={[{ name: "T" }]}
34
- >
35
- <>
36
- statusCode: number;{"\n"}
37
- body: T
38
- </>
39
- </ts.InterfaceDeclaration> */
40
- }
41
21
  //# sourceMappingURL=ResponseTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["refkey","ts","getNoContentResponseRef","getResponseWithBodyRef","ResponseTypes","noContentRef","_$createComponent","InterfaceDeclaration","name","children"],"sources":["../../../src/components/ResponseTypes.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,MAAM,QAAqB,gBAAgB;AACpD,OAAO,KAAKC,EAAE,MAAM,sBAAsB;AAE1C,OAAO,SAASC,uBAAuBA,CAAA,EAAW;EAChD,OAAOF,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;AACtD;AAEA,OAAO,SAASG,sBAAsBA,CAAA,EAAW;EAC/C,OAAOH,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AACrD;AAEA,OAAO,SAASI,aAAaA,CAAA,EAAG;EAC9B,MAAMC,YAAY,GAAGH,uBAAuB,CAAC,CAAC;EAE9C,QAAAI,iBAAA,CAEKL,EAAE,CAACM,oBAAoB;IACtBC,IAAI;IAAA;IAEJR,MAAM,EAAEK,YAAY;IAAA,IAAAI,SAAA;MAAA;IAAA;EAAA,IAIrB,MAAM,wCAE6B,GAAG,WAAO,GAAG,OAAG,GAAG,EACpD,IAAI,EACJ,IAAI,yBACJ,IAAI,EACJ,IAAI,kBACJ,IAAI,EACJ,GAAG;AAIZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVE","ignoreList":[]}
1
+ {"version":3,"names":["refkey","ts","getNoContentResponseRef","getResponseWithBodyRef","ResponseTypes","noContentRef","_$createComponent","InterfaceDeclaration","name","children"],"sources":["../../../src/components/ResponseTypes.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,MAAM,QAAqB,gBAAgB;AACpD,OAAO,KAAKC,EAAE,MAAM,sBAAsB;AAE1C,OAAO,SAASC,uBAAuBA,CAAA,EAAW;EAChD,OAAOF,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;AACtD;AAEA,OAAO,SAASG,sBAAsBA,CAAA,EAAW;EAC/C,OAAOH,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AACrD;AAEA,OAAO,SAASI,aAAaA,CAAA,EAAG;EAC9B,MAAMC,YAAY,GAAGH,uBAAuB,CAAC,CAAC;EAE9C,QAAAI,iBAAA,CAEKL,EAAE,CAACM,oBAAoB;IACtBC,IAAI;IAAA;IAEJR,MAAM,EAAEK,YAAY;IAAA,IAAAI,SAAA;MAAA;IAAA;EAAA,IAIrB,MAAM,wCAE6B,GAAG,WAAO,GAAG,OAAG,GAAG,EACpD,IAAI,EACJ,IAAI,yBACJ,IAAI,EACJ,IAAI,kBACJ,IAAI,EACJ,GAAG;AAIZ","ignoreList":[]}
@@ -24,24 +24,4 @@ export function ResponseTypes() {
24
24
  </>
25
25
  </>);
26
26
  }
27
- /**
28
- * not quite working yields
29
- * export interface ResponseWithBody<t> {
30
- statusCode: number;
31
- body: T
32
- }
33
- */
34
- {
35
- /* <ts.InterfaceDeclaration
36
- name="ResponseWithBody"
37
- export
38
- refkey={responseWithBodyRef}
39
- typeParameters={[{ name: "T" }]}
40
- >
41
- <>
42
- statusCode: number;{"\n"}
43
- body: T
44
- </>
45
- </ts.InterfaceDeclaration> */
46
- }
47
27
  //# sourceMappingURL=ResponseTypes.jsx.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseTypes.jsx","sourceRoot":"","sources":["../../../src/components/ResponseTypes.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAe,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,UAAU,uBAAuB;IACrC,OAAO,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,YAAY,GAAG,uBAAuB,EAAE,CAAC;IAE/C,OAAO,CACL,EACE;MAAA,CAAC,EAAE,CAAC,oBAAoB,CACtB,IAAI,CAAC,mBAAmB,CACxB,MAAM,CACN,MAAM,CAAC,CAAC,YAAY,CAAC,CAErB;QAAA,EAAE,kBAAkB,GACtB;MAAA,EAAE,EAAE,CAAC,oBAAoB,CACzB;MAAA,CAAC,MAAM,CACP;MAAA,EACE;yCAAiC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAE,CAAA,CAAC,GAAG,CACrD;QAAA,CAAC,IAAI,CACL;QAAA,CAAC,IAAI,CAAC;QACN,CAAC,IAAI,CACL;QAAA,CAAC,IAAI,CAAC;QACN,CAAC,IAAI,CACL;QAAA,CAAC,GAAG,CACN;MAAA,GACF;IAAA,GAAG,CACJ,CAAC;AACJ,CAAC;AACD;;;;;;GAMG;AACH,CAAC;IACC;;;;;;;;;;+BAU2B;AAC7B,CAAC"}
1
+ {"version":3,"file":"ResponseTypes.jsx","sourceRoot":"","sources":["../../../src/components/ResponseTypes.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAe,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,UAAU,uBAAuB;IACrC,OAAO,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,YAAY,GAAG,uBAAuB,EAAE,CAAC;IAE/C,OAAO,CACL,EACE;MAAA,CAAC,EAAE,CAAC,oBAAoB,CACtB,IAAI,CAAC,mBAAmB,CACxB,MAAM,CACN,MAAM,CAAC,CAAC,YAAY,CAAC,CAErB;QAAA,EAAE,kBAAkB,GACtB;MAAA,EAAE,EAAE,CAAC,oBAAoB,CACzB;MAAA,CAAC,MAAM,CACP;MAAA,EACE;yCAAiC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAE,CAAA,CAAC,GAAG,CACrD;QAAA,CAAC,IAAI,CACL;QAAA,CAAC,IAAI,CAAC;QACN,CAAC,IAAI,CACL;QAAA,CAAC,IAAI,CAAC;QACN,CAAC,IAAI,CACL;QAAA,CAAC,GAAG,CACN;MAAA,GACF;IAAA,GAAG,CACJ,CAAC;AACJ,CAAC"}
@@ -10,7 +10,7 @@ export interface RouteRegistrationProps {
10
10
  */
11
11
  export declare function getRouteRegistrationRef(containerName: string): Refkey;
12
12
  /**
13
- * Generates Fastify route registration functions.
14
- * This creates a function that registers all routes for a resource.
13
+ * Generates Fastify route registration functions with Zod schema validation.
14
+ * Uses fastify-type-provider-zod for automatic type inference and runtime validation.
15
15
  */
16
16
  export declare function RouteRegistration(props: RouteRegistrationProps): Children;
@@ -1,11 +1,13 @@
1
- import { createComponent as _$createComponent, memo as _$memo } from "@alloy-js/core/jsx-runtime";
2
- import { For, List, refkey } from "@alloy-js/core";
1
+ import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { code, For, List, refkey } from "@alloy-js/core";
3
3
  import * as ts from "@alloy-js/typescript";
4
4
  import { useTSNamePolicy } from "@alloy-js/typescript";
5
5
  import { isVoidType } from "@typespec/compiler";
6
6
  import { getHttpVerb } from "../utils/http-helpers.js";
7
7
  import { fastifyLib } from "../external-packages/fastify.js";
8
+ import { fastifyTypeProviderZod } from "../external-packages/fastify-type-provider-zod.js";
8
9
  import { getOperationInterfaceRef } from "./OperationInterface.js";
10
+ import { ZodSchema, zod } from "typespec-zod";
9
11
  /**
10
12
  * Creates a refkey for a route registration function.
11
13
  * This allows the loadRoutes function to reference it with automatic imports.
@@ -15,8 +17,8 @@ export function getRouteRegistrationRef(containerName) {
15
17
  }
16
18
 
17
19
  /**
18
- * Generates Fastify route registration functions.
19
- * This creates a function that registers all routes for a resource.
20
+ * Generates Fastify route registration functions with Zod schema validation.
21
+ * Uses fastify-type-provider-zod for automatic type inference and runtime validation.
20
22
  */
21
23
  export function RouteRegistration(props) {
22
24
  const {
@@ -45,7 +47,13 @@ export function RouteRegistration(props) {
45
47
  get children() {
46
48
  return _$createComponent(List, {
47
49
  get children() {
48
- return _$createComponent(For, {
50
+ return [_$createComponent(ts.VarDeclaration, {
51
+ name: "server",
52
+ "const": true,
53
+ get children() {
54
+ return ["fastify.withTypeProvider", "<", _$memo(() => fastifyTypeProviderZod.ZodTypeProvider), ">", "()"];
55
+ }
56
+ }), _$createComponent(For, {
49
57
  each: operations,
50
58
  hardline: true,
51
59
  children: operation => {
@@ -57,38 +65,114 @@ export function RouteRegistration(props) {
57
65
  optionalParams.add(param.param.name);
58
66
  }
59
67
  }
60
- const path = rawPath.replace(/\{([^}]+)\}/g, function (match, p1) {
68
+ const path = rawPath.replace(/\{([^}]+)\}/g, function (_match, p1) {
61
69
  const paramName = p1.startsWith("/") ? p1.slice(1) : p1;
62
70
  const prefix = p1.startsWith("/") ? "/:" : ":";
63
71
  const suffix = optionalParams.has(paramName) ? "?" : "";
64
72
  return prefix + paramName + suffix;
65
73
  });
66
74
  const opName = namePolicy.getName(operation.operation.name, "function");
67
- return [_$createComponent(ts.FunctionCallExpression, {
68
- get target() {
69
- return ["fastify.", verb];
70
- },
71
- get args() {
72
- return [["'", path, "'"], generateRouteHandler(operation, opName, namePolicy)];
73
- }
74
- }), ";"];
75
+ const routeSchema = generateZodRouteSchema(operation);
76
+ return [_$memo(() => code`server.${verb}('${path}', ${routeSchema}, ${generateRouteHandler(operation, opName, namePolicy)});`)];
75
77
  }
76
- });
78
+ })];
77
79
  }
78
80
  });
79
81
  }
80
82
  });
81
83
  }
84
+ function generateZodRouteSchema(operation) {
85
+ const schemaProps = [];
86
+ const pathParams = operation.parameters.parameters.filter(function (p) {
87
+ return p.type === "path";
88
+ });
89
+ if (pathParams.length > 0) {
90
+ const pathProperties = [];
91
+ for (let i = 0; i < pathParams.length; i++) {
92
+ const param = pathParams[i];
93
+ const paramName = param.param.name;
94
+ const isOptional = param.param.optional;
95
+ if (i > 0) pathProperties.push([", "]);
96
+ if (isOptional) {
97
+ pathProperties.push([paramName, ": ", _$createComponent(ZodSchema, {
98
+ get type() {
99
+ return param.param.type;
100
+ }
101
+ }), ".optional()"]);
102
+ } else {
103
+ pathProperties.push([paramName, ": ", _$createComponent(ZodSchema, {
104
+ get type() {
105
+ return param.param.type;
106
+ }
107
+ })]);
108
+ }
109
+ }
110
+ schemaProps.push(["params: ", _$memo(() => zod.z), ".object(", "{", pathProperties, "}", ")"]);
111
+ }
112
+ const queryParams = operation.parameters.parameters.filter(function (p) {
113
+ return p.type === "query";
114
+ });
115
+ if (queryParams.length > 0) {
116
+ if (schemaProps.length > 0) schemaProps.push([", "]);
117
+ const queryProperties = [];
118
+ for (let i = 0; i < queryParams.length; i++) {
119
+ const param = queryParams[i];
120
+ const paramName = param.param.name;
121
+ const isOptional = param.param.optional;
122
+ if (i > 0) queryProperties.push([", "]);
123
+ if (isOptional) {
124
+ queryProperties.push([paramName, ": ", _$createComponent(ZodSchema, {
125
+ get type() {
126
+ return param.param.type;
127
+ }
128
+ }), ".optional()"]);
129
+ } else {
130
+ queryProperties.push([paramName, ": ", _$createComponent(ZodSchema, {
131
+ get type() {
132
+ return param.param.type;
133
+ }
134
+ })]);
135
+ }
136
+ }
137
+ schemaProps.push(["querystring: ", _$memo(() => zod.z), ".object(", "{", queryProperties, "}", ")"]);
138
+ }
139
+ if (operation.parameters.body) {
140
+ const bodyParam = operation.parameters.body;
141
+ const isOptional = bodyParam.property?.optional ?? false;
142
+ if (!isOptional) {
143
+ if (schemaProps.length > 0) schemaProps.push([", "]);
144
+ schemaProps.push(["body: ", _$createComponent(ZodSchema, {
145
+ get type() {
146
+ return bodyParam.type;
147
+ }
148
+ })]);
149
+ }
150
+ }
151
+ if (schemaProps.length === 0) {
152
+ return _$createComponent(ts.ObjectExpression, {});
153
+ }
154
+ return _$createComponent(ts.ObjectExpression, {
155
+ get children() {
156
+ return ["schema: ", "{", schemaProps, "}"];
157
+ }
158
+ });
159
+ }
82
160
  function generateRouteHandler(operation, opName, namePolicy) {
83
161
  const callArgs = [];
84
162
  for (const param of operation.parameters.parameters) {
85
163
  if (param.type === "path") {
86
164
  const paramName = namePolicy.getName(param.param.name, "parameter");
87
- callArgs.push(["(request.params as any).", paramName]);
165
+ callArgs.push(["request.params.", paramName]);
88
166
  }
89
167
  }
90
168
  if (operation.parameters.body) {
91
- callArgs.push(["request.body as any"]);
169
+ const bodyParam = operation.parameters.body;
170
+ const isOptional = bodyParam.property?.optional ?? false;
171
+ if (isOptional) {
172
+ callArgs.push(["request.body as any"]);
173
+ } else {
174
+ callArgs.push(["request.body"]);
175
+ }
92
176
  }
93
177
  for (const param of operation.parameters.parameters) {
94
178
  if (param.type === "header") {
@@ -101,10 +185,11 @@ function generateRouteHandler(operation, opName, namePolicy) {
101
185
  if (queryParams.length > 0) {
102
186
  const optionsObj = _$createComponent(ts.ObjectExpression, {
103
187
  get children() {
104
- return queryParams.map((param, index) => {
188
+ return queryParams.map(function (param, index) {
105
189
  const paramName = namePolicy.getName(param.param.name, "object-member-data");
106
- return [index > 0 && ", ", paramName, ": (request.query as any).", paramName];
107
- });
190
+ const separator = index > 0 ? ", " : "";
191
+ return `${separator}${paramName}: request.query.${paramName}`;
192
+ }).join("");
108
193
  }
109
194
  });
110
195
  callArgs.push(optionsObj);
@@ -116,15 +201,11 @@ function generateRouteHandler(operation, opName, namePolicy) {
116
201
  const isNoContent = isVoid || is204Response;
117
202
  return _$createComponent(ts.FunctionExpression, {
118
203
  async: true,
119
- get parameters() {
120
- return [{
121
- name: "request",
122
- type: fastifyLib.FastifyRequest
123
- }, {
124
- name: "reply",
125
- type: fastifyLib.FastifyReply
126
- }];
127
- },
204
+ parameters: [{
205
+ name: "request"
206
+ }, {
207
+ name: "reply"
208
+ }],
128
209
  get children() {
129
210
  return _$createComponent(List, {
130
211
  get children() {
@@ -1 +1 @@
1
- {"version":3,"names":["For","List","refkey","ts","useTSNamePolicy","isVoidType","getHttpVerb","fastifyLib","getOperationInterfaceRef","getRouteRegistrationRef","containerName","RouteRegistration","props","operations","namePolicy","functionName","getName","interfaceRef","routeRegRef","_$createComponent","FunctionDeclaration","name","async","parameters","type","FastifyInstance","returnType","children","each","hardline","operation","verb","rawPath","uriTemplate","path","optionalParams","Set","param","optional","add","replace","match","p1","paramName","startsWith","slice","prefix","suffix","has","opName","FunctionCallExpression","target","args","generateRouteHandler","callArgs","push","body","headerKey","toLowerCase","headerAccess","queryParams","filter","p","length","optionsObj","ObjectExpression","map","index","isVoid","is204Response","responses","some","r","statusCodes","isNoContent","FunctionExpression","FastifyRequest","FastifyReply","VarDeclaration","_$memo"],"sources":["../../../src/components/RouteRegistration.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["code","For","List","refkey","ts","useTSNamePolicy","isVoidType","getHttpVerb","fastifyLib","fastifyTypeProviderZod","getOperationInterfaceRef","ZodSchema","zod","getRouteRegistrationRef","containerName","RouteRegistration","props","operations","namePolicy","functionName","getName","interfaceRef","routeRegRef","_$createComponent","FunctionDeclaration","name","async","parameters","type","FastifyInstance","returnType","children","VarDeclaration","_$memo","ZodTypeProvider","each","hardline","operation","verb","rawPath","uriTemplate","path","optionalParams","Set","param","optional","add","replace","_match","p1","paramName","startsWith","slice","prefix","suffix","has","opName","routeSchema","generateZodRouteSchema","generateRouteHandler","schemaProps","pathParams","filter","p","length","pathProperties","i","isOptional","push","z","queryParams","queryProperties","body","bodyParam","property","ObjectExpression","callArgs","headerKey","toLowerCase","headerAccess","optionsObj","map","index","separator","join","isVoid","is204Response","responses","some","r","statusCodes","isNoContent","FunctionExpression","FunctionCallExpression","target","args"],"sources":["../../../src/components/RouteRegistration.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,12 @@
1
- import { For, List, refkey } from "@alloy-js/core";
1
+ import { code, For, List, refkey, } from "@alloy-js/core";
2
2
  import * as ts from "@alloy-js/typescript";
3
3
  import { useTSNamePolicy } from "@alloy-js/typescript";
4
4
  import { isVoidType } from "@typespec/compiler";
5
5
  import { getHttpVerb } from "../utils/http-helpers.js";
6
6
  import { fastifyLib } from "../external-packages/fastify.js";
7
+ import { fastifyTypeProviderZod } from "../external-packages/fastify-type-provider-zod.js";
7
8
  import { getOperationInterfaceRef } from "./OperationInterface.js";
9
+ import { ZodSchema, zod } from "typespec-zod";
8
10
  /**
9
11
  * Creates a refkey for a route registration function.
10
12
  * This allows the loadRoutes function to reference it with automatic imports.
@@ -13,8 +15,8 @@ export function getRouteRegistrationRef(containerName) {
13
15
  return refkey(containerName, "route-registration");
14
16
  }
15
17
  /**
16
- * Generates Fastify route registration functions.
17
- * This creates a function that registers all routes for a resource.
18
+ * Generates Fastify route registration functions with Zod schema validation.
19
+ * Uses fastify-type-provider-zod for automatic type inference and runtime validation.
18
20
  */
19
21
  export function RouteRegistration(props) {
20
22
  const { containerName, operations } = props;
@@ -27,6 +29,11 @@ export function RouteRegistration(props) {
27
29
  { name: "operations", type: interfaceRef },
28
30
  ]} returnType="void">
29
31
  <List>
32
+ <ts.VarDeclaration name="server" const>
33
+ fastify.withTypeProvider{"<"}
34
+ {fastifyTypeProviderZod.ZodTypeProvider}
35
+ {">"}()
36
+ </ts.VarDeclaration>
30
37
  <For each={operations} hardline>
31
38
  {(operation) => {
32
39
  const verb = getHttpVerb(operation);
@@ -37,35 +44,121 @@ export function RouteRegistration(props) {
37
44
  optionalParams.add(param.param.name);
38
45
  }
39
46
  }
40
- const path = rawPath.replace(/\{([^}]+)\}/g, function (match, p1) {
47
+ const path = rawPath.replace(/\{([^}]+)\}/g, function (_match, p1) {
41
48
  const paramName = p1.startsWith("/") ? p1.slice(1) : p1;
42
49
  const prefix = p1.startsWith("/") ? "/:" : ":";
43
50
  const suffix = optionalParams.has(paramName) ? "?" : "";
44
51
  return prefix + paramName + suffix;
45
52
  });
46
53
  const opName = namePolicy.getName(operation.operation.name, "function");
54
+ const routeSchema = generateZodRouteSchema(operation);
47
55
  return (<>
48
- <ts.FunctionCallExpression target={<>fastify.{verb}</>} args={[
49
- <>'{path}'</>,
50
- generateRouteHandler(operation, opName, namePolicy),
51
- ]}/>
52
- {";"}
56
+ {code `server.${verb}('${path}', ${routeSchema}, ${generateRouteHandler(operation, opName, namePolicy)});`}
53
57
  </>);
54
58
  }}
55
59
  </For>
56
60
  </List>
57
61
  </ts.FunctionDeclaration>);
58
62
  }
63
+ function generateZodRouteSchema(operation) {
64
+ const schemaProps = [];
65
+ const pathParams = operation.parameters.parameters.filter(function (p) {
66
+ return p.type === "path";
67
+ });
68
+ if (pathParams.length > 0) {
69
+ const pathProperties = [];
70
+ for (let i = 0; i < pathParams.length; i++) {
71
+ const param = pathParams[i];
72
+ const paramName = param.param.name;
73
+ const isOptional = param.param.optional;
74
+ if (i > 0)
75
+ pathProperties.push(<>, </>);
76
+ if (isOptional) {
77
+ pathProperties.push(<>
78
+ {paramName}: <ZodSchema type={param.param.type}/>
79
+ .optional()
80
+ </>);
81
+ }
82
+ else {
83
+ pathProperties.push(<>
84
+ {paramName}: <ZodSchema type={param.param.type}/>
85
+ </>);
86
+ }
87
+ }
88
+ schemaProps.push(<>
89
+ params: {zod.z}.object({"{"}
90
+ {pathProperties}
91
+ {"}"})
92
+ </>);
93
+ }
94
+ const queryParams = operation.parameters.parameters.filter(function (p) {
95
+ return p.type === "query";
96
+ });
97
+ if (queryParams.length > 0) {
98
+ if (schemaProps.length > 0)
99
+ schemaProps.push(<>, </>);
100
+ const queryProperties = [];
101
+ for (let i = 0; i < queryParams.length; i++) {
102
+ const param = queryParams[i];
103
+ const paramName = param.param.name;
104
+ const isOptional = param.param.optional;
105
+ if (i > 0)
106
+ queryProperties.push(<>, </>);
107
+ if (isOptional) {
108
+ queryProperties.push(<>
109
+ {paramName}: <ZodSchema type={param.param.type}/>
110
+ .optional()
111
+ </>);
112
+ }
113
+ else {
114
+ queryProperties.push(<>
115
+ {paramName}: <ZodSchema type={param.param.type}/>
116
+ </>);
117
+ }
118
+ }
119
+ schemaProps.push(<>
120
+ querystring: {zod.z}.object({"{"}
121
+ {queryProperties}
122
+ {"}"})
123
+ </>);
124
+ }
125
+ if (operation.parameters.body) {
126
+ const bodyParam = operation.parameters.body;
127
+ const isOptional = bodyParam.property?.optional ?? false;
128
+ if (!isOptional) {
129
+ if (schemaProps.length > 0)
130
+ schemaProps.push(<>, </>);
131
+ schemaProps.push(<>
132
+ body: <ZodSchema type={bodyParam.type}/>
133
+ </>);
134
+ }
135
+ }
136
+ if (schemaProps.length === 0) {
137
+ return <ts.ObjectExpression />;
138
+ }
139
+ return (<ts.ObjectExpression>
140
+ schema: {"{"}
141
+ {schemaProps}
142
+ {"}"}
143
+ </ts.ObjectExpression>);
144
+ }
59
145
  function generateRouteHandler(operation, opName, namePolicy) {
60
146
  const callArgs = [];
61
147
  for (const param of operation.parameters.parameters) {
62
148
  if (param.type === "path") {
63
149
  const paramName = namePolicy.getName(param.param.name, "parameter");
64
- callArgs.push(<>(request.params as any).{paramName}</>);
150
+ callArgs.push(<>request.params.{paramName}</>);
65
151
  }
66
152
  }
67
153
  if (operation.parameters.body) {
68
- callArgs.push(<>request.body as any</>);
154
+ const bodyParam = operation.parameters.body;
155
+ const isOptional = bodyParam.property?.optional ?? false;
156
+ if (isOptional) {
157
+ callArgs.push(<>request.body as any</>);
158
+ }
159
+ else {
160
+ callArgs.push(<>request.body</>);
161
+ }
69
162
  }
70
163
  for (const param of operation.parameters.parameters) {
71
164
  if (param.type === "header") {
@@ -80,13 +173,13 @@ function generateRouteHandler(operation, opName, namePolicy) {
80
173
  const queryParams = operation.parameters.parameters.filter((p) => p.type === "query");
81
174
  if (queryParams.length > 0) {
82
175
  const optionsObj = (<ts.ObjectExpression>
83
- {queryParams.map((param, index) => {
176
+ {queryParams
177
+ .map(function (param, index) {
84
178
  const paramName = namePolicy.getName(param.param.name, "object-member-data");
85
- return (<>
86
- {index > 0 && ", "}
87
- {paramName}: (request.query as any).{paramName}
88
- </>);
89
- })}
179
+ const separator = index > 0 ? ", " : "";
180
+ return `${separator}${paramName}: request.query.${paramName}`;
181
+ })
182
+ .join("")}
90
183
  </ts.ObjectExpression>);
91
184
  callArgs.push(optionsObj);
92
185
  }
@@ -95,10 +188,7 @@ function generateRouteHandler(operation, opName, namePolicy) {
95
188
  return r.statusCodes === 204;
96
189
  });
97
190
  const isNoContent = isVoid || is204Response;
98
- return (<ts.FunctionExpression async parameters={[
99
- { name: "request", type: fastifyLib.FastifyRequest },
100
- { name: "reply", type: fastifyLib.FastifyReply },
101
- ]}>
191
+ return (<ts.FunctionExpression async parameters={[{ name: "request" }, { name: "reply" }]}>
102
192
  <List>
103
193
  <>try {"{"}</>
104
194
  <List>
@@ -1 +1 @@
1
- {"version":3,"file":"RouteRegistration.jsx","sourceRoot":"","sources":["../../../src/components/RouteRegistration.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RouteRegistration.jsx","sourceRoot":"","sources":["../../../src/components/RouteRegistration.tsx"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { createComponent as _$createComponent, memo as _$memo } from "@alloy-js/
2
2
  import { code, For } from "@alloy-js/core";
3
3
  import * as ts from "@alloy-js/typescript";
4
4
  import { fastifyLib } from "../external-packages/fastify.js";
5
+ import { fastifyTypeProviderZod } from "../external-packages/fastify-type-provider-zod.js";
5
6
  import { getOperationInterfaceRef } from "./OperationInterface.js";
6
7
  /**
7
8
  * Generates the router.ts file which creates a router registration function.
@@ -45,14 +46,12 @@ export function RouterFile(props) {
45
46
  },
46
47
  returnType: "void",
47
48
  get children() {
48
- return code`await ${_$createComponent(ts.FunctionCallExpression, {
49
+ return [_$memo(() => code`server.setValidatorCompiler(${fastifyTypeProviderZod.validatorCompiler});`), _$memo(() => code`server.setSerializerCompiler(${fastifyTypeProviderZod.serializerCompiler});`), _$memo(() => code`await ${_$createComponent(ts.FunctionCallExpression, {
49
50
  get target() {
50
51
  return props.loadRoutesRef;
51
52
  },
52
- get args() {
53
- return [["server"], ["operations"]];
54
- }
55
- })};`;
53
+ args: ["server", "operations"]
54
+ })};`)];
56
55
  }
57
56
  });
58
57
  }
@@ -1 +1 @@
1
- {"version":3,"names":["code","For","ts","fastifyLib","getOperationInterfaceRef","RouterFile","props","containerNames","Array","from","groupedOperations","keys","operationsType","_$createComponent","InterfaceExpression","children","each","semicolon","hardline","containerName","interfaceRef","InterfaceMember","name","toLowerCase","SourceFile","path","FunctionDeclaration","async","parameters","type","FastifyInstance","returnType","FunctionCallExpression","target","loadRoutesRef","args"],"sources":["../../../src/components/RouterFile.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,IAAI,EAAeC,GAAG,QAAQ,gBAAgB;AACvD,OAAO,KAAKC,EAAE,MAAM,sBAAsB;AAE1C,SAASC,UAAU,QAAQ,iCAAiC;AAC5D,SAASC,wBAAwB,QAAQ,yBAAyB;AAQlE;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAACC,KAAsB,EAAE;EACjD,MAAMC,cAAc,GAAGC,KAAK,CAACC,IAAI,CAACH,KAAK,CAACI,iBAAiB,CAACC,IAAI,CAAC,CAAC,CAAC;EAEjE,MAAMC,cAAc,GAAAC,iBAAA,CACjBX,EAAE,CAACY,mBAAmB;IAAA,IAAAC,SAAA;MAAA,OAAAF,iBAAA,CACpBZ,GAAG;QAACe,IAAI,EAAET,cAAc;QAAEU,SAAS;QAACC,QAAQ;QAAAH,QAAA,EACzCI,aAAa,IAAK;UAClB,MAAMC,YAAY,GAAGhB,wBAAwB,CAACe,aAAa,CAAC;UAC5D,OAAAN,iBAAA,CACGX,EAAE,CAACmB,eAAe;YAAA,IAACC,IAAIA,CAAA;cAAA,OAAEH,aAAa,CAACI,WAAW,CAAC,CAAC;YAAA;YAAAR,QAAA,EAClDK;UAAY;QAGnB;MAAC;IAAA;EAAA,EAGN;EAED,OAAAP,iBAAA,CACGX,EAAE,CAACsB,UAAU;IAACC,IAAI;IAAA,IAAAV,SAAA;MAAA,OAAAF,iBAAA,CAChBX,EAAE,CAACwB,mBAAmB;QACrBJ,IAAI;QAAA;QAEJK,KAAK;QAAA,IACLC,UAAUA,CAAA;UAAA,OAAE,CACV;YAAEN,IAAI,EAAE,QAAQ;YAAEO,IAAI,EAAE1B,UAAU,CAAC2B;UAAgB,CAAC,EACpD;YAAER,IAAI,EAAE,YAAY;YAAEO,IAAI,EAAEjB;UAAe,CAAC,CAC7C;QAAA;QACDmB,UAAU;QAAA,IAAAhB,SAAA;UAAA,OAETf,IAAI,SAAAa,iBAAA,CACFX,EAAE,CAAC8B,sBAAsB;YAAA,IACxBC,MAAMA,CAAA;cAAA,OAAE3B,KAAK,CAAC4B,aAAa;YAAA;YAAA,IAC3BC,IAAIA,CAAA;cAAA,OAAE,4BAA8B;YAAA;UAAA,KAEpC;QAAA;MAAA;IAAA;EAAA;AAIZ","ignoreList":[]}
1
+ {"version":3,"names":["code","For","ts","fastifyLib","fastifyTypeProviderZod","getOperationInterfaceRef","RouterFile","props","containerNames","Array","from","groupedOperations","keys","operationsType","_$createComponent","InterfaceExpression","children","each","semicolon","hardline","containerName","interfaceRef","InterfaceMember","name","toLowerCase","SourceFile","path","FunctionDeclaration","async","parameters","type","FastifyInstance","returnType","_$memo","validatorCompiler","serializerCompiler","FunctionCallExpression","target","loadRoutesRef","args"],"sources":["../../../src/components/RouterFile.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,IAAI,EAAeC,GAAG,QAAQ,gBAAgB;AACvD,OAAO,KAAKC,EAAE,MAAM,sBAAsB;AAE1C,SAASC,UAAU,QAAQ,iCAAiC;AAC5D,SAASC,sBAAsB,QAAQ,mDAAmD;AAC1F,SAASC,wBAAwB,QAAQ,yBAAyB;AAQlE;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAACC,KAAsB,EAAE;EACjD,MAAMC,cAAc,GAAGC,KAAK,CAACC,IAAI,CAACH,KAAK,CAACI,iBAAiB,CAACC,IAAI,CAAC,CAAC,CAAC;EAEjE,MAAMC,cAAc,GAAAC,iBAAA,CACjBZ,EAAE,CAACa,mBAAmB;IAAA,IAAAC,SAAA;MAAA,OAAAF,iBAAA,CACpBb,GAAG;QAACgB,IAAI,EAAET,cAAc;QAAEU,SAAS;QAACC,QAAQ;QAAAH,QAAA,EACzCI,aAAa,IAAK;UAClB,MAAMC,YAAY,GAAGhB,wBAAwB,CAACe,aAAa,CAAC;UAC5D,OAAAN,iBAAA,CACGZ,EAAE,CAACoB,eAAe;YAAA,IAACC,IAAIA,CAAA;cAAA,OAAEH,aAAa,CAACI,WAAW,CAAC,CAAC;YAAA;YAAAR,QAAA,EAClDK;UAAY;QAGnB;MAAC;IAAA;EAAA,EAGN;EAED,OAAAP,iBAAA,CACGZ,EAAE,CAACuB,UAAU;IAACC,IAAI;IAAA,IAAAV,SAAA;MAAA,OAAAF,iBAAA,CAChBZ,EAAE,CAACyB,mBAAmB;QACrBJ,IAAI;QAAA;QAEJK,KAAK;QAAA,IACLC,UAAUA,CAAA;UAAA,OAAE,CACV;YAAEN,IAAI,EAAE,QAAQ;YAAEO,IAAI,EAAE3B,UAAU,CAAC4B;UAAgB,CAAC,EACpD;YAAER,IAAI,EAAE,YAAY;YAAEO,IAAI,EAAEjB;UAAe,CAAC,CAC7C;QAAA;QACDmB,UAAU;QAAA,IAAAhB,SAAA;UAAA,QAAAiB,MAAA,OAETjC,IAAI,+BAA+BI,sBAAsB,CAAC8B,iBAAiB,IAAI,GAAAD,MAAA,OAC/EjC,IAAI,gCAAgCI,sBAAsB,CAAC+B,kBAAkB,IAAI,GAAAF,MAAA,OACjFjC,IAAI,SAAAc,iBAAA,CACFZ,EAAE,CAACkC,sBAAsB;YAAA,IACxBC,MAAMA,CAAA;cAAA,OAAE9B,KAAK,CAAC+B,aAAa;YAAA;YAC3BC,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY;UAAC,KAE9B;QAAA;MAAA;IAAA;EAAA;AAIZ","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  import { code, For } from "@alloy-js/core";
2
2
  import * as ts from "@alloy-js/typescript";
3
3
  import { fastifyLib } from "../external-packages/fastify.js";
4
+ import { fastifyTypeProviderZod } from "../external-packages/fastify-type-provider-zod.js";
4
5
  import { getOperationInterfaceRef } from "./OperationInterface.js";
5
6
  /**
6
7
  * Generates the router.ts file which creates a router registration function.
@@ -23,7 +24,9 @@ export function RouterFile(props) {
23
24
  { name: "server", type: fastifyLib.FastifyInstance },
24
25
  { name: "operations", type: operationsType },
25
26
  ]} returnType="void">
26
- {code `await ${(<ts.FunctionCallExpression target={props.loadRoutesRef} args={[<>server</>, <>operations</>]}/>)};`}
27
+ {code `server.setValidatorCompiler(${fastifyTypeProviderZod.validatorCompiler});`}
28
+ {code `server.setSerializerCompiler(${fastifyTypeProviderZod.serializerCompiler});`}
29
+ {code `await ${(<ts.FunctionCallExpression target={props.loadRoutesRef} args={["server", "operations"]}/>)};`}
27
30
  </ts.FunctionDeclaration>
28
31
  </ts.SourceFile>);
29
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RouterFile.jsx","sourceRoot":"","sources":["../../../src/components/RouterFile.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAQnE;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;IAElE,MAAM,cAAc,GAAG,CACrB,CAAC,EAAE,CAAC,mBAAmB,CACrB;MAAA,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,QAAQ,CAC3C;QAAA,CAAC,CAAC,aAAa,EAAE,EAAE;YACjB,MAAM,YAAY,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAC;YAC7D,OAAO,CACL,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CACpD;cAAA,CAAC,YAAY,CACf;YAAA,EAAE,EAAE,CAAC,eAAe,CAAC,CACtB,CAAC;QACJ,CAAC,CACH;MAAA,EAAE,GAAG,CACP;IAAA,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAC1B,CAAC;IAEF,OAAO,CACL,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAC7B;MAAA,CAAC,EAAE,CAAC,mBAAmB,CACrB,IAAI,CAAC,gBAAgB,CACrB,MAAM,CACN,KAAK,CACL,UAAU,CAAC,CAAC;YACV,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,eAAe,EAAE;YACpD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE;SAC7C,CAAC,CACF,UAAU,CAAC,MAAM,CAEjB;QAAA,CAAC,IAAI,CAAA,SAAS,CACZ,CAAC,EAAE,CAAC,sBAAsB,CACxB,MAAM,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAC5B,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC,EACrC,CACH,GAAG,CACN;MAAA,EAAE,EAAE,CAAC,mBAAmB,CAC1B;IAAA,EAAE,EAAE,CAAC,UAAU,CAAC,CACjB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"RouterFile.jsx","sourceRoot":"","sources":["../../../src/components/RouterFile.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAQnE;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;IAElE,MAAM,cAAc,GAAG,CACrB,CAAC,EAAE,CAAC,mBAAmB,CACrB;MAAA,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,QAAQ,CAC3C;QAAA,CAAC,CAAC,aAAa,EAAE,EAAE;YACjB,MAAM,YAAY,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAC;YAC7D,OAAO,CACL,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CACpD;cAAA,CAAC,YAAY,CACf;YAAA,EAAE,EAAE,CAAC,eAAe,CAAC,CACtB,CAAC;QACJ,CAAC,CACH;MAAA,EAAE,GAAG,CACP;IAAA,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAC1B,CAAC;IAEF,OAAO,CACL,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAC7B;MAAA,CAAC,EAAE,CAAC,mBAAmB,CACrB,IAAI,CAAC,gBAAgB,CACrB,MAAM,CACN,KAAK,CACL,UAAU,CAAC,CAAC;YACV,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,eAAe,EAAE;YACpD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE;SAC7C,CAAC,CACF,UAAU,CAAC,MAAM,CAEjB;QAAA,CAAC,IAAI,CAAA,+BAA+B,sBAAsB,CAAC,iBAAiB,IAAI,CAChF;QAAA,CAAC,IAAI,CAAA,gCAAgC,sBAAsB,CAAC,kBAAkB,IAAI,CAClF;QAAA,CAAC,IAAI,CAAA,SAAS,CACZ,CAAC,EAAE,CAAC,sBAAsB,CACxB,MAAM,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAC5B,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,EAC/B,CACH,GAAG,CACN;MAAA,EAAE,EAAE,CAAC,mBAAmB,CAC1B;IAAA,EAAE,EAAE,CAAC,UAAU,CAAC,CACjB,CAAC;AACJ,CAAC"}
@@ -72,14 +72,12 @@ export function RoutesDirectory(props) {
72
72
  get children() {
73
73
  return _$createComponent(For, {
74
74
  each: containerNames,
75
- children: containerName => {
75
+ children: function (containerName) {
76
76
  const routeRegRef = getRouteRegistrationRef(containerName);
77
77
  const containerKey = containerName.toLowerCase();
78
78
  return ["await", " ", _$createComponent(ts.FunctionCallExpression, {
79
79
  target: routeRegRef,
80
- get args() {
81
- return [["server"], ["operations.", containerKey]];
82
- }
80
+ args: ["server", `operations.${containerKey}`]
83
81
  }), ";"];
84
82
  }
85
83
  });
@@ -1 +1 @@
1
- {"version":3,"names":["For","List","SourceDirectory","ts","RouteRegistration","getRouteRegistrationRef","fastifyLib","getOperationInterfaceRef","RoutesDirectory","props","groupedOperations","loadRoutesRef","containerNames","Array","from","keys","operationsType","_$createComponent","InterfaceExpression","children","each","semicolon","hardline","containerName","interfaceRef","InterfaceMember","name","toLowerCase","path","entries","operations","SourceFile","FunctionDeclaration","refkey","async","parameters","type","FastifyInstance","returnType","routeRegRef","containerKey","FunctionCallExpression","target","args"],"sources":["../../../src/components/RoutesDirectory.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["For","List","SourceDirectory","ts","RouteRegistration","getRouteRegistrationRef","fastifyLib","getOperationInterfaceRef","RoutesDirectory","props","groupedOperations","loadRoutesRef","containerNames","Array","from","keys","operationsType","_$createComponent","InterfaceExpression","children","each","semicolon","hardline","containerName","interfaceRef","InterfaceMember","name","toLowerCase","path","entries","operations","SourceFile","FunctionDeclaration","refkey","async","parameters","type","FastifyInstance","returnType","routeRegRef","containerKey","FunctionCallExpression","target","args"],"sources":["../../../src/components/RoutesDirectory.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,GAAG,EAAEC,IAAI,EAAEC,eAAe,QAAqB,gBAAgB;AACxE,OAAO,KAAKC,EAAE,MAAM,sBAAsB;AAE1C,SACEC,iBAAiB,EACjBC,uBAAuB,QAClB,wBAAwB;AAC/B,SAASC,UAAU,QAAQ,iCAAiC;AAC5D,SAASC,wBAAwB,QAAQ,yBAAyB;AAOlE;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAACC,KAA2B,EAAE;EAC3D,MAAM;IAAEC,iBAAiB;IAAEC;EAAc,CAAC,GAAGF,KAAK;EAClD,MAAMG,cAAc,GAAGC,KAAK,CAACC,IAAI,CAACJ,iBAAiB,CAACK,IAAI,CAAC,CAAC,CAAC;EAE3D,MAAMC,cAAc,GAAAC,iBAAA,CACjBd,EAAE,CAACe,mBAAmB;IAAA,IAAAC,SAAA;MAAA,OAAAF,iBAAA,CACpBjB,GAAG;QAACoB,IAAI,EAAER,cAAc;QAAES,SAAS;QAACC,QAAQ;QAAAH,QAAA,EACzCI,aAAa,IAAK;UAClB,MAAMC,YAAY,GAAGjB,wBAAwB,CAACgB,aAAa,CAAC;UAC5D,OAAAN,iBAAA,CACGd,EAAE,CAACsB,eAAe;YAAA,IAACC,IAAIA,CAAA;cAAA,OAAEH,aAAa,CAACI,WAAW,CAAC,CAAC;YAAA;YAAAR,QAAA,EAClDK;UAAY;QAGnB;MAAC;IAAA;EAAA,EAGN;EAED,OAAAP,iBAAA,CACGf,eAAe;IAAC0B,IAAI;IAAA,IAAAT,SAAA;MAAA,QAAAF,iBAAA,CAClBjB,GAAG;QAAA,IAACoB,IAAIA,CAAA;UAAA,OAAEP,KAAK,CAACC,IAAI,CAACJ,iBAAiB,CAACmB,OAAO,CAAC,CAAC,CAAC;QAAA;QAAAV,QAAA,EAC/CA,CAAC,CAACI,aAAa,EAAEO,UAAU,CAAC,KAAAb,iBAAA,CAC1Bd,EAAE,CAAC4B,UAAU;UAAA,IAACH,IAAIA,CAAA;YAAA,OAAE,GAAGL,aAAa,CAACI,WAAW,CAAC,CAAC,YAAY;UAAA;UAAA,IAAAR,SAAA;YAAA,OAAAF,iBAAA,CAC5Db,iBAAiB;cAChBmB,aAAa,EAAEA,aAAa;cAC5BO,UAAU,EAAEA;YAAU;UAAA;QAAA;MAG3B,IAAAb,iBAAA,CAGFd,EAAE,CAAC4B,UAAU;QAACH,IAAI;QAAA,IAAAT,SAAA;UAAA,OAAAF,iBAAA,CAChBd,EAAE,CAAC6B,mBAAmB;YACrBN,IAAI;YAAA;YAEJO,MAAM,EAAEtB,aAAa;YACrBuB,KAAK;YAAA,IACLC,UAAUA,CAAA;cAAA,OAAE,CACV;gBAAET,IAAI,EAAE,QAAQ;gBAAEU,IAAI,EAAE9B,UAAU,CAAC+B;cAAgB,CAAC,EACpD;gBAAEX,IAAI,EAAE,YAAY;gBAAEU,IAAI,EAAEpB;cAAe,CAAC,CAC7C;YAAA;YACDsB,UAAU;YAAA,IAAAnB,SAAA;cAAA,OAAAF,iBAAA,CAEThB,IAAI;gBAAA,IAAAkB,SAAA;kBAAA,OAAAF,iBAAA,CACFjB,GAAG;oBAACoB,IAAI,EAAER,cAAc;oBAAAO,QAAA,EACtB,SAAAA,CAAUI,aAAa,EAAE;sBACxB,MAAMgB,WAAW,GAAGlC,uBAAuB,CAACkB,aAAa,CAAC;sBAC1D,MAAMiB,YAAY,GAAGjB,aAAa,CAACI,WAAW,CAAC,CAAC;sBAChD,iBAEU,GAAG,EAAAV,iBAAA,CACRd,EAAE,CAACsC,sBAAsB;wBACxBC,MAAM,EAAEH,WAAW;wBACnBI,IAAI,EAAE,CAAC,QAAQ,EAAE,cAAcH,YAAY,EAAE;sBAAC;oBAKtD;kBAAC;gBAAA;cAAA;YAAA;UAAA;QAAA;MAAA;IAAA;EAAA;AAOf","ignoreList":[]}
@@ -33,13 +33,13 @@ export function RoutesDirectory(props) {
33
33
  ]} returnType="void">
34
34
  <List>
35
35
  <For each={containerNames}>
36
- {(containerName) => {
36
+ {function (containerName) {
37
37
  const routeRegRef = getRouteRegistrationRef(containerName);
38
38
  const containerKey = containerName.toLowerCase();
39
39
  return (<>
40
40
  await{" "}
41
- <ts.FunctionCallExpression target={routeRegRef} args={[<>server</>, <>operations.{containerKey}</>]}/>
42
- {";"}
41
+ <ts.FunctionCallExpression target={routeRegRef} args={["server", `operations.${containerKey}`]}/>
42
+ ;
43
43
  </>);
44
44
  }}
45
45
  </For>
@@ -1 +1 @@
1
- {"version":3,"file":"RoutesDirectory.jsx","sourceRoot":"","sources":["../../../src/components/RoutesDirectory.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RoutesDirectory.jsx","sourceRoot":"","sources":["../../../src/components/RoutesDirectory.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { Type } from "@typespec/compiler";
2
+ export interface ZodSchemasDirectoryProps {
3
+ namespace: string;
4
+ types: Type[];
5
+ }
6
+ /**
7
+ * Generates Zod schemas for TypeSpec types using the typespec-zod library.
8
+ */
9
+ export declare function ZodSchemasDirectory(props: ZodSchemasDirectoryProps): import("@alloy-js/core").Children;
@@ -0,0 +1,37 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { For, SourceDirectory } from "@alloy-js/core";
3
+ import * as ts from "@alloy-js/typescript";
4
+ import { ZodSchemaDeclaration } from "typespec-zod";
5
+ /**
6
+ * Generates Zod schemas for TypeSpec types using the typespec-zod library.
7
+ */
8
+ export function ZodSchemasDirectory(props) {
9
+ const declarationTypes = props.types.filter(isDeclarationType);
10
+ return _$createComponent(SourceDirectory, {
11
+ path: "schemas",
12
+ get children() {
13
+ return _$createComponent(ts.SourceFile, {
14
+ get path() {
15
+ return `${props.namespace.toLowerCase()}.ts`;
16
+ },
17
+ get children() {
18
+ return _$createComponent(For, {
19
+ each: declarationTypes,
20
+ hardline: true,
21
+ children: function (type) {
22
+ return _$createComponent(ZodSchemaDeclaration, {
23
+ "export": true,
24
+ "const": true,
25
+ type: type
26
+ });
27
+ }
28
+ });
29
+ }
30
+ });
31
+ }
32
+ });
33
+ }
34
+ function isDeclarationType(type) {
35
+ return type.kind === "Model" || type.kind === "Enum" || type.kind === "Union" || type.kind === "Scalar";
36
+ }
37
+ //# sourceMappingURL=ZodSchemasDirectory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["For","SourceDirectory","ts","ZodSchemaDeclaration","ZodSchemasDirectory","props","declarationTypes","types","filter","isDeclarationType","_$createComponent","path","children","SourceFile","namespace","toLowerCase","each","hardline","type","kind"],"sources":["../../../src/components/ZodSchemasDirectory.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,GAAG,EAAEC,eAAe,QAAQ,gBAAgB;AACrD,OAAO,KAAKC,EAAE,MAAM,sBAAsB;AAE1C,SAASC,oBAAoB,QAAQ,cAAc;AAOnD;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAACC,KAA+B,EAAE;EACnE,MAAMC,gBAAgB,GAAGD,KAAK,CAACE,KAAK,CAACC,MAAM,CAACC,iBAAiB,CAAC;EAE9D,OAAAC,iBAAA,CACGT,eAAe;IAACU,IAAI;IAAA,IAAAC,SAAA;MAAA,OAAAF,iBAAA,CAClBR,EAAE,CAACW,UAAU;QAAA,IAACF,IAAIA,CAAA;UAAA,OAAE,GAAGN,KAAK,CAACS,SAAS,CAACC,WAAW,CAAC,CAAC,KAAK;QAAA;QAAA,IAAAH,SAAA;UAAA,OAAAF,iBAAA,CACvDV,GAAG;YAACgB,IAAI,EAAEV,gBAAgB;YAAEW,QAAQ;YAAAL,QAAA,EAClC,SAAAA,CAAUM,IAAI,EAAE;cACf,OAAAR,iBAAA,CAAQP,oBAAoB;gBAAA;gBAAA;gBAAce,IAAI,EAAEA;cAAI;YACtD;UAAC;QAAA;MAAA;IAAA;EAAA;AAKX;AAOA,SAAST,iBAAiBA,CAACS,IAAU,EAA2B;EAC9D,OACEA,IAAI,CAACC,IAAI,KAAK,OAAO,IACrBD,IAAI,CAACC,IAAI,KAAK,MAAM,IACpBD,IAAI,CAACC,IAAI,KAAK,OAAO,IACrBD,IAAI,CAACC,IAAI,KAAK,QAAQ;AAE1B","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ import { For, SourceDirectory } from "@alloy-js/core";
2
+ import * as ts from "@alloy-js/typescript";
3
+ import { ZodSchemaDeclaration } from "typespec-zod";
4
+ /**
5
+ * Generates Zod schemas for TypeSpec types using the typespec-zod library.
6
+ */
7
+ export function ZodSchemasDirectory(props) {
8
+ const declarationTypes = props.types.filter(isDeclarationType);
9
+ return (<SourceDirectory path="schemas">
10
+ <ts.SourceFile path={`${props.namespace.toLowerCase()}.ts`}>
11
+ <For each={declarationTypes} hardline>
12
+ {function (type) {
13
+ return <ZodSchemaDeclaration export const type={type}/>;
14
+ }}
15
+ </For>
16
+ </ts.SourceFile>
17
+ </SourceDirectory>);
18
+ }
19
+ function isDeclarationType(type) {
20
+ return (type.kind === "Model" ||
21
+ type.kind === "Enum" ||
22
+ type.kind === "Union" ||
23
+ type.kind === "Scalar");
24
+ }
25
+ //# sourceMappingURL=ZodSchemasDirectory.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZodSchemasDirectory.jsx","sourceRoot":"","sources":["../../../src/components/ZodSchemasDirectory.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAOpD;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAA+B;IACjE,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAE/D,OAAO,CACL,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAC7B;MAAA,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CACzD;QAAA,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CACnC;UAAA,CAAC,UAAU,IAAI;YACb,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAG,CAAC;QAC3D,CAAC,CACH;QAAA,EAAE,GAAG,CACP;MAAA,EAAE,EAAE,CAAC,UAAU,CACjB;IAAA,EAAE,eAAe,CAAC,CACnB,CAAC;AACJ,CAAC;AAOD,SAAS,iBAAiB,CAAC,IAAU;IACnC,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,OAAO;QACrB,IAAI,CAAC,IAAI,KAAK,MAAM;QACpB,IAAI,CAAC,IAAI,KAAK,OAAO;QACrB,IAAI,CAAC,IAAI,KAAK,QAAQ,CACvB,CAAC;AACJ,CAAC"}
@@ -6,7 +6,10 @@ import { ModelsDirectory } from "./components/ModelsDirectory.js";
6
6
  import { OperationsDirectory } from "./components/OperationsDirectory.js";
7
7
  import { RouterFile } from "./components/RouterFile.js";
8
8
  import { RoutesDirectory } from "./components/RoutesDirectory.js";
9
+ import { ZodSchemasDirectory } from "./components/ZodSchemasDirectory.js";
9
10
  import { fastifyLib } from "./external-packages/fastify.js";
11
+ import { fastifyTypeProviderZod } from "./external-packages/fastify-type-provider-zod.js";
12
+ import { zod } from "typespec-zod";
10
13
  import { getHttpOperations, groupOperationsByContainer } from "./utils/http-helpers.js";
11
14
  import { discoverTypesFromOperations } from "./utils/type-discovery.js";
12
15
  export async function $onEmit(context) {
@@ -22,7 +25,7 @@ export async function $onEmit(context) {
22
25
  get program() {
23
26
  return context.program;
24
27
  },
25
- externals: [fastifyLib],
28
+ externals: [fastifyLib, zod, fastifyTypeProviderZod],
26
29
  get namePolicy() {
27
30
  return createTSNamePolicy();
28
31
  },
@@ -35,6 +38,11 @@ export async function $onEmit(context) {
35
38
  return httpInfo.namespace;
36
39
  },
37
40
  types: allTypes
41
+ }), _$createComponent(ZodSchemasDirectory, {
42
+ get namespace() {
43
+ return httpInfo.namespace;
44
+ },
45
+ types: allTypes
38
46
  }), _$createComponent(OperationsDirectory, {
39
47
  groupedOperations: groupedOperations
40
48
  }), _$createComponent(RoutesDirectory, {
@@ -1 +1 @@
1
- {"version":3,"names":["refkey","SourceDirectory","createTSNamePolicy","Output","writeOutput","ModelsDirectory","OperationsDirectory","RouterFile","RoutesDirectory","fastifyLib","getHttpOperations","groupOperationsByContainer","discoverTypesFromOperations","$onEmit","context","httpInfo","program","console","warn","groupedOperations","operations","allTypes","loadRoutesRef","_$createComponent","externals","namePolicy","children","path","namespace","types","emitterOutputDir"],"sources":["../../src/emitter.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,MAAM,EAAEC,eAAe,QAAQ,gBAAgB;AACxD,SAASC,kBAAkB,QAAQ,sBAAsB;AAEzD,SAASC,MAAM,EAAEC,WAAW,QAAQ,6BAA6B;AACjE,SAASC,eAAe,QAAQ,iCAAiC;AACjE,SAASC,mBAAmB,QAAQ,qCAAqC;AACzE,SAASC,UAAU,QAAQ,4BAA4B;AACvD,SAASC,eAAe,QAAQ,iCAAiC;AACjE,SAASC,UAAU,QAAQ,gCAAgC;AAE3D,SACEC,iBAAiB,EACjBC,0BAA0B,QACrB,yBAAyB;AAChC,SAASC,2BAA2B,QAAQ,2BAA2B;AAEvE,OAAO,eAAeC,OAAOA,CAACC,OAAoC,EAAE;EAClE,MAAMC,QAAQ,GAAGL,iBAAiB,CAACI,OAAO,CAACE,OAAO,CAAC;EAEnD,IAAI,CAACD,QAAQ,EAAE;IACbE,OAAO,CAACC,IAAI,CAAC,kCAAkC,CAAC;IAChD;EACF;EAEA,MAAMC,iBAAiB,GAAGR,0BAA0B,CAACI,QAAQ,CAACK,UAAU,CAAC;EACzE,MAAMC,QAAQ,GAAGT,2BAA2B,CAC1CE,OAAO,CAACE,OAAO,EACfD,QAAQ,CAACK,UACX,CAAC;EACD,MAAME,aAAa,GAAGtB,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC;EAE1D,MAAMI,WAAW,CACfU,OAAO,CAACE,OAAO,EAAAO,iBAAA,CACdpB,MAAM;IAAA,IACLa,OAAOA,CAAA;MAAA,OAAEF,OAAO,CAACE,OAAO;IAAA;IACxBQ,SAAS,EAAE,CAACf,UAAU,CAAC;IAAA,IACvBgB,UAAUA,CAAA;MAAA,OAAEvB,kBAAkB,CAAC,CAAC;IAAA;IAAA,IAAAwB,SAAA;MAAA,OAAAH,iBAAA,CAE/BtB,eAAe;QAAC0B,IAAI;QAAA,IAAAD,SAAA;UAAA,QAAAH,iBAAA,CAClBlB,eAAe;YAAA,IAACuB,SAASA,CAAA;cAAA,OAAEb,QAAQ,CAACa,SAAS;YAAA;YAAEC,KAAK,EAAER;UAAQ,IAAAE,iBAAA,CAC9DjB,mBAAmB;YAACa,iBAAiB,EAAEA;UAAiB,IAAAI,iBAAA,CACxDf,eAAe;YACdW,iBAAiB,EAAEA,iBAAiB;YACpCG,aAAa,EAAEA;UAAa,IAAAC,iBAAA,CAE7BhB,UAAU;YAAA,IACTqB,SAASA,CAAA;cAAA,OAAEb,QAAQ,CAACa,SAAS;YAAA;YAC7BN,aAAa,EAAEA,aAAa;YAC5BH,iBAAiB,EAAEA;UAAiB;QAAA;MAAA;IAAA;EAAA,IAI1CL,OAAO,CAACgB,gBACV,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["refkey","SourceDirectory","createTSNamePolicy","Output","writeOutput","ModelsDirectory","OperationsDirectory","RouterFile","RoutesDirectory","ZodSchemasDirectory","fastifyLib","fastifyTypeProviderZod","zod","getHttpOperations","groupOperationsByContainer","discoverTypesFromOperations","$onEmit","context","httpInfo","program","console","warn","groupedOperations","operations","allTypes","loadRoutesRef","_$createComponent","externals","namePolicy","children","path","namespace","types","emitterOutputDir"],"sources":["../../src/emitter.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,MAAM,EAAEC,eAAe,QAAQ,gBAAgB;AACxD,SAASC,kBAAkB,QAAQ,sBAAsB;AAEzD,SAASC,MAAM,EAAEC,WAAW,QAAQ,6BAA6B;AACjE,SAASC,eAAe,QAAQ,iCAAiC;AACjE,SAASC,mBAAmB,QAAQ,qCAAqC;AACzE,SAASC,UAAU,QAAQ,4BAA4B;AACvD,SAASC,eAAe,QAAQ,iCAAiC;AACjE,SAASC,mBAAmB,QAAQ,qCAAqC;AACzE,SAASC,UAAU,QAAQ,gCAAgC;AAC3D,SAASC,sBAAsB,QAAQ,kDAAkD;AACzF,SAASC,GAAG,QAAQ,cAAc;AAElC,SACEC,iBAAiB,EACjBC,0BAA0B,QACrB,yBAAyB;AAChC,SAASC,2BAA2B,QAAQ,2BAA2B;AAEvE,OAAO,eAAeC,OAAOA,CAACC,OAAoC,EAAE;EAClE,MAAMC,QAAQ,GAAGL,iBAAiB,CAACI,OAAO,CAACE,OAAO,CAAC;EAEnD,IAAI,CAACD,QAAQ,EAAE;IACbE,OAAO,CAACC,IAAI,CAAC,kCAAkC,CAAC;IAChD;EACF;EAEA,MAAMC,iBAAiB,GAAGR,0BAA0B,CAACI,QAAQ,CAACK,UAAU,CAAC;EACzE,MAAMC,QAAQ,GAAGT,2BAA2B,CAC1CE,OAAO,CAACE,OAAO,EACfD,QAAQ,CAACK,UACX,CAAC;EACD,MAAME,aAAa,GAAGzB,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC;EAE1D,MAAMI,WAAW,CACfa,OAAO,CAACE,OAAO,EAAAO,iBAAA,CACdvB,MAAM;IAAA,IACLgB,OAAOA,CAAA;MAAA,OAAEF,OAAO,CAACE,OAAO;IAAA;IACxBQ,SAAS,EAAE,CAACjB,UAAU,EAAEE,GAAG,EAAED,sBAAsB,CAAC;IAAA,IACpDiB,UAAUA,CAAA;MAAA,OAAE1B,kBAAkB,CAAC,CAAC;IAAA;IAAA,IAAA2B,SAAA;MAAA,OAAAH,iBAAA,CAE/BzB,eAAe;QAAC6B,IAAI;QAAA,IAAAD,SAAA;UAAA,QAAAH,iBAAA,CAClBrB,eAAe;YAAA,IAAC0B,SAASA,CAAA;cAAA,OAAEb,QAAQ,CAACa,SAAS;YAAA;YAAEC,KAAK,EAAER;UAAQ,IAAAE,iBAAA,CAC9DjB,mBAAmB;YAAA,IAACsB,SAASA,CAAA;cAAA,OAAEb,QAAQ,CAACa,SAAS;YAAA;YAAEC,KAAK,EAAER;UAAQ,IAAAE,iBAAA,CAClEpB,mBAAmB;YAACgB,iBAAiB,EAAEA;UAAiB,IAAAI,iBAAA,CACxDlB,eAAe;YACdc,iBAAiB,EAAEA,iBAAiB;YACpCG,aAAa,EAAEA;UAAa,IAAAC,iBAAA,CAE7BnB,UAAU;YAAA,IACTwB,SAASA,CAAA;cAAA,OAAEb,QAAQ,CAACa,SAAS;YAAA;YAC7BN,aAAa,EAAEA,aAAa;YAC5BH,iBAAiB,EAAEA;UAAiB;QAAA;MAAA;IAAA;EAAA,IAI1CL,OAAO,CAACgB,gBACV,CAAC;AACH","ignoreList":[]}
@@ -5,7 +5,10 @@ import { ModelsDirectory } from "./components/ModelsDirectory.js";
5
5
  import { OperationsDirectory } from "./components/OperationsDirectory.js";
6
6
  import { RouterFile } from "./components/RouterFile.js";
7
7
  import { RoutesDirectory } from "./components/RoutesDirectory.js";
8
+ import { ZodSchemasDirectory } from "./components/ZodSchemasDirectory.js";
8
9
  import { fastifyLib } from "./external-packages/fastify.js";
10
+ import { fastifyTypeProviderZod } from "./external-packages/fastify-type-provider-zod.js";
11
+ import { zod } from "typespec-zod";
9
12
  import { getHttpOperations, groupOperationsByContainer, } from "./utils/http-helpers.js";
10
13
  import { discoverTypesFromOperations } from "./utils/type-discovery.js";
11
14
  export async function $onEmit(context) {
@@ -17,9 +20,10 @@ export async function $onEmit(context) {
17
20
  const groupedOperations = groupOperationsByContainer(httpInfo.operations);
18
21
  const allTypes = discoverTypesFromOperations(context.program, httpInfo.operations);
19
22
  const loadRoutesRef = refkey("loadRoutes", "route-loader");
20
- await writeOutput(context.program, <Output program={context.program} externals={[fastifyLib]} namePolicy={createTSNamePolicy()}>
23
+ await writeOutput(context.program, <Output program={context.program} externals={[fastifyLib, zod, fastifyTypeProviderZod]} namePolicy={createTSNamePolicy()}>
21
24
  <SourceDirectory path=".">
22
25
  <ModelsDirectory namespace={httpInfo.namespace} types={allTypes}/>
26
+ <ZodSchemasDirectory namespace={httpInfo.namespace} types={allTypes}/>
23
27
  <OperationsDirectory groupedOperations={groupedOperations}/>
24
28
  <RoutesDirectory groupedOperations={groupedOperations} loadRoutesRef={loadRoutesRef}/>
25
29
  <RouterFile namespace={httpInfo.namespace} loadRoutesRef={loadRoutesRef} groupedOperations={groupedOperations}/>
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.jsx","sourceRoot":"","sources":["../../src/emitter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAoC;IAChE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,2BAA2B,CAC1C,OAAO,CAAC,OAAO,EACf,QAAQ,CAAC,UAAU,CACpB,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAE3D,MAAM,WAAW,CACf,OAAO,CAAC,OAAO,EACf,CAAC,MAAM,CACL,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CACzB,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CACxB,UAAU,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAEjC;MAAA,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CACvB;QAAA,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAChE;QAAA,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,EAC1D;QAAA,CAAC,eAAe,CACd,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,aAAa,CAAC,CAAC,aAAa,CAAC,EAE/B;QAAA,CAAC,UAAU,CACT,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAC9B,aAAa,CAAC,CAAC,aAAa,CAAC,CAC7B,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,EAEzC;MAAA,EAAE,eAAe,CACnB;IAAA,EAAE,MAAM,CAAC,EACT,OAAO,CAAC,gBAAgB,CACzB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"emitter.jsx","sourceRoot":"","sources":["../../src/emitter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAoC;IAChE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,2BAA2B,CAC1C,OAAO,CAAC,OAAO,EACf,QAAQ,CAAC,UAAU,CACpB,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAE3D,MAAM,WAAW,CACf,OAAO,CAAC,OAAO,EACf,CAAC,MAAM,CACL,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CACzB,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,EAAE,sBAAsB,CAAC,CAAC,CACrD,UAAU,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAEjC;MAAA,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CACvB;QAAA,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAChE;QAAA,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EACpE;QAAA,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,EAC1D;QAAA,CAAC,eAAe,CACd,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,aAAa,CAAC,CAAC,aAAa,CAAC,EAE/B;QAAA,CAAC,UAAU,CACT,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAC9B,aAAa,CAAC,CAAC,aAAa,CAAC,CAC7B,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,EAEzC;MAAA,EAAE,eAAe,CACnB;IAAA,EAAE,MAAM,CAAC,EACT,OAAO,CAAC,gBAAgB,CACzB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const fastifyTypeProviderZod: {
2
+ serializerCompiler: import("@alloy-js/core").Refkey;
3
+ validatorCompiler: import("@alloy-js/core").Refkey;
4
+ ZodTypeProvider: import("@alloy-js/core").Refkey;
5
+ } & {} & {} & import("@alloy-js/core").SymbolCreator & import("@alloy-js/typescript").ExternalPackage;
@@ -0,0 +1,11 @@
1
+ import { createPackage } from "@alloy-js/typescript";
2
+ export const fastifyTypeProviderZod = createPackage({
3
+ name: "fastify-type-provider-zod",
4
+ version: "^4.0.0",
5
+ descriptor: {
6
+ ".": {
7
+ named: ["serializerCompiler", "validatorCompiler", "ZodTypeProvider"]
8
+ }
9
+ }
10
+ });
11
+ //# sourceMappingURL=fastify-type-provider-zod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createPackage","fastifyTypeProviderZod","name","version","descriptor","named"],"sources":["../../../src/external-packages/fastify-type-provider-zod.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,aAAa,QAAQ,sBAAsB;AAEpD,OAAO,MAAMC,sBAAsB,GAAGD,aAAa,CAAC;EAClDE,IAAI,EAAE,2BAA2B;EACjCC,OAAO,EAAE,QAAQ;EACjBC,UAAU,EAAE;IACV,GAAG,EAAE;MACHC,KAAK,EAAE,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,iBAAiB;IACtE;EACF;AACF,CAAC,CAAC","ignoreList":[]}
package/dist/src/lib.d.ts CHANGED
@@ -1,4 +1,11 @@
1
- export type EmitterOptions = Record<string, never>;
1
+ export interface EmitterOptions {
2
+ /**
3
+ * Schema validation library to use.
4
+ * Currently only "zod" is supported.
5
+ * @default "zod"
6
+ */
7
+ schemaType?: "zod" | "typebox";
8
+ }
2
9
  export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
3
10
  "http-emit-disabled": {
4
11
  readonly default: "Cannot emit Fastify server due to errors in HTTP service definition.";
package/dist/src/lib.js CHANGED
@@ -2,7 +2,14 @@ import { createTypeSpecLibrary } from "@typespec/compiler";
2
2
  const EmitterOptionsSchema = {
3
3
  type: "object",
4
4
  additionalProperties: false,
5
- properties: {},
5
+ properties: {
6
+ schemaType: {
7
+ type: "string",
8
+ enum: ["zod", "typebox"],
9
+ nullable: true,
10
+ default: "zod"
11
+ }
12
+ },
6
13
  required: []
7
14
  };
8
15
  export const $lib = createTypeSpecLibrary({
@@ -1 +1 @@
1
- {"version":3,"names":["createTypeSpecLibrary","EmitterOptionsSchema","type","additionalProperties","properties","required","$lib","name","diagnostics","severity","messages","default","emitter","options","reportDiagnostic","createDiagnostic"],"sources":["../../src/lib.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,qBAAqB,QAAwB,oBAAoB;AAI1E,MAAMC,oBAAoD,GAAG;EAC3DC,IAAI,EAAE,QAAQ;EACdC,oBAAoB,EAAE,KAAK;EAC3BC,UAAU,EAAE,CAAC,CAAC;EACdC,QAAQ,EAAE;AACZ,CAAC;AAED,OAAO,MAAMC,IAAI,GAAGN,qBAAqB,CAAC;EACxCO,IAAI,EAAE,0BAA0B;EAChCC,WAAW,EAAE;IACX,oBAAoB,EAAE;MACpBC,QAAQ,EAAE,OAAO;MACjBC,QAAQ,EAAE;QACRC,OAAO,EACL;MACJ;IACF,CAAC;IACD,wBAAwB,EAAE;MACxBF,QAAQ,EAAE,OAAO;MACjBC,QAAQ,EAAE;QACRC,OAAO,EACL;MACJ;IACF;EACF,CAAC;EACDC,OAAO,EAAE;IACPC,OAAO,EAAEZ;EACX;AACF,CAAC,CAAC;AAEF,OAAO,MAAM;EAAEa,gBAAgB;EAAEC;AAAiB,CAAC,GAAGT,IAAI","ignoreList":[]}
1
+ {"version":3,"names":["createTypeSpecLibrary","EmitterOptionsSchema","type","additionalProperties","properties","schemaType","enum","nullable","default","required","$lib","name","diagnostics","severity","messages","emitter","options","reportDiagnostic","createDiagnostic"],"sources":["../../src/lib.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,qBAAqB,QAAwB,oBAAoB;AAW1E,MAAMC,oBAAoD,GAAG;EAC3DC,IAAI,EAAE,QAAQ;EACdC,oBAAoB,EAAE,KAAK;EAC3BC,UAAU,EAAE;IACVC,UAAU,EAAE;MACVH,IAAI,EAAE,QAAQ;MACdI,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;MACxBC,QAAQ,EAAE,IAAI;MACdC,OAAO,EAAE;IACX;EACF,CAAC;EACDC,QAAQ,EAAE;AACZ,CAAC;AAED,OAAO,MAAMC,IAAI,GAAGV,qBAAqB,CAAC;EACxCW,IAAI,EAAE,0BAA0B;EAChCC,WAAW,EAAE;IACX,oBAAoB,EAAE;MACpBC,QAAQ,EAAE,OAAO;MACjBC,QAAQ,EAAE;QACRN,OAAO,EACL;MACJ;IACF,CAAC;IACD,wBAAwB,EAAE;MACxBK,QAAQ,EAAE,OAAO;MACjBC,QAAQ,EAAE;QACRN,OAAO,EACL;MACJ;IACF;EACF,CAAC;EACDO,OAAO,EAAE;IACPC,OAAO,EAAEf;EACX;AACF,CAAC,CAAC;AAEF,OAAO,MAAM;EAAEgB,gBAAgB;EAAEC;AAAiB,CAAC,GAAGR,IAAI","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typespec-fastify",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "main": "dist/src/index.js",
6
6
  "exports": {
@@ -20,8 +20,22 @@
20
20
  "@alloy-js/core": ">=0.20.0",
21
21
  "@alloy-js/typescript": ">=0.20.0",
22
22
  "@typespec/compiler": ">=1.0.0",
23
- "@typespec/emitter-framework": ">=0.14.0",
24
- "@typespec/http": ">=1.0.0"
23
+ "@typespec/emitter-framework": ">=0.15.0",
24
+ "@typespec/http": ">=1.0.0",
25
+ "fastify-type-provider-zod": ">=4.0.0",
26
+ "typespec-zod": ">=0.0.0-63",
27
+ "zod": ">=4.0.0"
28
+ },
29
+ "peerDependenciesMeta": {
30
+ "fastify-type-provider-zod": {
31
+ "optional": false
32
+ },
33
+ "zod": {
34
+ "optional": false
35
+ },
36
+ "typespec-zod": {
37
+ "optional": false
38
+ }
25
39
  },
26
40
  "files": [
27
41
  "dist",
@@ -47,6 +61,7 @@
47
61
  "@typescript-eslint/eslint-plugin": "8.53.0",
48
62
  "@typescript-eslint/parser": "8.53.0",
49
63
  "@typespec/compiler": "1.8.0",
64
+ "@typespec/emitter-framework": "0.15.0",
50
65
  "@typespec/http-specs": "0.1.0-alpha.30",
51
66
  "@typespec/spector": "0.1.0-alpha.22",
52
67
  "@vitest/coverage-v8": "4.0.17",
@@ -55,10 +70,14 @@
55
70
  "eslint-config-prettier": "10.1.8",
56
71
  "eslint-plugin-prettier": "5.5.5",
57
72
  "fastify": "5.6.2",
73
+ "fastify-type-provider-zod": "4.0.2",
74
+ "neostandard": "0.12.2",
58
75
  "prettier": "3.7.4",
59
76
  "typescript": "5.9.3",
60
77
  "typescript-eslint": "8.53.0",
61
- "vitest": "4.0.17"
78
+ "typespec-zod": "0.0.0-63",
79
+ "vitest": "4.0.17",
80
+ "zod": "4.3.6"
62
81
  },
63
82
  "scripts": {
64
83
  "build:emitter": "alloy build",