express-zod-api 9.2.1 → 10.0.0-beta2
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/CHANGELOG.md +62 -0
- package/README.md +28 -20
- package/SECURITY.md +14 -13
- package/dist/esm/index.js +58 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/index.d.ts +776 -21
- package/dist/index.js +55 -69
- package/dist/index.js.map +1 -1
- package/package.json +31 -25
- package/dist/api-response.d.ts +0 -16
- package/dist/api-response.js +0 -3
- package/dist/api-response.js.map +0 -1
- package/dist/client-helpers.d.ts +0 -23
- package/dist/client-helpers.js +0 -71
- package/dist/client-helpers.js.map +0 -1
- package/dist/client.d.ts +0 -15
- package/dist/client.js +0 -120
- package/dist/client.js.map +0 -1
- package/dist/common-helpers.d.ts +0 -46
- package/dist/common-helpers.js +0 -207
- package/dist/common-helpers.js.map +0 -1
- package/dist/config-type.d.ts +0 -59
- package/dist/config-type.js +0 -11
- package/dist/config-type.js.map +0 -1
- package/dist/date-in-schema.d.ts +0 -11
- package/dist/date-in-schema.js +0 -46
- package/dist/date-in-schema.js.map +0 -1
- package/dist/date-out-schema.d.ts +0 -10
- package/dist/date-out-schema.js +0 -31
- package/dist/date-out-schema.js.map +0 -1
- package/dist/depends-on-method.d.ts +0 -10
- package/dist/depends-on-method.js +0 -32
- package/dist/depends-on-method.js.map +0 -1
- package/dist/endpoint.d.ts +0 -98
- package/dist/endpoint.js +0 -261
- package/dist/endpoint.js.map +0 -1
- package/dist/endpoints-factory.d.ts +0 -161
- package/dist/endpoints-factory.js +0 -68
- package/dist/endpoints-factory.js.map +0 -1
- package/dist/errors.d.ts +0 -35
- package/dist/errors.js +0 -64
- package/dist/errors.js.map +0 -1
- package/dist/extend-zod.d.ts +0 -22
- package/dist/extend-zod.js +0 -33
- package/dist/extend-zod.js.map +0 -1
- package/dist/file-schema.d.ts +0 -23
- package/dist/file-schema.js +0 -55
- package/dist/file-schema.js.map +0 -1
- package/dist/io-schema.d.ts +0 -16
- package/dist/io-schema.js +0 -21
- package/dist/io-schema.js.map +0 -1
- package/dist/logger.d.ts +0 -3
- package/dist/logger.js +0 -54
- package/dist/logger.js.map +0 -1
- package/dist/logical-container.d.ts +0 -16
- package/dist/logical-container.js +0 -85
- package/dist/logical-container.js.map +0 -1
- package/dist/metadata.d.ts +0 -27
- package/dist/metadata.js +0 -58
- package/dist/metadata.js.map +0 -1
- package/dist/method.d.ts +0 -8
- package/dist/method.js +0 -5
- package/dist/method.js.map +0 -1
- package/dist/middleware.d.ts +0 -32
- package/dist/middleware.js +0 -16
- package/dist/middleware.js.map +0 -1
- package/dist/mime.d.ts +0 -2
- package/dist/mime.js +0 -10
- package/dist/mime.js.map +0 -1
- package/dist/mock.d.ts +0 -38
- package/dist/mock.js +0 -66
- package/dist/mock.js.map +0 -1
- package/dist/open-api-helpers.d.ts +0 -83
- package/dist/open-api-helpers.js +0 -621
- package/dist/open-api-helpers.js.map +0 -1
- package/dist/open-api.d.ts +0 -25
- package/dist/open-api.js +0 -98
- package/dist/open-api.js.map +0 -1
- package/dist/result-handler.d.ts +0 -151
- package/dist/result-handler.js +0 -71
- package/dist/result-handler.js.map +0 -1
- package/dist/routing-walker.d.ts +0 -12
- package/dist/routing-walker.js +0 -55
- package/dist/routing-walker.js.map +0 -1
- package/dist/routing.d.ts +0 -15
- package/dist/routing.js +0 -25
- package/dist/routing.js.map +0 -1
- package/dist/schema-walker.d.ts +0 -23
- package/dist/schema-walker.js +0 -26
- package/dist/schema-walker.js.map +0 -1
- package/dist/security.d.ts +0 -72
- package/dist/security.js +0 -3
- package/dist/security.js.map +0 -1
- package/dist/serve-static.d.ts +0 -9
- package/dist/serve-static.js +0 -17
- package/dist/serve-static.js.map +0 -1
- package/dist/server.d.ts +0 -20
- package/dist/server.js +0 -131
- package/dist/server.js.map +0 -1
- package/dist/startup-logo.d.ts +0 -1
- package/dist/startup-logo.js +0 -27
- package/dist/startup-logo.js.map +0 -1
- package/dist/upload-schema.d.ts +0 -11
- package/dist/upload-schema.js +0 -42
- package/dist/upload-schema.js.map +0 -1
- package/dist/zts-helpers.d.ts +0 -37
- package/dist/zts-helpers.js +0 -60
- package/dist/zts-helpers.js.map +0 -1
- package/dist/zts.d.ts +0 -31
- package/dist/zts.js +0 -147
- package/dist/zts.js.map +0 -1
- package/dist-esm/api-response.js +0 -2
- package/dist-esm/api-response.js.map +0 -1
- package/dist-esm/client-helpers.js +0 -48
- package/dist-esm/client-helpers.js.map +0 -1
- package/dist-esm/client.js +0 -113
- package/dist-esm/client.js.map +0 -1
- package/dist-esm/common-helpers.js +0 -188
- package/dist-esm/common-helpers.js.map +0 -1
- package/dist-esm/config-type.js +0 -7
- package/dist-esm/config-type.js.map +0 -1
- package/dist-esm/date-in-schema.js +0 -42
- package/dist-esm/date-in-schema.js.map +0 -1
- package/dist-esm/date-out-schema.js +0 -27
- package/dist-esm/date-out-schema.js.map +0 -1
- package/dist-esm/depends-on-method.js +0 -28
- package/dist-esm/depends-on-method.js.map +0 -1
- package/dist-esm/endpoint.js +0 -256
- package/dist-esm/endpoint.js.map +0 -1
- package/dist-esm/endpoints-factory.js +0 -64
- package/dist-esm/endpoints-factory.js.map +0 -1
- package/dist-esm/errors.js +0 -54
- package/dist-esm/errors.js.map +0 -1
- package/dist-esm/extend-zod.js +0 -16
- package/dist-esm/extend-zod.js.map +0 -1
- package/dist-esm/file-schema.js +0 -51
- package/dist-esm/file-schema.js.map +0 -1
- package/dist-esm/index.js +0 -19
- package/dist-esm/index.js.map +0 -1
- package/dist-esm/io-schema.js +0 -17
- package/dist-esm/io-schema.js.map +0 -1
- package/dist-esm/logger.js +0 -47
- package/dist-esm/logger.js.map +0 -1
- package/dist-esm/logical-container.js +0 -78
- package/dist-esm/logical-container.js.map +0 -1
- package/dist-esm/metadata.js +0 -51
- package/dist-esm/metadata.js.map +0 -1
- package/dist-esm/method.js +0 -2
- package/dist-esm/method.js.map +0 -1
- package/dist-esm/middleware.js +0 -12
- package/dist-esm/middleware.js.map +0 -1
- package/dist-esm/mime.js +0 -4
- package/dist-esm/mime.js.map +0 -1
- package/dist-esm/mock.js +0 -57
- package/dist-esm/mock.js.map +0 -1
- package/dist-esm/open-api-helpers.js +0 -575
- package/dist-esm/open-api-helpers.js.map +0 -1
- package/dist-esm/open-api.js +0 -94
- package/dist-esm/open-api.js.map +0 -1
- package/dist-esm/package.json +0 -1
- package/dist-esm/result-handler.js +0 -66
- package/dist-esm/result-handler.js.map +0 -1
- package/dist-esm/routing-walker.js +0 -51
- package/dist-esm/routing-walker.js.map +0 -1
- package/dist-esm/routing.js +0 -21
- package/dist-esm/routing.js.map +0 -1
- package/dist-esm/schema-walker.js +0 -22
- package/dist-esm/schema-walker.js.map +0 -1
- package/dist-esm/security.js +0 -2
- package/dist-esm/security.js.map +0 -1
- package/dist-esm/serve-static.js +0 -10
- package/dist-esm/serve-static.js.map +0 -1
- package/dist-esm/server.js +0 -98
- package/dist-esm/server.js.map +0 -1
- package/dist-esm/startup-logo.js +0 -23
- package/dist-esm/startup-logo.js.map +0 -1
- package/dist-esm/upload-schema.js +0 -38
- package/dist-esm/upload-schema.js.map +0 -1
- package/dist-esm/zts-helpers.js +0 -50
- package/dist-esm/zts-helpers.js.map +0 -1
- package/dist-esm/zts.js +0 -140
- package/dist-esm/zts.js.map +0 -1
package/dist-esm/zts.js
DELETED
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is based on https://github.com/sachinraja/zod-to-ts
|
|
3
|
-
*
|
|
4
|
-
* MIT License
|
|
5
|
-
*
|
|
6
|
-
* Copyright (c) 2021 Sachin Raja
|
|
7
|
-
*
|
|
8
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
9
|
-
* of this software and associated documentation files (the "Software"), to deal
|
|
10
|
-
* in the Software without restriction, including without limitation the rights
|
|
11
|
-
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
12
|
-
* copies of the Software, and to permit persons to whom the Software is
|
|
13
|
-
* furnished to do so, subject to the following conditions:
|
|
14
|
-
*
|
|
15
|
-
* The above copyright notice and this permission notice shall be included in all
|
|
16
|
-
* copies or substantial portions of the Software.
|
|
17
|
-
*
|
|
18
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
19
|
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
20
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
21
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
22
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
23
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
24
|
-
* SOFTWARE.
|
|
25
|
-
*/
|
|
26
|
-
import ts from "typescript";
|
|
27
|
-
import { z } from "zod";
|
|
28
|
-
import { hasCoercion, tryToTransform } from "./common-helpers.js";
|
|
29
|
-
import { walkSchema } from "./schema-walker.js";
|
|
30
|
-
import { addJsDocComment, makePropertyIdentifier, } from "./zts-helpers.js";
|
|
31
|
-
const { factory: f } = ts;
|
|
32
|
-
const samples = {
|
|
33
|
-
[ts.SyntaxKind.AnyKeyword]: "",
|
|
34
|
-
[ts.SyntaxKind.BigIntKeyword]: BigInt(0),
|
|
35
|
-
[ts.SyntaxKind.BooleanKeyword]: false,
|
|
36
|
-
[ts.SyntaxKind.NumberKeyword]: 0,
|
|
37
|
-
[ts.SyntaxKind.ObjectKeyword]: {},
|
|
38
|
-
[ts.SyntaxKind.StringKeyword]: "",
|
|
39
|
-
[ts.SyntaxKind.UndefinedKeyword]: undefined,
|
|
40
|
-
};
|
|
41
|
-
const onLiteral = ({ schema: { value }, }) => f.createLiteralTypeNode(typeof value === "number"
|
|
42
|
-
? f.createNumericLiteral(value)
|
|
43
|
-
: typeof value === "boolean"
|
|
44
|
-
? value
|
|
45
|
-
? f.createTrue()
|
|
46
|
-
: f.createFalse()
|
|
47
|
-
: f.createStringLiteral(value));
|
|
48
|
-
const onObject = ({ schema: { shape }, isResponse, next, }) => {
|
|
49
|
-
const members = Object.entries(shape).map(([key, value]) => {
|
|
50
|
-
const isOptional = isResponse && hasCoercion(value)
|
|
51
|
-
? value instanceof z.ZodOptional
|
|
52
|
-
: value.isOptional();
|
|
53
|
-
const propertySignature = f.createPropertySignature(undefined, makePropertyIdentifier(key), isOptional ? f.createToken(ts.SyntaxKind.QuestionToken) : undefined, next({ schema: value }));
|
|
54
|
-
if (value.description) {
|
|
55
|
-
addJsDocComment(propertySignature, value.description);
|
|
56
|
-
}
|
|
57
|
-
return propertySignature;
|
|
58
|
-
});
|
|
59
|
-
return f.createTypeLiteralNode(members);
|
|
60
|
-
};
|
|
61
|
-
const onArray = ({ schema: { element }, next, }) => f.createArrayTypeNode(next({ schema: element }));
|
|
62
|
-
const onEnum = ({ schema: { options }, }) => f.createUnionTypeNode(options.map((option) => f.createLiteralTypeNode(f.createStringLiteral(option))));
|
|
63
|
-
const onSomeUnion = ({ schema: { options }, next }) => f.createUnionTypeNode(options.map((option) => next({ schema: option })));
|
|
64
|
-
const makeSample = (produced) => samples?.[produced.kind];
|
|
65
|
-
const onEffects = ({ schema, next, isResponse, }) => {
|
|
66
|
-
const input = next({ schema: schema.innerType() });
|
|
67
|
-
const effect = schema._def.effect;
|
|
68
|
-
if (isResponse && effect.type === "transform") {
|
|
69
|
-
const outputType = tryToTransform({ effect, sample: makeSample(input) });
|
|
70
|
-
const resolutions = {
|
|
71
|
-
number: ts.SyntaxKind.NumberKeyword,
|
|
72
|
-
bigint: ts.SyntaxKind.BigIntKeyword,
|
|
73
|
-
boolean: ts.SyntaxKind.BooleanKeyword,
|
|
74
|
-
string: ts.SyntaxKind.StringKeyword,
|
|
75
|
-
undefined: ts.SyntaxKind.UndefinedKeyword,
|
|
76
|
-
object: ts.SyntaxKind.ObjectKeyword,
|
|
77
|
-
};
|
|
78
|
-
return f.createKeywordTypeNode((outputType && resolutions[outputType]) || ts.SyntaxKind.AnyKeyword);
|
|
79
|
-
}
|
|
80
|
-
return input;
|
|
81
|
-
};
|
|
82
|
-
const onNativeEnum = ({ schema }) => f.createUnionTypeNode(Object.values(schema.enum).map((value) => f.createLiteralTypeNode(typeof value === "number"
|
|
83
|
-
? f.createNumericLiteral(value)
|
|
84
|
-
: f.createStringLiteral(value))));
|
|
85
|
-
const onOptional = ({ next, schema }) => f.createUnionTypeNode([
|
|
86
|
-
next({ schema: schema.unwrap() }),
|
|
87
|
-
f.createKeywordTypeNode(ts.SyntaxKind.UndefinedKeyword),
|
|
88
|
-
]);
|
|
89
|
-
const onNullable = ({ next, schema }) => f.createUnionTypeNode([
|
|
90
|
-
next({ schema: schema.unwrap() }),
|
|
91
|
-
f.createLiteralTypeNode(f.createNull()),
|
|
92
|
-
]);
|
|
93
|
-
const onTuple = ({ next, schema: { items } }) => f.createTupleTypeNode(items.map((option) => next({ schema: option })));
|
|
94
|
-
const onRecord = ({ next, schema: { keySchema, valueSchema }, }) => f.createExpressionWithTypeArguments(f.createIdentifier("Record"), [
|
|
95
|
-
next({ schema: keySchema }),
|
|
96
|
-
next({ schema: valueSchema }),
|
|
97
|
-
]);
|
|
98
|
-
const onIntersection = ({ next, schema }) => f.createIntersectionTypeNode([schema._def.left, schema._def.right].map((entry) => next({ schema: entry })));
|
|
99
|
-
const onDefault = ({ next, schema }) => next({ schema: schema._def.innerType });
|
|
100
|
-
const onPrimitive = (syntaxKind) => () => f.createKeywordTypeNode(syntaxKind);
|
|
101
|
-
const onBranded = ({ next, schema, }) => next({ schema: schema.unwrap() });
|
|
102
|
-
const onCatch = ({ next, schema }) => next({ schema: schema._def.innerType });
|
|
103
|
-
const onPipeline = ({ schema, next, isResponse, }) => next({ schema: schema._def[isResponse ? "out" : "in"] });
|
|
104
|
-
const onNull = () => f.createLiteralTypeNode(f.createNull());
|
|
105
|
-
const producers = {
|
|
106
|
-
ZodString: onPrimitive(ts.SyntaxKind.StringKeyword),
|
|
107
|
-
ZodNumber: onPrimitive(ts.SyntaxKind.NumberKeyword),
|
|
108
|
-
ZodBigInt: onPrimitive(ts.SyntaxKind.BigIntKeyword),
|
|
109
|
-
ZodBoolean: onPrimitive(ts.SyntaxKind.BooleanKeyword),
|
|
110
|
-
ZodDateIn: onPrimitive(ts.SyntaxKind.StringKeyword),
|
|
111
|
-
ZodDateOut: onPrimitive(ts.SyntaxKind.StringKeyword),
|
|
112
|
-
ZodNull: onNull,
|
|
113
|
-
ZodArray: onArray,
|
|
114
|
-
ZodTuple: onTuple,
|
|
115
|
-
ZodRecord: onRecord,
|
|
116
|
-
ZodObject: onObject,
|
|
117
|
-
ZodLiteral: onLiteral,
|
|
118
|
-
ZodIntersection: onIntersection,
|
|
119
|
-
ZodUnion: onSomeUnion,
|
|
120
|
-
ZodFile: onPrimitive(ts.SyntaxKind.StringKeyword),
|
|
121
|
-
// ZodUpload:
|
|
122
|
-
ZodAny: onPrimitive(ts.SyntaxKind.AnyKeyword),
|
|
123
|
-
ZodDefault: onDefault,
|
|
124
|
-
ZodEnum: onEnum,
|
|
125
|
-
ZodNativeEnum: onNativeEnum,
|
|
126
|
-
ZodEffects: onEffects,
|
|
127
|
-
ZodOptional: onOptional,
|
|
128
|
-
ZodNullable: onNullable,
|
|
129
|
-
ZodDiscriminatedUnion: onSomeUnion,
|
|
130
|
-
ZodBranded: onBranded,
|
|
131
|
-
ZodCatch: onCatch,
|
|
132
|
-
ZodPipeline: onPipeline,
|
|
133
|
-
};
|
|
134
|
-
export const zodToTs = ({ schema, ...context }) => walkSchema({
|
|
135
|
-
schema,
|
|
136
|
-
rules: producers,
|
|
137
|
-
onMissing: () => f.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),
|
|
138
|
-
...context,
|
|
139
|
-
});
|
|
140
|
-
//# sourceMappingURL=zts.js.map
|
package/dist-esm/zts.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zts.js","sourceRoot":"","sources":["../src/zts.ts"],"names":[],"mappings":"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"}
|