@dokploy/trpc-openapi 0.0.1 → 0.0.3
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/dist/generator/paths.d.ts.map +1 -1
- package/dist/generator/paths.js +2 -2
- package/dist/generator/paths.js.map +1 -1
- package/dist/generator/schema.d.ts.map +1 -1
- package/dist/generator/schema.js +3 -13
- package/dist/generator/schema.js.map +1 -1
- package/dist/types.d.ts +12 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/procedure.d.ts +4 -3
- package/dist/utils/procedure.d.ts.map +1 -1
- package/dist/utils/procedure.js +29 -7
- package/dist/utils/procedure.js.map +1 -1
- package/package.json +14 -9
- package/assets/trpc-openapi-graph.png +0 -0
- package/assets/trpc-openapi-readme.png +0 -0
- package/assets/trpc-openapi.svg +0 -4
- package/examples/with-express/README.md +0 -11
- package/examples/with-express/package.json +0 -28
- package/examples/with-express/src/database.ts +0 -67
- package/examples/with-express/src/index.ts +0 -27
- package/examples/with-express/src/openapi.ts +0 -13
- package/examples/with-express/src/router.ts +0 -424
- package/examples/with-express/tsconfig.json +0 -102
- package/examples/with-interop/README.md +0 -10
- package/examples/with-interop/package.json +0 -13
- package/examples/with-interop/src/index.ts +0 -17
- package/examples/with-interop/tsconfig.json +0 -103
- package/examples/with-nextjs/.eslintrc.json +0 -3
- package/examples/with-nextjs/README.md +0 -12
- package/examples/with-nextjs/next-env.d.ts +0 -5
- package/examples/with-nextjs/next.config.js +0 -6
- package/examples/with-nextjs/package.json +0 -33
- package/examples/with-nextjs/public/favicon.ico +0 -0
- package/examples/with-nextjs/src/pages/_app.tsx +0 -7
- package/examples/with-nextjs/src/pages/api/[...trpc].ts +0 -18
- package/examples/with-nextjs/src/pages/api/openapi.json.ts +0 -10
- package/examples/with-nextjs/src/pages/api/trpc/[...trpc].ts +0 -9
- package/examples/with-nextjs/src/pages/index.tsx +0 -12
- package/examples/with-nextjs/src/server/database.ts +0 -67
- package/examples/with-nextjs/src/server/openapi.ts +0 -13
- package/examples/with-nextjs/src/server/router.ts +0 -426
- package/examples/with-nextjs/tsconfig.json +0 -24
- package/jest.config.ts +0 -12
- package/pnpm-workspace.yaml +0 -7
- package/src/adapters/express.ts +0 -20
- package/src/adapters/index.ts +0 -3
- package/src/adapters/next.ts +0 -64
- package/src/adapters/node-http/core.ts +0 -203
- package/src/adapters/node-http/errors.ts +0 -45
- package/src/adapters/node-http/input.ts +0 -76
- package/src/adapters/node-http/procedures.ts +0 -64
- package/src/adapters/standalone.ts +0 -19
- package/src/generator/index.ts +0 -51
- package/src/generator/paths.ts +0 -127
- package/src/generator/schema.ts +0 -238
- package/src/index.ts +0 -42
- package/src/types.ts +0 -79
- package/src/utils/method.ts +0 -8
- package/src/utils/path.ts +0 -12
- package/src/utils/procedure.ts +0 -45
- package/src/utils/zod.ts +0 -115
- package/test/adapters/express.test.ts +0 -150
- package/test/adapters/next.test.ts +0 -162
- package/test/adapters/standalone.test.ts +0 -1335
- package/test/generator.test.ts +0 -2897
- package/tsconfig.build.json +0 -4
- package/tsconfig.eslint.json +0 -5
- package/tsconfig.json +0 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/generator/paths.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAA0B,aAAa,EAAE,MAAM,UAAU,CAAC;AAajE,eAAO,MAAM,qBAAqB,cACtB,aAAa,uBACH,MAAM,EAAE,KAC3B,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/generator/paths.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAA0B,aAAa,EAAE,MAAM,UAAU,CAAC;AAajE,eAAO,MAAM,qBAAqB,cACtB,aAAa,uBACH,MAAM,EAAE,KAC3B,SAAS,CAAC,WA0GZ,CAAC"}
|
package/dist/generator/paths.js
CHANGED
|
@@ -45,7 +45,7 @@ const getOpenApiPathsObject = (appRouter, securitySchemeNames) => {
|
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
47
|
const { inputParser, outputParser } = (0, procedure_1.getInputOutputParsers)(procedure);
|
|
48
|
-
pathsObject[path] = Object.assign(Object.assign({}, pathsObject[path]), { [httpMethod]: Object.assign(Object.assign({ operationId: procedurePath.replace(/\./g, "-"), summary,
|
|
48
|
+
pathsObject[path] = Object.assign(Object.assign({}, pathsObject[path]), { [httpMethod]: Object.assign(Object.assign(Object.assign({ operationId: procedurePath.replace(/\./g, "-"), summary,
|
|
49
49
|
description, tags: tags, security: protect
|
|
50
50
|
? securitySchemeNames.map((name) => ({ [name]: [] }))
|
|
51
51
|
: undefined }, ((0, method_1.acceptsRequestBody)(method)
|
|
@@ -62,7 +62,7 @@ const getOpenApiPathsObject = (appRouter, securitySchemeNames) => {
|
|
|
62
62
|
...headerParameters,
|
|
63
63
|
...((0, schema_1.getParameterObjects)(inputParser, pathParameters, "all", (_d = openapi.example) === null || _d === void 0 ? void 0 : _d.request) || []),
|
|
64
64
|
],
|
|
65
|
-
})), { responses: (0, schema_1.getResponsesObject)(outputParser, (_e = openapi.example) === null || _e === void 0 ? void 0 : _e.response, openapi.responseHeaders) }) });
|
|
65
|
+
})), { responses: (0, schema_1.getResponsesObject)(outputParser, (_e = openapi.example) === null || _e === void 0 ? void 0 : _e.response, openapi.responseHeaders) }), (openapi.deprecated ? { deprecated: openapi.deprecated } : {})) });
|
|
66
66
|
}
|
|
67
67
|
catch (error) {
|
|
68
68
|
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/generator/paths.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AACzC,iDAA0C;AAG1C,4CAAqD;AACrD,wCAAiE;AACjE,kDAG4B;AAC5B,qCAIkB;AAEX,MAAM,qBAAqB,GAAG,CACpC,SAAwB,EACxB,mBAA6B,EACL,EAAE;IAC1B,MAAM,WAAW,GAA0B,EAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,UAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/generator/paths.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AACzC,iDAA0C;AAG1C,4CAAqD;AACrD,wCAAiE;AACjE,kDAG4B;AAC5B,qCAIkB;AAEX,MAAM,qBAAqB,GAAG,CACpC,SAAwB,EACxB,mBAA6B,EACL,EAAE;IAC1B,MAAM,WAAW,GAA0B,EAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,UAAoC,CAAC;IACvE,IAAA,mCAAuB,EACtB,UAAU,EACV,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;;QACrD,MAAM,aAAa,GAAG,GAAG,IAAI,IAAI,aAAa,EAAE,CAAC;QAEjD,IAAI,CAAC;YACJ,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC7B,MAAM,IAAI,kBAAS,CAAC;oBACnB,OAAO,EAAE,+CAA+C;oBACxD,IAAI,EAAE,uBAAuB;iBAC7B,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAC7D,OAAO,CAAC;YAET,MAAM,IAAI,GAAG,IAAA,oBAAa,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,gBAAgB,GACrB,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,iCAAM,MAAM,KAAE,EAAE,EAAE,QAAQ,IAAG,CAAC,KAAI,EAAE,CAAC;YAE/D,MAAM,UAAU,GAAG,yBAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,MAAM,IAAI,kBAAS,CAAC;oBACnB,OAAO,EAAE,gDAAgD;oBACzD,IAAI,EAAE,uBAAuB;iBAC7B,CAAC,CAAC;YACJ,CAAC;YAED,IAAI,MAAA,WAAW,CAAC,IAAI,CAAC,0CAAG,UAAU,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,kBAAS,CAAC;oBACnB,OAAO,EAAE,yCAAyC,MAAM,IAAI,IAAI,EAAE;oBAClE,IAAI,EAAE,uBAAuB;iBAC7B,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAClE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,kBAAS,CAAC;oBACnB,OAAO,EAAE,6CAA6C;oBACtD,IAAI,EAAE,uBAAuB;iBAC7B,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAA,iCAAqB,EAAC,SAAS,CAAC,CAAC;YAEvE,WAAW,CAAC,IAAI,CAAC,mCACb,WAAW,CAAC,IAAI,CAAC,KACpB,CAAC,UAAU,CAAC,8CACX,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAC9C,OAAO;oBACP,WAAW,EACX,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,OAAO;wBAChB,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;wBACrD,CAAC,CAAC,SAAS,IACT,CAAC,IAAA,2BAAkB,EAAC,MAAM,CAAC;oBAC7B,CAAC,CAAC;wBACA,WAAW,EAAE,IAAA,6BAAoB,EAChC,WAAW,EACX,cAAc,EACd,YAAY,EACZ,MAAA,OAAO,CAAC,OAAO,0CAAE,OAAO,CACxB;wBACD,UAAU,EAAE;4BACX,GAAG,gBAAgB;4BACnB,GAAG,CAAC,IAAA,4BAAmB,EACtB,WAAW,EACX,cAAc,EACd,MAAM,EACN,MAAA,OAAO,CAAC,OAAO,0CAAE,OAAO,CACxB,IAAI,EAAE,CAAC;yBACR;qBACD;oBACF,CAAC,CAAC;wBACA,WAAW,EAAE,SAAS;wBACtB,UAAU,EAAE;4BACX,GAAG,gBAAgB;4BACnB,GAAG,CAAC,IAAA,4BAAmB,EACtB,WAAW,EACX,cAAc,EACd,KAAK,EACL,MAAA,OAAO,CAAC,OAAO,0CAAE,OAAO,CACxB,IAAI,EAAE,CAAC;yBACR;qBACD,CAAC,KACJ,SAAS,EAAE,IAAA,2BAAkB,EAC5B,YAAY,EACZ,MAAA,OAAO,CAAC,OAAO,0CAAE,QAAQ,EACzB,OAAO,CAAC,eAAe,CACvB,KACE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAElE,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,4EAA4E;YAC5E,KAAK,CAAC,OAAO,GAAG,IAAI,aAAa,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;YACxD,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC,CACD,CAAC;IAEF,OAAO,WAAW,CAAC;AACpB,CAAC,CAAC;AA7GW,QAAA,qBAAqB,yBA6GhC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/generator/schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAsB9C,eAAO,MAAM,mBAAmB,kBAChB,OAAO,kBACN,MAAM,EAAE,UAChB,KAAK,GAAG,MAAM,GAAG,OAAO,WACvB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,KACtC,SAAS,CAAC,eAAe,EAAE,GAAG,SAoFhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,kBACjB,OAAO,kBACN,MAAM,EAAE,gBACV,kBAAkB,EAAE,WACzB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,KACtC,SAAS,CAAC,iBAAiB,GAAG,SA2DhC,CAAC;AACF,eAAO,MAAM,mBAAmB,EAAE,SAAS,CAAC,cAa3C,CAAC;AAEF,eAAO,MAAM,kBAAkB,WACtB,OAAO,WACN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,WAErC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,eAAe,CAAC,GAClE,SAAS,KACV,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/generator/schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAsB9C,eAAO,MAAM,mBAAmB,kBAChB,OAAO,kBACN,MAAM,EAAE,UAChB,KAAK,GAAG,MAAM,GAAG,OAAO,WACvB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,KACtC,SAAS,CAAC,eAAe,EAAE,GAAG,SAoFhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,kBACjB,OAAO,kBACN,MAAM,EAAE,gBACV,kBAAkB,EAAE,WACzB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,KACtC,SAAS,CAAC,iBAAiB,GAAG,SA2DhC,CAAC;AACF,eAAO,MAAM,mBAAmB,EAAE,SAAS,CAAC,cAa3C,CAAC;AAEF,eAAO,MAAM,kBAAkB,WACtB,OAAO,WACN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,WAErC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,eAAe,CAAC,GAClE,SAAS,KACV,SAAS,CAAC,eAoBZ,CAAC"}
|
package/dist/generator/schema.js
CHANGED
|
@@ -28,7 +28,7 @@ const zodSchemaToOpenApiSchemaObject = (zodSchema) => {
|
|
|
28
28
|
});
|
|
29
29
|
};
|
|
30
30
|
const getParameterObjects = (currentSchema, pathParameters, inType, example) => {
|
|
31
|
-
const schema = currentSchema
|
|
31
|
+
const schema = currentSchema || zod_1.z.void();
|
|
32
32
|
const isRequired = !schema.isOptional();
|
|
33
33
|
const unwrappedSchema = (0, zod_2.unwrapZodType)(schema, true);
|
|
34
34
|
if (pathParameters.length === 0 &&
|
|
@@ -110,7 +110,7 @@ const getRequestBodyObject = (currentSchema, pathParameters, contentTypes, examp
|
|
|
110
110
|
// code: "INTERNAL_SERVER_ERROR",
|
|
111
111
|
// });
|
|
112
112
|
// }
|
|
113
|
-
const schema = currentSchema
|
|
113
|
+
const schema = currentSchema || zod_1.z.void();
|
|
114
114
|
const isRequired = !schema.isOptional();
|
|
115
115
|
const unwrappedSchema = (0, zod_2.unwrapZodType)(schema, true);
|
|
116
116
|
if (pathParameters.length === 0 &&
|
|
@@ -165,25 +165,15 @@ exports.errorResponseObject = {
|
|
|
165
165
|
},
|
|
166
166
|
};
|
|
167
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
168
|
const successResponseObject = {
|
|
176
169
|
description: "Successful response",
|
|
177
170
|
headers: headers,
|
|
178
171
|
content: {
|
|
179
172
|
"application/json": Object.assign(Object.assign({}, (schema && {
|
|
180
173
|
schema: zodSchemaToOpenApiSchemaObject(schema),
|
|
181
|
-
})), {
|
|
182
|
-
// schema: zodSchemaToOpenApiSchemaObject(schema),
|
|
183
|
-
example }),
|
|
174
|
+
})), { example }),
|
|
184
175
|
},
|
|
185
176
|
};
|
|
186
|
-
// console.log(zodSchemaToOpenApiSchemaObject(schema));
|
|
187
177
|
return {
|
|
188
178
|
200: successResponseObject,
|
|
189
179
|
default: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/generator/schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,cAAc;AACd,yCAAyC;AAEzC,6BAAwB;AACxB,4EAAiD;AAGjD,sCASsB;AAEtB,MAAM,8BAA8B,GAAG,CACtC,SAAoB,EACK,EAAE;IAC3B,uEAAuE;IACvE,OAAO,IAAA,4BAAe,EAAC,SAAS,EAAE;QACjC,MAAM,EAAE,UAAU;QAClB,YAAY,EAAE,MAAM;KACpB,CAAQ,CAAC;AACX,CAAC,CAAC;AAEK,MAAM,mBAAmB,GAAG,CAClC,aAAsB,EACtB,cAAwB,EACxB,MAAgC,EAChC,OAAwC,EACE,EAAE;IAC5C,MAAM,MAAM,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/generator/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { Procedure, ProcedureParams, Router } from
|
|
2
|
-
import type { RootConfig } from
|
|
3
|
-
import { TRPC_ERROR_CODE_KEY } from
|
|
4
|
-
import type { RouterDef } from
|
|
5
|
-
import { OpenAPIV3 } from
|
|
6
|
-
import { ZodIssue } from
|
|
7
|
-
export type OpenApiMethod =
|
|
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
8
|
type TRPCMeta = Record<string, unknown>;
|
|
9
|
-
export type OpenApiContentType =
|
|
9
|
+
export type OpenApiContentType = "application/json" | "application/x-www-form-urlencoded" | (string & {});
|
|
10
10
|
export type OpenApiMeta<TMeta = TRPCMeta> = TMeta & {
|
|
11
11
|
openapi?: {
|
|
12
|
+
override?: boolean;
|
|
13
|
+
additional?: boolean;
|
|
12
14
|
enabled?: boolean;
|
|
13
15
|
method: OpenApiMethod;
|
|
14
16
|
path: `/${string}`;
|
|
@@ -18,7 +20,7 @@ export type OpenApiMeta<TMeta = TRPCMeta> = TMeta & {
|
|
|
18
20
|
tags?: string[];
|
|
19
21
|
headers?: (OpenAPIV3.ParameterBaseObject & {
|
|
20
22
|
name: string;
|
|
21
|
-
in?:
|
|
23
|
+
in?: "header";
|
|
22
24
|
})[];
|
|
23
25
|
contentTypes?: OpenApiContentType[];
|
|
24
26
|
deprecated?: boolean;
|
|
@@ -29,7 +31,7 @@ export type OpenApiMeta<TMeta = TRPCMeta> = TMeta & {
|
|
|
29
31
|
responseHeaders?: Record<string, OpenAPIV3.HeaderObject | OpenAPIV3.ReferenceObject>;
|
|
30
32
|
};
|
|
31
33
|
};
|
|
32
|
-
export type OpenApiProcedure<TMeta = TRPCMeta> = Procedure<
|
|
34
|
+
export type OpenApiProcedure<TMeta = TRPCMeta> = Procedure<"query" | "mutation", ProcedureParams<RootConfig<{
|
|
33
35
|
transformer: any;
|
|
34
36
|
errorShape: any;
|
|
35
37
|
ctx: any;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAE/B,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAExE,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAExC,MAAM,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { ProcedureType } from
|
|
2
|
-
import { AnyZodObject } from
|
|
3
|
-
import { OpenApiMeta, OpenApiProcedure, OpenApiProcedureRecord } from
|
|
1
|
+
import { ProcedureType } from "@trpc/server";
|
|
2
|
+
import { AnyZodObject } from "zod";
|
|
3
|
+
import { OpenApiMeta, OpenApiMethod, OpenApiProcedure, OpenApiProcedureRecord } from "../types";
|
|
4
4
|
export declare const getInputOutputParsers: (procedure: OpenApiProcedure) => {
|
|
5
5
|
inputParser: AnyZodObject | import("@trpc/server/dist/core/parser").Parser | undefined;
|
|
6
6
|
outputParser: import("@trpc/server/dist/core/parser").Parser | undefined;
|
|
7
7
|
};
|
|
8
|
+
export declare const getMethod: (procedure: OpenApiProcedure) => OpenApiMethod;
|
|
8
9
|
export declare const forEachOpenApiProcedure: (procedureRecord: OpenApiProcedureRecord, callback: (values: {
|
|
9
10
|
path: string;
|
|
10
11
|
type: ProcedureType;
|
|
@@ -1 +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,
|
|
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,EACN,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,MAAM,UAAU,CAAC;AASlB,eAAO,MAAM,qBAAqB,cAAe,gBAAgB;;;CAOhE,CAAC;AASF,eAAO,MAAM,SAAS,cAAe,gBAAgB,KAAG,aAEvD,CAAC;AAEF,eAAO,MAAM,uBAAuB,oBAClB,sBAAsB,YAC7B,CAAC,MAAM,EAAE;IAClB,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;CAC7C,KAAK,IAAI,SA2BV,CAAC"}
|
package/dist/utils/procedure.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.forEachOpenApiProcedure = exports.getInputOutputParsers = void 0;
|
|
3
|
+
exports.forEachOpenApiProcedure = exports.getMethod = exports.getInputOutputParsers = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const mergeInputs = (inputParsers) => {
|
|
6
6
|
return inputParsers.reduce((acc, inputParser) => {
|
|
@@ -18,19 +18,41 @@ const getInputOutputParsers = (procedure) => {
|
|
|
18
18
|
exports.getInputOutputParsers = getInputOutputParsers;
|
|
19
19
|
const getProcedureType = (procedure) => {
|
|
20
20
|
if (procedure._def.query)
|
|
21
|
-
return
|
|
21
|
+
return "query";
|
|
22
22
|
if (procedure._def.mutation)
|
|
23
|
-
return
|
|
23
|
+
return "mutation";
|
|
24
24
|
if (procedure._def.subscription)
|
|
25
|
-
return
|
|
26
|
-
throw new Error(
|
|
25
|
+
return "subscription";
|
|
26
|
+
throw new Error("Unknown procedure type");
|
|
27
27
|
};
|
|
28
|
+
const getMethod = (procedure) => {
|
|
29
|
+
return getProcedureType(procedure) === "query" ? "GET" : "POST";
|
|
30
|
+
};
|
|
31
|
+
exports.getMethod = getMethod;
|
|
28
32
|
const forEachOpenApiProcedure = (procedureRecord, callback) => {
|
|
29
|
-
var _a;
|
|
33
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
30
34
|
for (const [path, procedure] of Object.entries(procedureRecord)) {
|
|
31
|
-
const
|
|
35
|
+
const additional = (_c = (_b = (_a = procedure._def.meta) === null || _a === void 0 ? void 0 : _a.openapi) === null || _b === void 0 ? void 0 : _b.additional) !== null && _c !== void 0 ? _c : false;
|
|
36
|
+
const override = (_f = (_e = (_d = procedure._def.meta) === null || _d === void 0 ? void 0 : _d.openapi) === null || _e === void 0 ? void 0 : _e.override) !== null && _f !== void 0 ? _f : false;
|
|
37
|
+
const defaultOpenApiMeta = {
|
|
38
|
+
method: (0, exports.getMethod)(procedure),
|
|
39
|
+
path: path,
|
|
40
|
+
enabled: true,
|
|
41
|
+
tags: [path.split(".")[0]],
|
|
42
|
+
};
|
|
43
|
+
let openapi;
|
|
44
|
+
if (override) {
|
|
45
|
+
openapi = Object.assign({}, (_g = procedure._def.meta) === null || _g === void 0 ? void 0 : _g.openapi);
|
|
46
|
+
}
|
|
47
|
+
else if (additional) {
|
|
48
|
+
openapi = Object.assign(Object.assign({}, defaultOpenApiMeta), (_h = procedure._def.meta) === null || _h === void 0 ? void 0 : _h.openapi);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
openapi = Object.assign(Object.assign({}, (_j = procedure._def.meta) === null || _j === void 0 ? void 0 : _j.openapi), defaultOpenApiMeta);
|
|
52
|
+
}
|
|
32
53
|
if (openapi && openapi.enabled !== false) {
|
|
33
54
|
const type = getProcedureType(procedure);
|
|
55
|
+
// @ts-ignore
|
|
34
56
|
callback({ path, type, procedure, openapi });
|
|
35
57
|
}
|
|
36
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"procedure.js","sourceRoot":"","sources":["../../src/utils/procedure.ts"],"names":[],"mappings":";;;AAEA,6BAAsC;
|
|
1
|
+
{"version":3,"file":"procedure.js","sourceRoot":"","sources":["../../src/utils/procedure.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dokploy/trpc-openapi",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "tRPC OpenAPI",
|
|
5
5
|
"author": "Mauricio Siu <siumauricio@hotmail.com>",
|
|
6
6
|
"private": false,
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
"openapi",
|
|
14
14
|
"swagger"
|
|
15
15
|
],
|
|
16
|
-
"homepage": "https://github.com/
|
|
17
|
-
"repository": "github:
|
|
18
|
-
"bugs": "https://github.com/
|
|
16
|
+
"homepage": "https://github.com/dokploy/trpc-openapi",
|
|
17
|
+
"repository": "github:dokploy/trpc-openapi",
|
|
18
|
+
"bugs": "https://github.com/dokploy/trpc-openapi/issues",
|
|
19
19
|
"main": "dist/index.js",
|
|
20
20
|
"typings": "dist/index.d.ts",
|
|
21
21
|
"workspaces": [
|
|
@@ -24,6 +24,15 @@
|
|
|
24
24
|
"examples/with-express",
|
|
25
25
|
"examples/with-interop"
|
|
26
26
|
],
|
|
27
|
+
"files": [
|
|
28
|
+
"dist",
|
|
29
|
+
"README.md",
|
|
30
|
+
"LICENSE"
|
|
31
|
+
],
|
|
32
|
+
"scripts": {
|
|
33
|
+
"test": "tsc --noEmit && jest --verbose",
|
|
34
|
+
"build": "rimraf dist && tsc -p tsconfig.build.json"
|
|
35
|
+
},
|
|
27
36
|
"peerDependencies": {
|
|
28
37
|
"@trpc/server": "^10.0.0",
|
|
29
38
|
"zod": "^3.14.4"
|
|
@@ -66,9 +75,5 @@
|
|
|
66
75
|
"ts-jest": "^29.1.0",
|
|
67
76
|
"ts-node": "^10.9.1",
|
|
68
77
|
"typescript": "^5.0.4"
|
|
69
|
-
},
|
|
70
|
-
"scripts": {
|
|
71
|
-
"test": "tsc --noEmit && jest --verbose",
|
|
72
|
-
"build": "rimraf dist && tsc -p tsconfig.build.json"
|
|
73
78
|
}
|
|
74
|
-
}
|
|
79
|
+
}
|
|
Binary file
|
|
Binary file
|
package/assets/trpc-openapi.svg
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
<svg width="125" height="125" viewBox="0 0 125 125" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M125 62.5C125 97.0178 97.0178 125 62.5 125C27.9822 125 0 97.0178 0 62.5C0 27.9822 27.9822 0 62.5 0C97.0178 0 125 27.9822 125 62.5ZM62 17.2672L80.7143 27.764V35.3077L99 44.5385V61.5685L106 65.4948V86.736L87.2857 97.2328L82.8617 94.7514L61.9649 106.791L41.6747 94.771L37.2857 97.2328L18.5714 86.736V65.4948L25 61.889V44.5385L43.2857 35.3077V27.764L62 17.2672ZM35 50.6923L43.2857 46.5096V49.0052L62 59.502L80.7143 49.0052V46.5096L89 50.6923V55.9595L87.2857 54.998L68.5714 65.4948V86.736L72.7116 89.0582L62.0351 95.2093L51.7528 89.1183L56 86.736V65.4948L37.2857 54.9979L35 56.28V50.6923ZM83.7922 68.4231L87.2857 66.4636L90.7792 68.4231L87.2857 70.3826L83.7922 68.4231ZM92.2857 79.0437L96 76.9604V80.8794L92.2857 82.9627V79.0437ZM82.2857 79.0437V82.9627L78.5714 80.8794V76.9604L82.2857 79.0437ZM46 80.8794L42.2857 82.9627V79.0437L46 76.9604V80.8794ZM40.7792 68.4231L37.2857 70.3826L33.7922 68.4231L37.2857 66.4636L40.7792 68.4231ZM28.5714 76.9604L32.2857 79.0437V82.9627L28.5714 80.8794V76.9604ZM57 45.2319L53.2857 43.1486V39.2296L57 41.3129V45.2319ZM62 32.6518L58.5065 30.6923L62 28.7328L65.4935 30.6923L62 32.6518ZM67 41.3129L70.7143 39.2296V43.1486L67 45.2319V41.3129Z" fill="#8FCE0B"/>
|
|
3
|
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M62 21.2802L77.2143 29.8138V37.4615L95.5 46.6923V63.6183L102.5 67.5446V84.6862L87.2857 93.2198L82.8385 90.7254L61.9895 102.737L41.7224 90.7313L37.2857 93.2198L22.0714 84.6862V67.5446L28.5 63.9388V46.6923L46.7857 37.4615V29.8138L62 21.2802ZM46.7857 40.8221L31.5 48.5385V62.2561L37.2857 59.0109L52.5 67.5446V84.6862L44.7458 89.0355L62.0105 99.2628L79.7935 89.0175L72.0714 84.6862V67.5446L87.2857 59.0109L92.5 61.9356V48.5385L77.2143 40.8221V46.9554L62 55.4891L46.7857 46.9554V40.8221ZM49.7857 33.2535L60.5 39.2631V51.208L49.7857 45.1984V33.2535ZM63.5 51.208L74.2143 45.1984V33.2535L63.5 39.2631V51.208ZM62 36.6648L72.648 30.6923L62 24.7198L51.352 30.6923L62 36.6648ZM25.0714 70.9843L35.7857 76.9939V88.9388L25.0714 82.9292V70.9843ZM38.7857 88.9388L49.5 82.9292V70.9843L38.7857 76.9939V88.9388ZM37.2857 74.3955L47.9338 68.4231L37.2857 62.4506L26.6377 68.4231L37.2857 74.3955ZM75.0714 70.9843L85.7857 76.9939V88.9388L75.0714 82.9292V70.9843ZM88.7857 88.9388L99.5 82.9292V70.9843L88.7857 76.9939V88.9388ZM87.2857 74.3955L97.9338 68.4231L87.2857 62.4506L76.6377 68.4231L87.2857 74.3955Z" fill="#4B5A30" stroke="#4B5A30" stroke-width="1.5"/>
|
|
4
|
-
</svg>
|
|
@@ -1,28 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
export type User = {
|
|
2
|
-
id: string;
|
|
3
|
-
email: string;
|
|
4
|
-
passcode: number;
|
|
5
|
-
name: string;
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
export type Post = {
|
|
9
|
-
id: string;
|
|
10
|
-
content: string;
|
|
11
|
-
userId: string;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export const database: { users: User[]; posts: Post[] } = {
|
|
15
|
-
users: [
|
|
16
|
-
{
|
|
17
|
-
id: '3dcb4a1f-0c91-42c5-834f-26d227c532e2',
|
|
18
|
-
email: 'jb@jamesbe.com',
|
|
19
|
-
passcode: 1234,
|
|
20
|
-
name: 'James',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
id: 'ea120573-2eb4-495e-be48-1b2debac2640',
|
|
24
|
-
email: 'alex@example.com',
|
|
25
|
-
passcode: 9876,
|
|
26
|
-
name: 'Alex',
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
id: '2ee1c07c-7537-48f5-b5d8-8740e165cd62',
|
|
30
|
-
email: 'sachin@example.com',
|
|
31
|
-
passcode: 5678,
|
|
32
|
-
name: 'Sachin',
|
|
33
|
-
},
|
|
34
|
-
],
|
|
35
|
-
posts: [
|
|
36
|
-
{
|
|
37
|
-
id: 'fc206d47-6d50-4b6a-9779-e9eeaee59aa4',
|
|
38
|
-
content: 'Hello world',
|
|
39
|
-
userId: '3dcb4a1f-0c91-42c5-834f-26d227c532e2',
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
id: 'a10479a2-a397-441e-b451-0b649d15cfd6',
|
|
43
|
-
content: 'tRPC is so awesome',
|
|
44
|
-
userId: 'ea120573-2eb4-495e-be48-1b2debac2640',
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
id: 'de6867c7-13f1-4932-a69b-e96fd245ee72',
|
|
48
|
-
content: 'Know the ropes',
|
|
49
|
-
userId: '3dcb4a1f-0c91-42c5-834f-26d227c532e2',
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
id: '15a742b3-82f6-4fba-9fed-2d1328a4500a',
|
|
53
|
-
content: 'Fight fire with fire',
|
|
54
|
-
userId: 'ea120573-2eb4-495e-be48-1b2debac2640',
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
id: '31afa9ad-bc37-4e74-8d8b-1c1656184a33',
|
|
58
|
-
content: 'I ate breakfast today',
|
|
59
|
-
userId: '3dcb4a1f-0c91-42c5-834f-26d227c532e2',
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
id: '557cb26a-b26e-4329-a5b4-137327616ead',
|
|
63
|
-
content: 'Par for the course',
|
|
64
|
-
userId: '2ee1c07c-7537-48f5-b5d8-8740e165cd62',
|
|
65
|
-
},
|
|
66
|
-
],
|
|
67
|
-
};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-misused-promises */
|
|
2
|
-
import { createExpressMiddleware } from '@trpc/server/adapters/express';
|
|
3
|
-
import cors from 'cors';
|
|
4
|
-
import express from 'express';
|
|
5
|
-
import swaggerUi from 'swagger-ui-express';
|
|
6
|
-
import { createOpenApiExpressMiddleware } from 'trpc-openapi';
|
|
7
|
-
|
|
8
|
-
import { openApiDocument } from './openapi';
|
|
9
|
-
import { appRouter, createContext } from './router';
|
|
10
|
-
|
|
11
|
-
const app = express();
|
|
12
|
-
|
|
13
|
-
// Setup CORS
|
|
14
|
-
app.use(cors());
|
|
15
|
-
|
|
16
|
-
// Handle incoming tRPC requests
|
|
17
|
-
app.use('/api/trpc', createExpressMiddleware({ router: appRouter, createContext }));
|
|
18
|
-
// Handle incoming OpenAPI requests
|
|
19
|
-
app.use('/api', createOpenApiExpressMiddleware({ router: appRouter, createContext }));
|
|
20
|
-
|
|
21
|
-
// Serve Swagger UI with our OpenAPI schema
|
|
22
|
-
app.use('/', swaggerUi.serve);
|
|
23
|
-
app.get('/', swaggerUi.setup(openApiDocument));
|
|
24
|
-
|
|
25
|
-
app.listen(3000, () => {
|
|
26
|
-
console.log('Server started on http://localhost:3000');
|
|
27
|
-
});
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { generateOpenApiDocument } from 'trpc-openapi';
|
|
2
|
-
|
|
3
|
-
import { appRouter } from './router';
|
|
4
|
-
|
|
5
|
-
// Generate OpenAPI schema document
|
|
6
|
-
export const openApiDocument = generateOpenApiDocument(appRouter, {
|
|
7
|
-
title: 'Example CRUD API',
|
|
8
|
-
description: 'OpenAPI compliant REST API built using tRPC with Express',
|
|
9
|
-
version: '1.0.0',
|
|
10
|
-
baseUrl: 'http://localhost:3000/api',
|
|
11
|
-
docsUrl: 'https://github.com/jlalmes/trpc-openapi',
|
|
12
|
-
tags: ['auth', 'users', 'posts'],
|
|
13
|
-
});
|