Skip to content

Commit 24df11f

Browse files
Remove Partial wrapper and if statements from registerRouteHandlersByTag
- Make ServerForTag interface properties required (remove optional marker) - Remove Partial<> wrapper from overload signatures - Remove if statements from implementation since all methods are now required Co-authored-by: jasonblanchard <1238532+jasonblanchard@users.noreply.github.com>
1 parent 78e3c25 commit 24df11f

File tree

5 files changed

+174
-232
lines changed

5 files changed

+174
-232
lines changed

examples/docs/gen/server.ts

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -76,30 +76,26 @@ export function registerRouteHandlers<Req, Res>(server: Server<Req, Res>): Route
7676
export type Tag = null;
7777

7878
export interface ServerForUntagged<Req = unknown, Res = unknown> {
79-
makePetSpeak?: (args: MakePetSpeakArgs<Req, Res>) => MakePetSpeakResult;
80-
uhoh?: (args: UhohArgs<Req, Res>) => UhohResult;
79+
makePetSpeak: (args: MakePetSpeakArgs<Req, Res>) => MakePetSpeakResult;
80+
uhoh: (args: UhohArgs<Req, Res>) => UhohResult;
8181
}
8282

83-
export function registerRouteHandlersByTag<Req, Res>(tag: null, server: Partial<ServerForUntagged<Req, Res>>): Route[];
83+
export function registerRouteHandlersByTag<Req, Res>(tag: null, server: ServerForUntagged<Req, Res>): Route[];
8484
export function registerRouteHandlersByTag<Req, Res>(tag: Tag, server: Partial<Server<Req, Res>>): Route[] {
8585
const routes: Route[] = [];
8686

8787
switch (tag) {
8888
case null:
89-
if (server.makePetSpeak) {
90-
routes.push({
91-
method: "post",
92-
path: "/speak/{petId}",
93-
handler: server.makePetSpeak as Route["handler"],
94-
});
95-
}
96-
if (server.uhoh) {
97-
routes.push({
98-
method: "get",
99-
path: "/uhoh",
100-
handler: server.uhoh as Route["handler"],
101-
});
102-
}
89+
routes.push({
90+
method: "post",
91+
path: "/speak/{petId}",
92+
handler: server.makePetSpeak as Route["handler"],
93+
});
94+
routes.push({
95+
method: "get",
96+
path: "/uhoh",
97+
handler: server.uhoh as Route["handler"],
98+
});
10399
break;
104100
}
105101

examples/kitchensink/gen/server.ts

Lines changed: 37 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -254,62 +254,50 @@ export function registerRouteHandlers<Req, Res>(server: Server<Req, Res>): Route
254254
export type Tag = null;
255255

256256
export interface ServerForUntagged<Req = unknown, Res = unknown> {
257-
listPets?: (args: ListPetsArgs<Req, Res>) => ListPetsResult;
258-
getPetById?: (args: GetPetByIdArgs<Req, Res>) => GetPetByIdResult;
259-
updatePetWithForm?: (args: UpdatePetWithFormArgs<Req, Res>) => UpdatePetWithFormResult;
260-
mixedContentTypes?: (args: MixedContentTypesArgs<Req, Res>) => MixedContentTypesResult;
261-
getPetImage?: (args: GetPetImageArgs<Req, Res>) => GetPetImageResult;
262-
getPetWebpage?: (args: GetPetWebpageArgs<Req, Res>) => GetPetWebpageResult;
257+
listPets: (args: ListPetsArgs<Req, Res>) => ListPetsResult;
258+
getPetById: (args: GetPetByIdArgs<Req, Res>) => GetPetByIdResult;
259+
updatePetWithForm: (args: UpdatePetWithFormArgs<Req, Res>) => UpdatePetWithFormResult;
260+
mixedContentTypes: (args: MixedContentTypesArgs<Req, Res>) => MixedContentTypesResult;
261+
getPetImage: (args: GetPetImageArgs<Req, Res>) => GetPetImageResult;
262+
getPetWebpage: (args: GetPetWebpageArgs<Req, Res>) => GetPetWebpageResult;
263263
}
264264

265-
export function registerRouteHandlersByTag<Req, Res>(tag: null, server: Partial<ServerForUntagged<Req, Res>>): Route[];
265+
export function registerRouteHandlersByTag<Req, Res>(tag: null, server: ServerForUntagged<Req, Res>): Route[];
266266
export function registerRouteHandlersByTag<Req, Res>(tag: Tag, server: Partial<Server<Req, Res>>): Route[] {
267267
const routes: Route[] = [];
268268

269269
switch (tag) {
270270
case null:
271-
if (server.listPets) {
272-
routes.push({
273-
method: "get",
274-
path: "/pets",
275-
handler: server.listPets as Route["handler"],
276-
});
277-
}
278-
if (server.getPetById) {
279-
routes.push({
280-
method: "get",
281-
path: "/pet/{petId}",
282-
handler: server.getPetById as Route["handler"],
283-
});
284-
}
285-
if (server.updatePetWithForm) {
286-
routes.push({
287-
method: "post",
288-
path: "/pet/{petId}",
289-
handler: server.updatePetWithForm as Route["handler"],
290-
});
291-
}
292-
if (server.mixedContentTypes) {
293-
routes.push({
294-
method: "post",
295-
path: "/pet/{petId}/mixed-content-types",
296-
handler: server.mixedContentTypes as Route["handler"],
297-
});
298-
}
299-
if (server.getPetImage) {
300-
routes.push({
301-
method: "get",
302-
path: "/pet/{petId}/image",
303-
handler: server.getPetImage as Route["handler"],
304-
});
305-
}
306-
if (server.getPetWebpage) {
307-
routes.push({
308-
method: "get",
309-
path: "/pet/{petId}/webpage",
310-
handler: server.getPetWebpage as Route["handler"],
311-
});
312-
}
271+
routes.push({
272+
method: "get",
273+
path: "/pets",
274+
handler: server.listPets as Route["handler"],
275+
});
276+
routes.push({
277+
method: "get",
278+
path: "/pet/{petId}",
279+
handler: server.getPetById as Route["handler"],
280+
});
281+
routes.push({
282+
method: "post",
283+
path: "/pet/{petId}",
284+
handler: server.updatePetWithForm as Route["handler"],
285+
});
286+
routes.push({
287+
method: "post",
288+
path: "/pet/{petId}/mixed-content-types",
289+
handler: server.mixedContentTypes as Route["handler"],
290+
});
291+
routes.push({
292+
method: "get",
293+
path: "/pet/{petId}/image",
294+
handler: server.getPetImage as Route["handler"],
295+
});
296+
routes.push({
297+
method: "get",
298+
path: "/pet/{petId}/webpage",
299+
handler: server.getPetWebpage as Route["handler"],
300+
});
313301
break;
314302
}
315303

0 commit comments

Comments
 (0)