express-endpoints-collection 1.0.17 → 1.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/index.d.ts +4 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/types/EndpointArgs.d.ts +5 -5
- package/dist/types/EndpointArgs.d.ts.map +1 -1
- package/dist/types/EndpointInfo.d.ts +12 -2
- package/dist/types/EndpointInfo.d.ts.map +1 -1
- package/dist/types/TypedRequestHandler.d.ts +18 -5
- package/dist/types/TypedRequestHandler.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/test.d.ts +0 -2
- package/dist/test.d.ts.map +0 -1
- package/dist/test.js +0 -63
- package/dist/test.js.map +0 -1
- package/dist/types/EndpointInputSchema.d.ts +0 -8
- package/dist/types/EndpointInputSchema.d.ts.map +0 -1
- package/dist/types/EndpointInputSchema.js +0 -3
- package/dist/types/EndpointInputSchema.js.map +0 -1
- package/dist/types/EndpointOutputSchema.d.ts +0 -7
- package/dist/types/EndpointOutputSchema.d.ts.map +0 -1
- package/dist/types/EndpointOutputSchema.js +0 -3
- package/dist/types/EndpointOutputSchema.js.map +0 -1
- package/dist/types/TypedRequest.d.ts +0 -10
- package/dist/types/TypedRequest.d.ts.map +0 -1
- package/dist/types/TypedRequest.js +0 -3
- package/dist/types/TypedRequest.js.map +0 -1
- package/dist/types/TypedResponse.d.ts +0 -13
- package/dist/types/TypedResponse.d.ts.map +0 -1
- package/dist/types/TypedResponse.js +0 -3
- package/dist/types/TypedResponse.js.map +0 -1
package/README.md
CHANGED
|
@@ -85,11 +85,13 @@ app.use(endpointsCollection.getRouter());
|
|
|
85
85
|
|
|
86
86
|
// 6. Expose OpenAPI 3 schema
|
|
87
87
|
app.get("/openapi", (req, res) => {
|
|
88
|
-
res.
|
|
88
|
+
res.setHeader("Content-Type", "text/yaml");
|
|
89
|
+
res.send(
|
|
89
90
|
generateOpenAPI({
|
|
90
91
|
title: "Minimal demo",
|
|
91
92
|
version: "1.0.0",
|
|
92
93
|
endpoints: endpointsCollection.getEndpoints(),
|
|
94
|
+
servers: ["http://localhost:3000"],
|
|
93
95
|
}),
|
|
94
96
|
);
|
|
95
97
|
});
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { RequestHandler } from "express";
|
|
2
|
-
import { EndpointInputSchema } from "./types/
|
|
3
|
-
import { EndpointOutputSchema } from "./types/EndpointOutputSchema";
|
|
4
|
-
import { EndpointInfo } from "./types/EndpointInfo";
|
|
5
|
-
import { EndpointArgs } from "./types/EndpointArgs";
|
|
2
|
+
import { EndpointInfo, EndpointInputSchema, EndpointOutputSchema } from "./types/EndpointInfo";
|
|
6
3
|
import { HttpMethod } from "./types/HttpMethod";
|
|
7
|
-
import { TypedRequestHandler } from "./types/TypedRequestHandler";
|
|
8
4
|
import { CustomErrorHandler } from "./types/CustomErrorHandler";
|
|
5
|
+
import { TypedRequestHandler } from "./types/TypedRequestHandler";
|
|
6
|
+
import { EndpointArgs } from "./types/EndpointArgs";
|
|
9
7
|
export declare class EndpointsCollection {
|
|
10
8
|
private endpoints;
|
|
11
9
|
private router;
|
|
@@ -18,7 +16,7 @@ export declare class EndpointsCollection {
|
|
|
18
16
|
private validateInput;
|
|
19
17
|
private coerceAll;
|
|
20
18
|
private coerceOnly;
|
|
21
|
-
callOriginal<TInput extends EndpointInputSchema, TOutput extends EndpointOutputSchema>(method: HttpMethod, path: string, { inputSchema, outputSchema, summary,
|
|
19
|
+
callOriginal<TInput extends EndpointInputSchema, TOutput extends EndpointOutputSchema>(method: HttpMethod, path: string, { inputSchema, outputSchema, summary, beforeInputValidation, afterInputValidation, beforeResponse, }: EndpointArgs<TInput, TOutput>, handlers: RequestHandler | TypedRequestHandler<TInput, TOutput>): import("express-serve-static-core").Router;
|
|
22
20
|
get<TInput extends EndpointInputSchema, TOutput extends EndpointOutputSchema>(path: string, args: EndpointArgs<TInput, TOutput>, handlers: TypedRequestHandler<TInput, TOutput>): import("express-serve-static-core").Router;
|
|
23
21
|
post<TInput extends EndpointInputSchema, TOutput extends EndpointOutputSchema>(path: string, args: EndpointArgs<TInput, TOutput>, handler: TypedRequestHandler<TInput, TOutput>): import("express-serve-static-core").Router;
|
|
24
22
|
put<TInput extends EndpointInputSchema, TOutput extends EndpointOutputSchema>(path: string, args: EndpointArgs<TInput, TOutput>, handlers: TypedRequestHandler<TInput, TOutput>): import("express-serve-static-core").Router;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,cAAc,EACf,MAAM,SAAS,CAAC;AACjB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -97,7 +97,7 @@ class EndpointsCollection {
|
|
|
97
97
|
return schema.safeParse(value);
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
|
-
callOriginal(method, path, { inputSchema, outputSchema, summary,
|
|
100
|
+
callOriginal(method, path, { inputSchema, outputSchema, summary, beforeInputValidation = [], afterInputValidation = [], beforeResponse = [], }, handlers) {
|
|
101
101
|
const pathToUse = this.collectionPrefix
|
|
102
102
|
? `${this.collectionPrefix}${path}`
|
|
103
103
|
: path;
|
|
@@ -110,17 +110,17 @@ class EndpointsCollection {
|
|
|
110
110
|
});
|
|
111
111
|
const combinedHandlers = [];
|
|
112
112
|
if (beforeInputValidation) {
|
|
113
|
-
combinedHandlers.push(beforeInputValidation);
|
|
113
|
+
combinedHandlers.push(...beforeInputValidation);
|
|
114
114
|
}
|
|
115
115
|
if (inputSchema) {
|
|
116
116
|
combinedHandlers.push(this.validateInput(inputSchema));
|
|
117
117
|
}
|
|
118
118
|
if (afterInputValidation) {
|
|
119
|
-
combinedHandlers.push(afterInputValidation);
|
|
119
|
+
combinedHandlers.push(...afterInputValidation);
|
|
120
120
|
}
|
|
121
121
|
combinedHandlers.push(handlers);
|
|
122
122
|
if (beforeResponse) {
|
|
123
|
-
combinedHandlers.push(beforeResponse);
|
|
123
|
+
combinedHandlers.push(...beforeResponse);
|
|
124
124
|
}
|
|
125
125
|
return this.router[method](pathToUse, ...combinedHandlers);
|
|
126
126
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qCAMiB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { EndpointInputSchema } from "./EndpointInputSchema";
|
|
2
|
-
import { EndpointOutputSchema } from "./EndpointOutputSchema";
|
|
3
1
|
import { RequestHandler } from "express";
|
|
2
|
+
import { EndpointInputSchema, EndpointOutputSchema } from "./EndpointInfo";
|
|
3
|
+
import { TypedRequestHandler } from "./TypedRequestHandler";
|
|
4
4
|
export type EndpointArgs<TInput extends EndpointInputSchema, TOutput extends EndpointOutputSchema> = {
|
|
5
5
|
inputSchema?: TInput;
|
|
6
6
|
outputSchema: TOutput;
|
|
7
7
|
summary?: string;
|
|
8
|
-
beforeInputValidation?: RequestHandler |
|
|
9
|
-
afterInputValidation?: RequestHandler |
|
|
10
|
-
beforeResponse?: RequestHandler |
|
|
8
|
+
beforeInputValidation?: RequestHandler[] | TypedRequestHandler<TInput, TOutput>[];
|
|
9
|
+
afterInputValidation?: RequestHandler[] | TypedRequestHandler<TInput, TOutput>[];
|
|
10
|
+
beforeResponse?: RequestHandler[] | TypedRequestHandler<TInput, TOutput>[];
|
|
11
11
|
};
|
|
12
12
|
//# sourceMappingURL=EndpointArgs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EndpointArgs.d.ts","sourceRoot":"","sources":["../../src/types/EndpointArgs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"EndpointArgs.d.ts","sourceRoot":"","sources":["../../src/types/EndpointArgs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,MAAM,YAAY,CACtB,MAAM,SAAS,mBAAmB,EAClC,OAAO,SAAS,oBAAoB,IAClC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qBAAqB,CAAC,EAClB,cAAc,EAAE,GAChB,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,oBAAoB,CAAC,EACjB,cAAc,EAAE,GAChB,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,cAAc,CAAC,EAAE,cAAc,EAAE,GAAG,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CAC5E,CAAC"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
import { EndpointInputSchema } from "./EndpointInputSchema";
|
|
2
|
-
import { EndpointOutputSchema } from "./EndpointOutputSchema";
|
|
3
1
|
import { HttpMethod } from "./HttpMethod";
|
|
2
|
+
import { AnyZodObject } from "zod";
|
|
3
|
+
export type EndpointInputSchema = {
|
|
4
|
+
query?: AnyZodObject;
|
|
5
|
+
body?: AnyZodObject;
|
|
6
|
+
params?: AnyZodObject;
|
|
7
|
+
headers?: AnyZodObject;
|
|
8
|
+
};
|
|
9
|
+
export type EndpointOutputSchema = {
|
|
10
|
+
status: number;
|
|
11
|
+
description?: string;
|
|
12
|
+
body?: AnyZodObject;
|
|
13
|
+
}[];
|
|
4
14
|
export type EndpointInfo = {
|
|
5
15
|
path: string;
|
|
6
16
|
method: HttpMethod;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EndpointInfo.d.ts","sourceRoot":"","sources":["../../src/types/EndpointInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"EndpointInfo.d.ts","sourceRoot":"","sources":["../../src/types/EndpointInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAEnC,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,EAAE,CAAC;AAEJ,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,YAAY,EAAE,oBAAoB,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
|
|
@@ -1,7 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { NextFunction, Request, Response } from "express";
|
|
3
|
+
import { EndpointInputSchema, EndpointOutputSchema } from "./EndpointInfo";
|
|
4
|
+
export type TypedRequest<T extends EndpointInputSchema> = Omit<Request, "body" | "query" | "params" | "headers"> & {
|
|
5
|
+
body: z.infer<NonNullable<T["body"]>>;
|
|
6
|
+
query: z.infer<NonNullable<T["query"]>>;
|
|
7
|
+
params: z.infer<NonNullable<T["params"]>>;
|
|
8
|
+
headers: z.infer<NonNullable<T["headers"]>>;
|
|
9
|
+
};
|
|
10
|
+
export type TypedResponse<T extends EndpointOutputSchema> = Omit<Response, "json" | "status" | "sendStatus"> & {
|
|
11
|
+
json: (data: z.infer<NonNullable<T[number]["body"]>>) => void;
|
|
12
|
+
status: <S extends T[number]["status"]>(code: S) => Omit<TypedResponse<T>, "status"> & {
|
|
13
|
+
json: (data: z.infer<NonNullable<Extract<T[number], {
|
|
14
|
+
status: S;
|
|
15
|
+
}>["body"]>>) => void;
|
|
16
|
+
};
|
|
17
|
+
sendStatus: <S extends T[number]["status"]>(code: S) => void;
|
|
18
|
+
};
|
|
6
19
|
export type TypedRequestHandler<TInput extends EndpointInputSchema, TOutput extends EndpointOutputSchema> = (req: TypedRequest<TInput>, res: TypedResponse<TOutput>, next: NextFunction) => void | Promise<void>;
|
|
7
20
|
//# sourceMappingURL=TypedRequestHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedRequestHandler.d.ts","sourceRoot":"","sources":["../../src/types/TypedRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"TypedRequestHandler.d.ts","sourceRoot":"","sources":["../../src/types/TypedRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3E,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,mBAAmB,IAAI,IAAI,CAC5D,OAAO,EACP,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CACxC,GAAG;IACF,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,oBAAoB,IAAI,IAAI,CAC9D,QAAQ,EACR,MAAM,GAAG,QAAQ,GAAG,YAAY,CACjC,GAAG;IACF,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC9D,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EACpC,IAAI,EAAE,CAAC,KACJ,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG;QACtC,IAAI,EAAE,CACJ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;YAAE,MAAM,EAAE,CAAC,CAAA;SAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAClE,IAAI,CAAC;KACX,CAAC;IACF,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAC7B,MAAM,SAAS,mBAAmB,EAClC,OAAO,SAAS,oBAAoB,IAClC,CACF,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,EACzB,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,EAC3B,IAAI,EAAE,YAAY,KACf,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "express-endpoints-collection",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.18",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"repository": "https://github.com/pilotpirxie/express-endpoints-collection.git",
|
|
6
6
|
"author": "pilotpirxie <10637666+pilotpirxie@users.noreply.github.com>",
|
package/dist/test.d.ts
DELETED
package/dist/test.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":""}
|
package/dist/test.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const zod_1 = require("zod");
|
|
4
|
-
function coerceOnly(schema, value) {
|
|
5
|
-
if (schema instanceof zod_1.z.ZodString) {
|
|
6
|
-
return zod_1.z.coerce.string().safeParse(value);
|
|
7
|
-
}
|
|
8
|
-
else if (schema instanceof zod_1.z.ZodNumber) {
|
|
9
|
-
return zod_1.z.coerce.number().safeParse(value);
|
|
10
|
-
}
|
|
11
|
-
else if (schema instanceof zod_1.z.ZodBoolean) {
|
|
12
|
-
return zod_1.z.coerce.boolean().safeParse(value);
|
|
13
|
-
}
|
|
14
|
-
else if (schema instanceof zod_1.z.ZodDate) {
|
|
15
|
-
return zod_1.z.coerce.date().safeParse(value);
|
|
16
|
-
}
|
|
17
|
-
else if (schema instanceof zod_1.z.ZodBigInt) {
|
|
18
|
-
return zod_1.z.coerce.bigint().safeParse(value);
|
|
19
|
-
}
|
|
20
|
-
else if (schema instanceof zod_1.z.ZodArray) {
|
|
21
|
-
if (Array.isArray(value)) {
|
|
22
|
-
const coercedArray = value.map((item) => coerceOnly(schema.element, item));
|
|
23
|
-
return zod_1.z
|
|
24
|
-
.array(zod_1.z.any())
|
|
25
|
-
.safeParse(coercedArray.map((result) => result.success ? result.data : result.error));
|
|
26
|
-
}
|
|
27
|
-
return zod_1.z.array(zod_1.z.any()).safeParse(value);
|
|
28
|
-
}
|
|
29
|
-
else if (schema instanceof zod_1.z.ZodObject) {
|
|
30
|
-
if (typeof value === "object" && value !== null) {
|
|
31
|
-
const coercedObject = {};
|
|
32
|
-
for (const [key, propertySchema] of Object.entries(schema.shape)) {
|
|
33
|
-
const propertyValue = value[key];
|
|
34
|
-
const coercedProperty = coerceOnly(propertySchema, propertyValue);
|
|
35
|
-
coercedObject[key] = coercedProperty.success
|
|
36
|
-
? coercedProperty.data
|
|
37
|
-
: propertyValue;
|
|
38
|
-
}
|
|
39
|
-
return zod_1.z.object(schema.shape).safeParse(coercedObject);
|
|
40
|
-
}
|
|
41
|
-
return zod_1.z.object(schema.shape).safeParse(value);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
return schema.safeParse(value);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
const input = {
|
|
48
|
-
a: "1",
|
|
49
|
-
b: 2,
|
|
50
|
-
};
|
|
51
|
-
const schema = zod_1.z.object({
|
|
52
|
-
a: zod_1.z.number(),
|
|
53
|
-
b: zod_1.z.number(),
|
|
54
|
-
});
|
|
55
|
-
const coercedInput = {};
|
|
56
|
-
for (const key in schema.shape) {
|
|
57
|
-
// @ts-ignore
|
|
58
|
-
const coerced = coerceOnly(schema.shape[key], input[key]);
|
|
59
|
-
// @ts-ignore
|
|
60
|
-
coercedInput[key] = coerced.success ? coerced.data : input[key];
|
|
61
|
-
}
|
|
62
|
-
console.log(coercedInput);
|
|
63
|
-
//# sourceMappingURL=test.js.map
|
package/dist/test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EndpointInputSchema.d.ts","sourceRoot":"","sources":["../../src/types/EndpointInputSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAEnC,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EndpointInputSchema.js","sourceRoot":"","sources":["../../src/types/EndpointInputSchema.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EndpointOutputSchema.d.ts","sourceRoot":"","sources":["../../src/types/EndpointOutputSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAEnC,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EndpointOutputSchema.js","sourceRoot":"","sources":["../../src/types/EndpointOutputSchema.ts"],"names":[],"mappings":""}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { EndpointInputSchema } from "./EndpointInputSchema";
|
|
2
|
-
import { z } from "zod";
|
|
3
|
-
import { Request } from "express";
|
|
4
|
-
export type TypedRequest<T extends EndpointInputSchema> = Omit<Request, "body" | "query" | "params" | "headers"> & {
|
|
5
|
-
body: z.infer<NonNullable<T["body"]>>;
|
|
6
|
-
query: z.infer<NonNullable<T["query"]>>;
|
|
7
|
-
params: z.infer<NonNullable<T["params"]>>;
|
|
8
|
-
headers: z.infer<NonNullable<T["headers"]>>;
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=TypedRequest.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TypedRequest.d.ts","sourceRoot":"","sources":["../../src/types/TypedRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,mBAAmB,IAAI,IAAI,CAC5D,OAAO,EACP,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CACxC,GAAG;IACF,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAC7C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TypedRequest.js","sourceRoot":"","sources":["../../src/types/TypedRequest.ts"],"names":[],"mappings":""}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { EndpointOutputSchema } from "./EndpointOutputSchema";
|
|
2
|
-
import { z } from "zod";
|
|
3
|
-
import { Response } from "express";
|
|
4
|
-
export type TypedResponse<T extends EndpointOutputSchema> = Omit<Response, "json" | "status" | "sendStatus"> & {
|
|
5
|
-
json: (data: z.infer<NonNullable<T[number]["body"]>>) => void;
|
|
6
|
-
status: <S extends T[number]["status"]>(code: S) => Omit<TypedResponse<T>, "status"> & {
|
|
7
|
-
json: (data: z.infer<NonNullable<Extract<T[number], {
|
|
8
|
-
status: S;
|
|
9
|
-
}>["body"]>>) => void;
|
|
10
|
-
};
|
|
11
|
-
sendStatus: <S extends T[number]["status"]>(code: S) => void;
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=TypedResponse.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TypedResponse.d.ts","sourceRoot":"","sources":["../../src/types/TypedResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,oBAAoB,IAAI,IAAI,CAC9D,QAAQ,EACR,MAAM,GAAG,QAAQ,GAAG,YAAY,CACjC,GAAG;IACF,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC9D,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EACpC,IAAI,EAAE,CAAC,KACJ,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG;QACtC,IAAI,EAAE,CACJ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;YAAE,MAAM,EAAE,CAAC,CAAA;SAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAClE,IAAI,CAAC;KACX,CAAC;IACF,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;CAC9D,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TypedResponse.js","sourceRoot":"","sources":["../../src/types/TypedResponse.ts"],"names":[],"mappings":""}
|