@dokploy/trpc-openapi 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +369 -0
- package/assets/trpc-openapi-graph.png +0 -0
- package/assets/trpc-openapi-readme.png +0 -0
- package/assets/trpc-openapi.svg +4 -0
- package/dist/adapters/express.d.ts +6 -0
- package/dist/adapters/express.d.ts.map +1 -0
- package/dist/adapters/express.js +12 -0
- package/dist/adapters/express.js.map +1 -0
- package/dist/adapters/index.d.ts +4 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +20 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/next.d.ts +6 -0
- package/dist/adapters/next.d.ts.map +1 -0
- package/dist/adapters/next.js +45 -0
- package/dist/adapters/next.js.map +1 -0
- package/dist/adapters/node-http/core.d.ts +6 -0
- package/dist/adapters/node-http/core.d.ts.map +1 -0
- package/dist/adapters/node-http/core.js +140 -0
- package/dist/adapters/node-http/core.js.map +1 -0
- package/dist/adapters/node-http/errors.d.ts +4 -0
- package/dist/adapters/node-http/errors.d.ts.map +1 -0
- package/dist/adapters/node-http/errors.js +43 -0
- package/dist/adapters/node-http/errors.js.map +1 -0
- package/dist/adapters/node-http/input.d.ts +4 -0
- package/dist/adapters/node-http/input.d.ts.map +1 -0
- package/dist/adapters/node-http/input.js +76 -0
- package/dist/adapters/node-http/input.js.map +1 -0
- package/dist/adapters/node-http/procedures.d.ts +12 -0
- package/dist/adapters/node-http/procedures.d.ts.map +1 -0
- package/dist/adapters/node-http/procedures.js +51 -0
- package/dist/adapters/node-http/procedures.js.map +1 -0
- package/dist/adapters/standalone.d.ts +6 -0
- package/dist/adapters/standalone.d.ts.map +1 -0
- package/dist/adapters/standalone.js +12 -0
- package/dist/adapters/standalone.js.map +1 -0
- package/dist/generator/index.d.ts +14 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/index.js +39 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/generator/paths.d.ts +4 -0
- package/dist/generator/paths.d.ts.map +1 -0
- package/dist/generator/paths.js +76 -0
- package/dist/generator/paths.js.map +1 -0
- package/dist/generator/schema.d.ts +7 -0
- package/dist/generator/schema.d.ts.map +1 -0
- package/dist/generator/schema.js +195 -0
- package/dist/generator/schema.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +53 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/method.d.ts +3 -0
- package/dist/utils/method.d.ts.map +1 -0
- package/dist/utils/method.js +11 -0
- package/dist/utils/method.js.map +1 -0
- package/dist/utils/path.d.ts +4 -0
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/path.js +17 -0
- package/dist/utils/path.js.map +1 -0
- package/dist/utils/procedure.d.ts +14 -0
- package/dist/utils/procedure.d.ts.map +1 -0
- package/dist/utils/procedure.js +39 -0
- package/dist/utils/procedure.js.map +1 -0
- package/dist/utils/zod.d.ts +19 -0
- package/dist/utils/zod.d.ts.map +1 -0
- package/dist/utils/zod.js +87 -0
- package/dist/utils/zod.js.map +1 -0
- package/examples/with-express/README.md +11 -0
- package/examples/with-express/package.json +28 -0
- package/examples/with-express/src/database.ts +67 -0
- package/examples/with-express/src/index.ts +27 -0
- package/examples/with-express/src/openapi.ts +13 -0
- package/examples/with-express/src/router.ts +424 -0
- package/examples/with-express/tsconfig.json +102 -0
- package/examples/with-interop/README.md +10 -0
- package/examples/with-interop/package.json +13 -0
- package/examples/with-interop/src/index.ts +17 -0
- package/examples/with-interop/tsconfig.json +103 -0
- package/examples/with-nextjs/.eslintrc.json +3 -0
- package/examples/with-nextjs/README.md +12 -0
- package/examples/with-nextjs/next-env.d.ts +5 -0
- package/examples/with-nextjs/next.config.js +6 -0
- package/examples/with-nextjs/package.json +33 -0
- package/examples/with-nextjs/public/favicon.ico +0 -0
- package/examples/with-nextjs/src/pages/_app.tsx +7 -0
- package/examples/with-nextjs/src/pages/api/[...trpc].ts +18 -0
- package/examples/with-nextjs/src/pages/api/openapi.json.ts +10 -0
- package/examples/with-nextjs/src/pages/api/trpc/[...trpc].ts +9 -0
- package/examples/with-nextjs/src/pages/index.tsx +12 -0
- package/examples/with-nextjs/src/server/database.ts +67 -0
- package/examples/with-nextjs/src/server/openapi.ts +13 -0
- package/examples/with-nextjs/src/server/router.ts +426 -0
- package/examples/with-nextjs/tsconfig.json +24 -0
- package/jest.config.ts +12 -0
- package/package.json +74 -0
- package/pnpm-workspace.yaml +7 -0
- package/src/adapters/express.ts +20 -0
- package/src/adapters/index.ts +3 -0
- package/src/adapters/next.ts +64 -0
- package/src/adapters/node-http/core.ts +203 -0
- package/src/adapters/node-http/errors.ts +45 -0
- package/src/adapters/node-http/input.ts +76 -0
- package/src/adapters/node-http/procedures.ts +64 -0
- package/src/adapters/standalone.ts +19 -0
- package/src/generator/index.ts +51 -0
- package/src/generator/paths.ts +127 -0
- package/src/generator/schema.ts +238 -0
- package/src/index.ts +42 -0
- package/src/types.ts +79 -0
- package/src/utils/method.ts +8 -0
- package/src/utils/path.ts +12 -0
- package/src/utils/procedure.ts +45 -0
- package/src/utils/zod.ts +115 -0
- package/test/adapters/express.test.ts +150 -0
- package/test/adapters/next.test.ts +162 -0
- package/test/adapters/standalone.test.ts +1335 -0
- package/test/generator.test.ts +2897 -0
- package/tsconfig.build.json +4 -0
- package/tsconfig.eslint.json +5 -0
- package/tsconfig.json +19 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.getResponsesObject = exports.errorResponseObject = exports.getRequestBodyObject = exports.getParameterObjects = void 0;
|
|
18
|
+
// @ts-nocheck
|
|
19
|
+
const server_1 = require("@trpc/server");
|
|
20
|
+
const zod_1 = require("zod");
|
|
21
|
+
const zod_to_json_schema_1 = __importDefault(require("zod-to-json-schema"));
|
|
22
|
+
const zod_2 = require("../utils/zod");
|
|
23
|
+
const zodSchemaToOpenApiSchemaObject = (zodSchema) => {
|
|
24
|
+
// FIXME: https://github.com/StefanTerdell/zod-to-json-schema/issues/35
|
|
25
|
+
return (0, zod_to_json_schema_1.default)(zodSchema, {
|
|
26
|
+
target: "openApi3",
|
|
27
|
+
$refStrategy: "none",
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
const getParameterObjects = (currentSchema, pathParameters, inType, example) => {
|
|
31
|
+
const schema = currentSchema !== null && currentSchema !== void 0 ? currentSchema : zod_1.z.void();
|
|
32
|
+
const isRequired = !schema.isOptional();
|
|
33
|
+
const unwrappedSchema = (0, zod_2.unwrapZodType)(schema, true);
|
|
34
|
+
if (pathParameters.length === 0 &&
|
|
35
|
+
(0, zod_2.instanceofZodTypeLikeVoid)(unwrappedSchema)) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
if (!(0, zod_2.instanceofZodTypeObject)(unwrappedSchema)) {
|
|
39
|
+
throw new server_1.TRPCError({
|
|
40
|
+
message: "Input parser must be a ZodObject",
|
|
41
|
+
code: "INTERNAL_SERVER_ERROR",
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
const shape = unwrappedSchema.shape;
|
|
45
|
+
const shapeKeys = Object.keys(shape);
|
|
46
|
+
for (const pathParameter of pathParameters) {
|
|
47
|
+
if (!shapeKeys.includes(pathParameter)) {
|
|
48
|
+
throw new server_1.TRPCError({
|
|
49
|
+
message: `Input parser expects key from path: "${pathParameter}"`,
|
|
50
|
+
code: "INTERNAL_SERVER_ERROR",
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return shapeKeys
|
|
55
|
+
.filter((shapeKey) => {
|
|
56
|
+
const isPathParameter = pathParameters.includes(shapeKey);
|
|
57
|
+
if (inType === "path") {
|
|
58
|
+
return isPathParameter;
|
|
59
|
+
}
|
|
60
|
+
else if (inType === "query") {
|
|
61
|
+
return !isPathParameter;
|
|
62
|
+
}
|
|
63
|
+
return true;
|
|
64
|
+
})
|
|
65
|
+
.map((shapeKey) => {
|
|
66
|
+
let shapeSchema = shape[shapeKey];
|
|
67
|
+
const isShapeRequired = !shapeSchema.isOptional();
|
|
68
|
+
const isPathParameter = pathParameters.includes(shapeKey);
|
|
69
|
+
if (!(0, zod_2.instanceofZodTypeLikeString)(shapeSchema)) {
|
|
70
|
+
if (zod_2.zodSupportsCoerce) {
|
|
71
|
+
if (!(0, zod_2.instanceofZodTypeCoercible)(shapeSchema)) {
|
|
72
|
+
throw new server_1.TRPCError({
|
|
73
|
+
message: `Input parser key: "${shapeKey}" must be ZodString, ZodNumber, ZodBoolean, ZodBigInt or ZodDate`,
|
|
74
|
+
code: "INTERNAL_SERVER_ERROR",
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
throw new server_1.TRPCError({
|
|
80
|
+
message: `Input parser key: "${shapeKey}" must be ZodString`,
|
|
81
|
+
code: "INTERNAL_SERVER_ERROR",
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if ((0, zod_2.instanceofZodTypeOptional)(shapeSchema)) {
|
|
86
|
+
if (isPathParameter) {
|
|
87
|
+
throw new server_1.TRPCError({
|
|
88
|
+
message: `Path parameter: "${shapeKey}" must not be optional`,
|
|
89
|
+
code: "INTERNAL_SERVER_ERROR",
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
shapeSchema = shapeSchema.unwrap();
|
|
93
|
+
}
|
|
94
|
+
const _a = zodSchemaToOpenApiSchemaObject(shapeSchema), { description } = _a, openApiSchemaObject = __rest(_a, ["description"]);
|
|
95
|
+
return {
|
|
96
|
+
name: shapeKey,
|
|
97
|
+
in: isPathParameter ? "path" : "query",
|
|
98
|
+
required: isPathParameter || (isRequired && isShapeRequired),
|
|
99
|
+
schema: openApiSchemaObject,
|
|
100
|
+
description: description,
|
|
101
|
+
example: example === null || example === void 0 ? void 0 : example[shapeKey],
|
|
102
|
+
};
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
exports.getParameterObjects = getParameterObjects;
|
|
106
|
+
const getRequestBodyObject = (currentSchema, pathParameters, contentTypes, example) => {
|
|
107
|
+
// if (!instanceofZodType(schema)) {
|
|
108
|
+
// throw new TRPCError({
|
|
109
|
+
// message: "Input parser expects a Zod validator",
|
|
110
|
+
// code: "INTERNAL_SERVER_ERROR",
|
|
111
|
+
// });
|
|
112
|
+
// }
|
|
113
|
+
const schema = currentSchema !== null && currentSchema !== void 0 ? currentSchema : zod_1.z.void();
|
|
114
|
+
const isRequired = !schema.isOptional();
|
|
115
|
+
const unwrappedSchema = (0, zod_2.unwrapZodType)(schema, true);
|
|
116
|
+
if (pathParameters.length === 0 &&
|
|
117
|
+
(0, zod_2.instanceofZodTypeLikeVoid)(unwrappedSchema)) {
|
|
118
|
+
return undefined;
|
|
119
|
+
}
|
|
120
|
+
if (!(0, zod_2.instanceofZodTypeObject)(unwrappedSchema)) {
|
|
121
|
+
throw new server_1.TRPCError({
|
|
122
|
+
message: "Input parser must be a ZodObject",
|
|
123
|
+
code: "INTERNAL_SERVER_ERROR",
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
// remove path parameters
|
|
127
|
+
const mask = {};
|
|
128
|
+
const dedupedExample = example && Object.assign({}, example);
|
|
129
|
+
pathParameters.forEach((pathParameter) => {
|
|
130
|
+
mask[pathParameter] = true;
|
|
131
|
+
if (dedupedExample) {
|
|
132
|
+
delete dedupedExample[pathParameter];
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
const dedupedSchema = unwrappedSchema.omit(mask);
|
|
136
|
+
// if all keys are path parameters
|
|
137
|
+
if (pathParameters.length > 0 &&
|
|
138
|
+
Object.keys(dedupedSchema.shape).length === 0) {
|
|
139
|
+
return undefined;
|
|
140
|
+
}
|
|
141
|
+
const openApiSchemaObject = zodSchemaToOpenApiSchemaObject(dedupedSchema);
|
|
142
|
+
const content = {};
|
|
143
|
+
for (const contentType of contentTypes) {
|
|
144
|
+
content[contentType] = {
|
|
145
|
+
schema: openApiSchemaObject,
|
|
146
|
+
example: dedupedExample,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
return {
|
|
150
|
+
required: isRequired,
|
|
151
|
+
content,
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
exports.getRequestBodyObject = getRequestBodyObject;
|
|
155
|
+
exports.errorResponseObject = {
|
|
156
|
+
description: "Error response",
|
|
157
|
+
content: {
|
|
158
|
+
"application/json": {
|
|
159
|
+
schema: zodSchemaToOpenApiSchemaObject(zod_1.z.object({
|
|
160
|
+
message: zod_1.z.string(),
|
|
161
|
+
code: zod_1.z.string(),
|
|
162
|
+
issues: zod_1.z.array(zod_1.z.object({ message: zod_1.z.string() })).optional(),
|
|
163
|
+
})),
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
const getResponsesObject = (schema, example, headers) => {
|
|
168
|
+
// if (!instanceofZodType(schema)) {
|
|
169
|
+
// throw new TRPCError({
|
|
170
|
+
// message: 'Output parser expects a Zod validator',
|
|
171
|
+
// code: 'INTERNAL_SERVER_ERROR',
|
|
172
|
+
// });
|
|
173
|
+
// }
|
|
174
|
+
console.log(schema);
|
|
175
|
+
const successResponseObject = {
|
|
176
|
+
description: "Successful response",
|
|
177
|
+
headers: headers,
|
|
178
|
+
content: {
|
|
179
|
+
"application/json": Object.assign(Object.assign({}, (schema && {
|
|
180
|
+
schema: zodSchemaToOpenApiSchemaObject(schema),
|
|
181
|
+
})), {
|
|
182
|
+
// schema: zodSchemaToOpenApiSchemaObject(schema),
|
|
183
|
+
example }),
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
// console.log(zodSchemaToOpenApiSchemaObject(schema));
|
|
187
|
+
return {
|
|
188
|
+
200: successResponseObject,
|
|
189
|
+
default: {
|
|
190
|
+
$ref: "#/components/responses/error",
|
|
191
|
+
},
|
|
192
|
+
};
|
|
193
|
+
};
|
|
194
|
+
exports.getResponsesObject = getResponsesObject;
|
|
195
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/generator/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { CreateOpenApiExpressMiddlewareOptions, CreateOpenApiHttpHandlerOptions, CreateOpenApiNextHandlerOptions, createOpenApiExpressMiddleware, createOpenApiHttpHandler, createOpenApiNextHandler } from "./adapters";
|
|
2
|
+
import { GenerateOpenApiDocumentOptions, generateOpenApiDocument, openApiVersion } from "./generator";
|
|
3
|
+
import { OpenApiErrorResponse, OpenApiMeta, OpenApiMethod, OpenApiResponse, OpenApiRouter, OpenApiSuccessResponse } from "./types";
|
|
4
|
+
import { ZodTypeLikeString, ZodTypeLikeVoid } from "./utils/zod";
|
|
5
|
+
export { CreateOpenApiExpressMiddlewareOptions, CreateOpenApiHttpHandlerOptions, CreateOpenApiNextHandlerOptions, createOpenApiExpressMiddleware, createOpenApiHttpHandler, createOpenApiNextHandler, openApiVersion, generateOpenApiDocument, GenerateOpenApiDocumentOptions, OpenApiRouter, OpenApiMeta, OpenApiMethod, OpenApiResponse, OpenApiSuccessResponse, OpenApiErrorResponse, ZodTypeLikeString, ZodTypeLikeVoid, };
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,qCAAqC,EACrC,+BAA+B,EAC/B,+BAA+B,EAC/B,8BAA8B,EAC9B,wBAAwB,EACxB,wBAAwB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,8BAA8B,EAC9B,uBAAuB,EACvB,cAAc,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EACN,qCAAqC,EACrC,+BAA+B,EAC/B,+BAA+B,EAC/B,8BAA8B,EAC9B,wBAAwB,EACxB,wBAAwB,EACxB,cAAc,EACd,uBAAuB,EACvB,8BAA8B,EAC9B,aAAa,EACb,WAAW,EACX,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,GACf,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateOpenApiDocument = exports.openApiVersion = exports.createOpenApiNextHandler = exports.createOpenApiHttpHandler = exports.createOpenApiExpressMiddleware = void 0;
|
|
4
|
+
const adapters_1 = require("./adapters");
|
|
5
|
+
Object.defineProperty(exports, "createOpenApiExpressMiddleware", { enumerable: true, get: function () { return adapters_1.createOpenApiExpressMiddleware; } });
|
|
6
|
+
Object.defineProperty(exports, "createOpenApiHttpHandler", { enumerable: true, get: function () { return adapters_1.createOpenApiHttpHandler; } });
|
|
7
|
+
Object.defineProperty(exports, "createOpenApiNextHandler", { enumerable: true, get: function () { return adapters_1.createOpenApiNextHandler; } });
|
|
8
|
+
const generator_1 = require("./generator");
|
|
9
|
+
Object.defineProperty(exports, "generateOpenApiDocument", { enumerable: true, get: function () { return generator_1.generateOpenApiDocument; } });
|
|
10
|
+
Object.defineProperty(exports, "openApiVersion", { enumerable: true, get: function () { return generator_1.openApiVersion; } });
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAOoB;AAoBnB,+GAvBA,yCAA8B,OAuBA;AAC9B,yGAvBA,mCAAwB,OAuBA;AACxB,yGAvBA,mCAAwB,OAuBA;AArBzB,2CAIqB;AAmBpB,wGArBA,mCAAuB,OAqBA;AADvB,+FAnBA,0BAAc,OAmBA"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Procedure, ProcedureParams, Router } from '@trpc/server';
|
|
2
|
+
import type { RootConfig } from '@trpc/server/dist/core/internals/config';
|
|
3
|
+
import { TRPC_ERROR_CODE_KEY } from '@trpc/server/rpc';
|
|
4
|
+
import type { RouterDef } from '@trpc/server/src/core/router';
|
|
5
|
+
import { OpenAPIV3 } from 'openapi-types';
|
|
6
|
+
import { ZodIssue } from 'zod';
|
|
7
|
+
export type OpenApiMethod = 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE';
|
|
8
|
+
type TRPCMeta = Record<string, unknown>;
|
|
9
|
+
export type OpenApiContentType = 'application/json' | 'application/x-www-form-urlencoded' | (string & {});
|
|
10
|
+
export type OpenApiMeta<TMeta = TRPCMeta> = TMeta & {
|
|
11
|
+
openapi?: {
|
|
12
|
+
enabled?: boolean;
|
|
13
|
+
method: OpenApiMethod;
|
|
14
|
+
path: `/${string}`;
|
|
15
|
+
summary?: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
protect?: boolean;
|
|
18
|
+
tags?: string[];
|
|
19
|
+
headers?: (OpenAPIV3.ParameterBaseObject & {
|
|
20
|
+
name: string;
|
|
21
|
+
in?: 'header';
|
|
22
|
+
})[];
|
|
23
|
+
contentTypes?: OpenApiContentType[];
|
|
24
|
+
deprecated?: boolean;
|
|
25
|
+
example?: {
|
|
26
|
+
request?: Record<string, any>;
|
|
27
|
+
response?: Record<string, any>;
|
|
28
|
+
};
|
|
29
|
+
responseHeaders?: Record<string, OpenAPIV3.HeaderObject | OpenAPIV3.ReferenceObject>;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export type OpenApiProcedure<TMeta = TRPCMeta> = Procedure<'query' | 'mutation', ProcedureParams<RootConfig<{
|
|
33
|
+
transformer: any;
|
|
34
|
+
errorShape: any;
|
|
35
|
+
ctx: any;
|
|
36
|
+
meta: OpenApiMeta<TMeta>;
|
|
37
|
+
}>, any, any, any, any, any, OpenApiMeta<TMeta>>>;
|
|
38
|
+
export type OpenApiProcedureRecord<TMeta = TRPCMeta> = Record<string, OpenApiProcedure<TMeta>>;
|
|
39
|
+
export type OpenApiRouter<TMeta = TRPCMeta> = Router<RouterDef<RootConfig<{
|
|
40
|
+
transformer: any;
|
|
41
|
+
errorShape: any;
|
|
42
|
+
ctx: any;
|
|
43
|
+
meta: OpenApiMeta<TMeta>;
|
|
44
|
+
}>, any, any>>;
|
|
45
|
+
export type OpenApiSuccessResponse<D = any> = D;
|
|
46
|
+
export type OpenApiErrorResponse = {
|
|
47
|
+
message: string;
|
|
48
|
+
code: TRPC_ERROR_CODE_KEY;
|
|
49
|
+
issues?: ZodIssue[];
|
|
50
|
+
};
|
|
51
|
+
export type OpenApiResponse<D = any> = OpenApiSuccessResponse<D> | OpenApiErrorResponse;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"method.d.ts","sourceRoot":"","sources":["../../src/utils/method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,kBAAkB,WAAY,aAAa,YAKvD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.acceptsRequestBody = void 0;
|
|
4
|
+
const acceptsRequestBody = (method) => {
|
|
5
|
+
if (method === 'GET' || method === 'DELETE') {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
return true;
|
|
9
|
+
};
|
|
10
|
+
exports.acceptsRequestBody = acceptsRequestBody;
|
|
11
|
+
//# sourceMappingURL=method.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"method.js","sourceRoot":"","sources":["../../src/utils/method.ts"],"names":[],"mappings":";;;AAEO,MAAM,kBAAkB,GAAG,CAAC,MAAqB,EAAE,EAAE;IAC1D,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AALW,QAAA,kBAAkB,sBAK7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../src/utils/path.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,SAAU,MAAM,WAEzC,CAAC;AAEF,eAAO,MAAM,iBAAiB,SAAU,MAAM,aAE7C,CAAC;AAEF,eAAO,MAAM,aAAa,SAAU,MAAM,WAGzC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPathRegExp = exports.getPathParameters = exports.normalizePath = void 0;
|
|
4
|
+
const normalizePath = (path) => {
|
|
5
|
+
return `/${path.replace(/^\/|\/$/g, '')}`;
|
|
6
|
+
};
|
|
7
|
+
exports.normalizePath = normalizePath;
|
|
8
|
+
const getPathParameters = (path) => {
|
|
9
|
+
return Array.from(path.matchAll(/\{(.+?)\}/g)).map(([_, key]) => key);
|
|
10
|
+
};
|
|
11
|
+
exports.getPathParameters = getPathParameters;
|
|
12
|
+
const getPathRegExp = (path) => {
|
|
13
|
+
const groupedExp = path.replace(/\{(.+?)\}/g, (_, key) => `(?<${key}>[^/]+)`);
|
|
14
|
+
return new RegExp(`^${groupedExp}$`, 'i');
|
|
15
|
+
};
|
|
16
|
+
exports.getPathRegExp = getPathRegExp;
|
|
17
|
+
//# sourceMappingURL=path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/utils/path.ts"],"names":[],"mappings":";;;AAAO,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,EAAE;IAC5C,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;AAC5C,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AAEK,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,EAAE;IAChD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAI,CAAC,CAAC;AACzE,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B;AAEK,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,EAAE;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,GAAW,EAAE,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACtF,OAAO,IAAI,MAAM,CAAC,IAAI,UAAU,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC,CAAC;AAHW,QAAA,aAAa,iBAGxB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ProcedureType } from '@trpc/server';
|
|
2
|
+
import { AnyZodObject } from 'zod';
|
|
3
|
+
import { OpenApiMeta, OpenApiProcedure, OpenApiProcedureRecord } from '../types';
|
|
4
|
+
export declare const getInputOutputParsers: (procedure: OpenApiProcedure) => {
|
|
5
|
+
inputParser: AnyZodObject | import("@trpc/server/dist/core/parser").Parser | undefined;
|
|
6
|
+
outputParser: import("@trpc/server/dist/core/parser").Parser | undefined;
|
|
7
|
+
};
|
|
8
|
+
export declare const forEachOpenApiProcedure: (procedureRecord: OpenApiProcedureRecord, callback: (values: {
|
|
9
|
+
path: string;
|
|
10
|
+
type: ProcedureType;
|
|
11
|
+
procedure: OpenApiProcedure;
|
|
12
|
+
openapi: NonNullable<OpenApiMeta["openapi"]>;
|
|
13
|
+
}) => void) => void;
|
|
14
|
+
//# sourceMappingURL=procedure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"procedure.d.ts","sourceRoot":"","sources":["../../src/utils/procedure.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAK,MAAM,KAAK,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AASjF,eAAO,MAAM,qBAAqB,cAAe,gBAAgB;;;CAMhE,CAAC;AASF,eAAO,MAAM,uBAAuB,oBACjB,sBAAsB,YAC7B,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;CAC9C,KAAK,IAAI,SASX,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.forEachOpenApiProcedure = exports.getInputOutputParsers = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const mergeInputs = (inputParsers) => {
|
|
6
|
+
return inputParsers.reduce((acc, inputParser) => {
|
|
7
|
+
return acc.merge(inputParser);
|
|
8
|
+
}, zod_1.z.object({}));
|
|
9
|
+
};
|
|
10
|
+
// `inputParser` & `outputParser` are private so this is a hack to access it
|
|
11
|
+
const getInputOutputParsers = (procedure) => {
|
|
12
|
+
const { inputs, output } = procedure._def;
|
|
13
|
+
return {
|
|
14
|
+
inputParser: inputs.length >= 2 ? mergeInputs(inputs) : inputs[0],
|
|
15
|
+
outputParser: output,
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
exports.getInputOutputParsers = getInputOutputParsers;
|
|
19
|
+
const getProcedureType = (procedure) => {
|
|
20
|
+
if (procedure._def.query)
|
|
21
|
+
return 'query';
|
|
22
|
+
if (procedure._def.mutation)
|
|
23
|
+
return 'mutation';
|
|
24
|
+
if (procedure._def.subscription)
|
|
25
|
+
return 'subscription';
|
|
26
|
+
throw new Error('Unknown procedure type');
|
|
27
|
+
};
|
|
28
|
+
const forEachOpenApiProcedure = (procedureRecord, callback) => {
|
|
29
|
+
var _a;
|
|
30
|
+
for (const [path, procedure] of Object.entries(procedureRecord)) {
|
|
31
|
+
const { openapi } = (_a = procedure._def.meta) !== null && _a !== void 0 ? _a : {};
|
|
32
|
+
if (openapi && openapi.enabled !== false) {
|
|
33
|
+
const type = getProcedureType(procedure);
|
|
34
|
+
callback({ path, type, procedure, openapi });
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.forEachOpenApiProcedure = forEachOpenApiProcedure;
|
|
39
|
+
//# sourceMappingURL=procedure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"procedure.js","sourceRoot":"","sources":["../../src/utils/procedure.ts"],"names":[],"mappings":";;;AAEA,6BAAsC;AAItC,MAAM,WAAW,GAAG,CAAC,YAA4B,EAAgB,EAAE;IACjE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE;QAC9C,OAAO,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC;AAEF,4EAA4E;AACrE,MAAM,qBAAqB,GAAG,CAAC,SAA2B,EAAE,EAAE;IACnE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC;IAC1C,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAwB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACnF,YAAY,EAAE,MAAM;KACrB,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,qBAAqB,yBAMhC;AAEF,MAAM,gBAAgB,GAAG,CAAC,SAA2B,EAAiB,EAAE;IACtE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IACzC,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO,UAAU,CAAC;IAC/C,IAAI,SAAS,CAAC,IAAI,CAAC,YAAY;QAAE,OAAO,cAAc,CAAC;IACvD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEK,MAAM,uBAAuB,GAAG,CACrC,eAAuC,EACvC,QAKU,EACV,EAAE;;IACF,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAChE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAA,SAAS,CAAC,IAAI,CAAC,IAAI,mCAAI,EAAE,CAAC;QAC9C,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACzC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAhBW,QAAA,uBAAuB,2BAgBlC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const instanceofZodType: (type: any) => type is z.ZodTypeAny;
|
|
3
|
+
export declare const instanceofZodTypeKind: <Z extends z.ZodFirstPartyTypeKind>(type: z.ZodTypeAny, zodTypeKind: Z) => type is InstanceType<(typeof z)[Z]>;
|
|
4
|
+
export declare const instanceofZodTypeOptional: (type: z.ZodTypeAny) => type is z.ZodOptional<z.ZodTypeAny>;
|
|
5
|
+
export declare const instanceofZodTypeObject: (type: z.ZodTypeAny) => type is z.ZodObject<z.ZodRawShape>;
|
|
6
|
+
export type ZodTypeLikeVoid = z.ZodVoid | z.ZodUndefined | z.ZodNever;
|
|
7
|
+
export declare const instanceofZodTypeLikeVoid: (type: z.ZodTypeAny) => type is ZodTypeLikeVoid;
|
|
8
|
+
export declare const unwrapZodType: (type: z.ZodTypeAny, unwrapPreprocess: boolean) => z.ZodTypeAny;
|
|
9
|
+
type NativeEnumType = {
|
|
10
|
+
[k: string]: string | number;
|
|
11
|
+
[nu: number]: string;
|
|
12
|
+
};
|
|
13
|
+
export type ZodTypeLikeString = z.ZodString | z.ZodOptional<ZodTypeLikeString> | z.ZodDefault<ZodTypeLikeString> | z.ZodEffects<ZodTypeLikeString, unknown, unknown> | z.ZodUnion<[ZodTypeLikeString, ...ZodTypeLikeString[]]> | z.ZodIntersection<ZodTypeLikeString, ZodTypeLikeString> | z.ZodLazy<ZodTypeLikeString> | z.ZodLiteral<string> | z.ZodEnum<[string, ...string[]]> | z.ZodNativeEnum<NativeEnumType>;
|
|
14
|
+
export declare const instanceofZodTypeLikeString: (_type: z.ZodTypeAny) => _type is ZodTypeLikeString;
|
|
15
|
+
export declare const zodSupportsCoerce: boolean;
|
|
16
|
+
export type ZodTypeCoercible = z.ZodNumber | z.ZodBoolean | z.ZodBigInt | z.ZodDate;
|
|
17
|
+
export declare const instanceofZodTypeCoercible: (_type: z.ZodTypeAny) => _type is ZodTypeCoercible;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=zod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../src/utils/zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB,SAAU,GAAG,KAAG,IAAI,IAAI,CAAC,CAAC,UAEvD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,CAAC,CAAC,qBAAqB,QAC/D,CAAC,CAAC,UAAU,eACL,CAAC,KACb,IAAI,IAAI,YAAY,CAAC,CAAA,OAAO,CAAC,EAAC,CAAC,CAAC,CAElC,CAAC;AAEF,eAAO,MAAM,yBAAyB,SAC9B,CAAC,CAAC,UAAU,KACjB,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAEpC,CAAC;AAEF,eAAO,MAAM,uBAAuB,SAAU,CAAC,CAAC,UAAU,KAAG,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAE7F,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC;AAEtE,eAAO,MAAM,yBAAyB,SAAU,CAAC,CAAC,UAAU,KAAG,IAAI,IAAI,eAMtE,CAAC;AAEF,eAAO,MAAM,aAAa,SAAU,CAAC,CAAC,UAAU,oBAAoB,OAAO,KAAG,CAAC,CAAC,UAsB/E,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC7B,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB,CAAC,CAAC,SAAS,GACX,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAChC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAC/B,CAAC,CAAC,UAAU,CAAC,iBAAiB,EAAE,OAAO,EAAE,OAAO,CAAC,GACjD,CAAC,CAAC,QAAQ,CAAC,CAAC,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,CAAC,CAAC,GACvD,CAAC,CAAC,eAAe,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,GACvD,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAC5B,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,GACpB,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,GAChC,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;AAEpC,eAAO,MAAM,2BAA2B,UAAW,CAAC,CAAC,UAAU,KAAG,KAAK,IAAI,iBA0B1E,CAAC;AAEF,eAAO,MAAM,iBAAiB,SAAgB,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC;AAEpF,eAAO,MAAM,0BAA0B,UAAW,CAAC,CAAC,UAAU,KAAG,KAAK,IAAI,gBAQzE,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.instanceofZodTypeCoercible = exports.zodSupportsCoerce = exports.instanceofZodTypeLikeString = exports.unwrapZodType = exports.instanceofZodTypeLikeVoid = exports.instanceofZodTypeObject = exports.instanceofZodTypeOptional = exports.instanceofZodTypeKind = exports.instanceofZodType = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const instanceofZodType = (type) => {
|
|
6
|
+
var _a;
|
|
7
|
+
return !!((_a = type === null || type === void 0 ? void 0 : type._def) === null || _a === void 0 ? void 0 : _a.typeName);
|
|
8
|
+
};
|
|
9
|
+
exports.instanceofZodType = instanceofZodType;
|
|
10
|
+
const instanceofZodTypeKind = (type, zodTypeKind) => {
|
|
11
|
+
var _a;
|
|
12
|
+
return ((_a = type === null || type === void 0 ? void 0 : type._def) === null || _a === void 0 ? void 0 : _a.typeName) === zodTypeKind;
|
|
13
|
+
};
|
|
14
|
+
exports.instanceofZodTypeKind = instanceofZodTypeKind;
|
|
15
|
+
const instanceofZodTypeOptional = (type) => {
|
|
16
|
+
return (0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodOptional);
|
|
17
|
+
};
|
|
18
|
+
exports.instanceofZodTypeOptional = instanceofZodTypeOptional;
|
|
19
|
+
const instanceofZodTypeObject = (type) => {
|
|
20
|
+
return (0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodObject);
|
|
21
|
+
};
|
|
22
|
+
exports.instanceofZodTypeObject = instanceofZodTypeObject;
|
|
23
|
+
const instanceofZodTypeLikeVoid = (type) => {
|
|
24
|
+
return ((0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodVoid) ||
|
|
25
|
+
(0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodUndefined) ||
|
|
26
|
+
(0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodNever));
|
|
27
|
+
};
|
|
28
|
+
exports.instanceofZodTypeLikeVoid = instanceofZodTypeLikeVoid;
|
|
29
|
+
const unwrapZodType = (type, unwrapPreprocess) => {
|
|
30
|
+
if ((0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodOptional)) {
|
|
31
|
+
return (0, exports.unwrapZodType)(type.unwrap(), unwrapPreprocess);
|
|
32
|
+
}
|
|
33
|
+
if ((0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodDefault)) {
|
|
34
|
+
return (0, exports.unwrapZodType)(type.removeDefault(), unwrapPreprocess);
|
|
35
|
+
}
|
|
36
|
+
if ((0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodLazy)) {
|
|
37
|
+
return (0, exports.unwrapZodType)(type._def.getter(), unwrapPreprocess);
|
|
38
|
+
}
|
|
39
|
+
if ((0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodEffects)) {
|
|
40
|
+
if (type._def.effect.type === 'refinement') {
|
|
41
|
+
return (0, exports.unwrapZodType)(type._def.schema, unwrapPreprocess);
|
|
42
|
+
}
|
|
43
|
+
if (type._def.effect.type === 'transform') {
|
|
44
|
+
return (0, exports.unwrapZodType)(type._def.schema, unwrapPreprocess);
|
|
45
|
+
}
|
|
46
|
+
if (unwrapPreprocess && type._def.effect.type === 'preprocess') {
|
|
47
|
+
return (0, exports.unwrapZodType)(type._def.schema, unwrapPreprocess);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return type;
|
|
51
|
+
};
|
|
52
|
+
exports.unwrapZodType = unwrapZodType;
|
|
53
|
+
const instanceofZodTypeLikeString = (_type) => {
|
|
54
|
+
const type = (0, exports.unwrapZodType)(_type, false);
|
|
55
|
+
if ((0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodEffects)) {
|
|
56
|
+
if (type._def.effect.type === 'preprocess') {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if ((0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodUnion)) {
|
|
61
|
+
return !type._def.options.some((option) => !(0, exports.instanceofZodTypeLikeString)(option));
|
|
62
|
+
}
|
|
63
|
+
if ((0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodIntersection)) {
|
|
64
|
+
return ((0, exports.instanceofZodTypeLikeString)(type._def.left) && (0, exports.instanceofZodTypeLikeString)(type._def.right));
|
|
65
|
+
}
|
|
66
|
+
if ((0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodLiteral)) {
|
|
67
|
+
return typeof type._def.value === 'string';
|
|
68
|
+
}
|
|
69
|
+
if ((0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodEnum)) {
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
if ((0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodNativeEnum)) {
|
|
73
|
+
return !Object.values(type._def.values).some((value) => typeof value === 'number');
|
|
74
|
+
}
|
|
75
|
+
return (0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodString);
|
|
76
|
+
};
|
|
77
|
+
exports.instanceofZodTypeLikeString = instanceofZodTypeLikeString;
|
|
78
|
+
exports.zodSupportsCoerce = 'coerce' in zod_1.z;
|
|
79
|
+
const instanceofZodTypeCoercible = (_type) => {
|
|
80
|
+
const type = (0, exports.unwrapZodType)(_type, false);
|
|
81
|
+
return ((0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodNumber) ||
|
|
82
|
+
(0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodBoolean) ||
|
|
83
|
+
(0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodBigInt) ||
|
|
84
|
+
(0, exports.instanceofZodTypeKind)(type, zod_1.z.ZodFirstPartyTypeKind.ZodDate));
|
|
85
|
+
};
|
|
86
|
+
exports.instanceofZodTypeCoercible = instanceofZodTypeCoercible;
|
|
87
|
+
//# sourceMappingURL=zod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod.js","sourceRoot":"","sources":["../../src/utils/zod.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "with-express",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"scripts": {
|
|
6
|
+
"dev": "ts-node-dev --respawn --transpile-only --exit-child ./src/index.ts"
|
|
7
|
+
},
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"@trpc/server": "^10.27.1",
|
|
10
|
+
"cors": "^2.8.5",
|
|
11
|
+
"express": "^4.18.2",
|
|
12
|
+
"jsonwebtoken": "^9.0.0",
|
|
13
|
+
"swagger-ui-express": "^4.6.3",
|
|
14
|
+
"uuid": "^9.0.0",
|
|
15
|
+
"zod": "^3.21.4"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"@types/cors": "^2.8.13",
|
|
19
|
+
"@types/express": "^4.17.17",
|
|
20
|
+
"@types/jsonwebtoken": "^9.0.2",
|
|
21
|
+
"@types/node": "^20.2.3",
|
|
22
|
+
"@types/swagger-ui-express": "^4.1.3",
|
|
23
|
+
"@types/uuid": "^9.0.1",
|
|
24
|
+
"ts-node": "^10.9.1",
|
|
25
|
+
"ts-node-dev": "^2.0.0",
|
|
26
|
+
"typescript": "^5.0.4"
|
|
27
|
+
}
|
|
28
|
+
}
|