@ethalium/nestjs-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/constants/metadata.constants.d.ts +65 -0
- package/constants/metadata.constants.js +19 -0
- package/constants/metadata.constants.js.map +1 -0
- package/decorators/body.decorator.d.ts +4 -0
- package/decorators/body.decorator.js +15 -0
- package/decorators/body.decorator.js.map +1 -0
- package/decorators/controller.decorator.d.ts +4 -0
- package/decorators/controller.decorator.js +23 -0
- package/decorators/controller.decorator.js.map +1 -0
- package/decorators/error.decorator.d.ts +6 -0
- package/decorators/error.decorator.js +15 -0
- package/decorators/error.decorator.js.map +1 -0
- package/decorators/errors/bad-gateway.decorator.d.ts +4 -0
- package/decorators/errors/bad-gateway.decorator.js +9 -0
- package/decorators/errors/bad-gateway.decorator.js.map +1 -0
- package/decorators/errors/bad-request.decorator.d.ts +4 -0
- package/decorators/errors/bad-request.decorator.js +9 -0
- package/decorators/errors/bad-request.decorator.js.map +1 -0
- package/decorators/errors/forbidden.decorator.d.ts +4 -0
- package/decorators/errors/forbidden.decorator.js +9 -0
- package/decorators/errors/forbidden.decorator.js.map +1 -0
- package/decorators/errors/gateway-timeout.decorator.d.ts +4 -0
- package/decorators/errors/gateway-timeout.decorator.js +9 -0
- package/decorators/errors/gateway-timeout.decorator.js.map +1 -0
- package/decorators/errors/gone.decorator.d.ts +4 -0
- package/decorators/errors/gone.decorator.js +9 -0
- package/decorators/errors/gone.decorator.js.map +1 -0
- package/decorators/errors/internal-server-error.decorator.d.ts +4 -0
- package/decorators/errors/internal-server-error.decorator.js +9 -0
- package/decorators/errors/internal-server-error.decorator.js.map +1 -0
- package/decorators/errors/method-not-allowed.decorator.d.ts +4 -0
- package/decorators/errors/method-not-allowed.decorator.js +9 -0
- package/decorators/errors/method-not-allowed.decorator.js.map +1 -0
- package/decorators/errors/not-acceptable.decorator.d.ts +4 -0
- package/decorators/errors/not-acceptable.decorator.js +9 -0
- package/decorators/errors/not-acceptable.decorator.js.map +1 -0
- package/decorators/errors/not-found.decorator.d.ts +4 -0
- package/decorators/errors/not-found.decorator.js +9 -0
- package/decorators/errors/not-found.decorator.js.map +1 -0
- package/decorators/errors/not-implemented.decorator.d.ts +4 -0
- package/decorators/errors/not-implemented.decorator.js +9 -0
- package/decorators/errors/not-implemented.decorator.js.map +1 -0
- package/decorators/errors/payload-too-large.decorator.d.ts +4 -0
- package/decorators/errors/payload-too-large.decorator.js +9 -0
- package/decorators/errors/payload-too-large.decorator.js.map +1 -0
- package/decorators/errors/payment-required.decorator.d.ts +4 -0
- package/decorators/errors/payment-required.decorator.js +9 -0
- package/decorators/errors/payment-required.decorator.js.map +1 -0
- package/decorators/errors/precondition-failed.decorator.d.ts +4 -0
- package/decorators/errors/precondition-failed.decorator.js +9 -0
- package/decorators/errors/precondition-failed.decorator.js.map +1 -0
- package/decorators/errors/request-timeout.decorator.d.ts +4 -0
- package/decorators/errors/request-timeout.decorator.js +9 -0
- package/decorators/errors/request-timeout.decorator.js.map +1 -0
- package/decorators/errors/service-unavailable.decorator.d.ts +4 -0
- package/decorators/errors/service-unavailable.decorator.js +9 -0
- package/decorators/errors/service-unavailable.decorator.js.map +1 -0
- package/decorators/errors/too-many-requests.decorator.d.ts +4 -0
- package/decorators/errors/too-many-requests.decorator.js +9 -0
- package/decorators/errors/too-many-requests.decorator.js.map +1 -0
- package/decorators/errors/unauthorized.decorator.d.ts +4 -0
- package/decorators/errors/unauthorized.decorator.js +9 -0
- package/decorators/errors/unauthorized.decorator.js.map +1 -0
- package/decorators/errors/unprocessable-entity.decorator.d.ts +4 -0
- package/decorators/errors/unprocessable-entity.decorator.js +9 -0
- package/decorators/errors/unprocessable-entity.decorator.js.map +1 -0
- package/decorators/errors/unsupported-media-type.decorator.d.ts +4 -0
- package/decorators/errors/unsupported-media-type.decorator.js +9 -0
- package/decorators/errors/unsupported-media-type.decorator.js.map +1 -0
- package/decorators/header.decorator.d.ts +5 -0
- package/decorators/header.decorator.js +22 -0
- package/decorators/header.decorator.js.map +1 -0
- package/decorators/param.decorator.d.ts +5 -0
- package/decorators/param.decorator.js +22 -0
- package/decorators/param.decorator.js.map +1 -0
- package/decorators/properties/all-of.decorator.d.ts +8 -0
- package/decorators/properties/all-of.decorator.js +28 -0
- package/decorators/properties/all-of.decorator.js.map +1 -0
- package/decorators/properties/any-of.decorator.d.ts +8 -0
- package/decorators/properties/any-of.decorator.js +28 -0
- package/decorators/properties/any-of.decorator.js.map +1 -0
- package/decorators/properties/boolean.decorator.d.ts +5 -0
- package/decorators/properties/boolean.decorator.js +23 -0
- package/decorators/properties/boolean.decorator.js.map +1 -0
- package/decorators/properties/enum.decorator.d.ts +6 -0
- package/decorators/properties/enum.decorator.js +24 -0
- package/decorators/properties/enum.decorator.js.map +1 -0
- package/decorators/properties/number.decorator.d.ts +5 -0
- package/decorators/properties/number.decorator.js +23 -0
- package/decorators/properties/number.decorator.js.map +1 -0
- package/decorators/properties/object.decorator.d.ts +6 -0
- package/decorators/properties/object.decorator.js +28 -0
- package/decorators/properties/object.decorator.js.map +1 -0
- package/decorators/properties/one-of.decorator.d.ts +8 -0
- package/decorators/properties/one-of.decorator.js +28 -0
- package/decorators/properties/one-of.decorator.js.map +1 -0
- package/decorators/properties/string.decorator.d.ts +5 -0
- package/decorators/properties/string.decorator.js +23 -0
- package/decorators/properties/string.decorator.js.map +1 -0
- package/decorators/properties/type.decorator.d.ts +6 -0
- package/decorators/properties/type.decorator.js +26 -0
- package/decorators/properties/type.decorator.js.map +1 -0
- package/decorators/property.decorator.d.ts +6 -0
- package/decorators/property.decorator.js +20 -0
- package/decorators/property.decorator.js.map +1 -0
- package/decorators/query.decorator.d.ts +5 -0
- package/decorators/query.decorator.js +22 -0
- package/decorators/query.decorator.js.map +1 -0
- package/decorators/request.decorator.d.ts +2 -0
- package/decorators/request.decorator.js +39 -0
- package/decorators/request.decorator.js.map +1 -0
- package/decorators/response.decorator.d.ts +7 -0
- package/decorators/response.decorator.js +34 -0
- package/decorators/response.decorator.js.map +1 -0
- package/decorators/route.decorator.d.ts +5 -0
- package/decorators/route.decorator.js +45 -0
- package/decorators/route.decorator.js.map +1 -0
- package/decorators/routes/delete.decorator.d.ts +4 -0
- package/decorators/routes/delete.decorator.js +9 -0
- package/decorators/routes/delete.decorator.js.map +1 -0
- package/decorators/routes/get.decorator.d.ts +4 -0
- package/decorators/routes/get.decorator.js +9 -0
- package/decorators/routes/get.decorator.js.map +1 -0
- package/decorators/routes/patch.decorator.d.ts +4 -0
- package/decorators/routes/patch.decorator.js +9 -0
- package/decorators/routes/patch.decorator.js.map +1 -0
- package/decorators/routes/post.decorator.d.ts +4 -0
- package/decorators/routes/post.decorator.js +9 -0
- package/decorators/routes/post.decorator.js.map +1 -0
- package/decorators/routes/put.decorator.d.ts +4 -0
- package/decorators/routes/put.decorator.js +9 -0
- package/decorators/routes/put.decorator.js.map +1 -0
- package/decorators/tag-group.decorator.d.ts +4 -0
- package/decorators/tag-group.decorator.js +15 -0
- package/decorators/tag-group.decorator.js.map +1 -0
- package/decorators/tag.decorator.d.ts +5 -0
- package/decorators/tag.decorator.js +26 -0
- package/decorators/tag.decorator.js.map +1 -0
- package/index.d.ts +66 -0
- package/index.js +83 -0
- package/index.js.map +1 -0
- package/interfaces/body.interface.d.ts +5 -0
- package/interfaces/body.interface.js +3 -0
- package/interfaces/body.interface.js.map +1 -0
- package/interfaces/common.interface.d.ts +36 -0
- package/interfaces/common.interface.js +3 -0
- package/interfaces/common.interface.js.map +1 -0
- package/interfaces/controller.interface.d.ts +4 -0
- package/interfaces/controller.interface.js +3 -0
- package/interfaces/controller.interface.js.map +1 -0
- package/interfaces/document.interface.d.ts +31 -0
- package/interfaces/document.interface.js +3 -0
- package/interfaces/document.interface.js.map +1 -0
- package/interfaces/header.interface.d.ts +7 -0
- package/interfaces/header.interface.js +3 -0
- package/interfaces/header.interface.js.map +1 -0
- package/interfaces/param.interface.d.ts +13 -0
- package/interfaces/param.interface.js +3 -0
- package/interfaces/param.interface.js.map +1 -0
- package/interfaces/property.interface.d.ts +2 -0
- package/interfaces/property.interface.js +3 -0
- package/interfaces/property.interface.js.map +1 -0
- package/interfaces/query.interface.d.ts +14 -0
- package/interfaces/query.interface.js +3 -0
- package/interfaces/query.interface.js.map +1 -0
- package/interfaces/request.interface.d.ts +12 -0
- package/interfaces/request.interface.js +3 -0
- package/interfaces/request.interface.js.map +1 -0
- package/interfaces/route.interface.d.ts +14 -0
- package/interfaces/route.interface.js +3 -0
- package/interfaces/route.interface.js.map +1 -0
- package/openapi.builder.d.ts +30 -0
- package/openapi.builder.js +346 -0
- package/openapi.builder.js.map +1 -0
- package/openapi.module.d.ts +8 -0
- package/openapi.module.js +29 -0
- package/openapi.module.js.map +1 -0
- package/openapi.scanner.d.ts +30 -0
- package/openapi.scanner.js +61 -0
- package/openapi.scanner.js.map +1 -0
- package/package.json +75 -0
- package/tsconfig.lib.tsbuildinfo +1 -0
- package/utils/class.utils.d.ts +13 -0
- package/utils/class.utils.js +55 -0
- package/utils/class.utils.js.map +1 -0
- package/utils/common.utils.d.ts +3 -0
- package/utils/common.utils.js +48 -0
- package/utils/common.utils.js.map +1 -0
- package/utils/decorator.utils.d.ts +37 -0
- package/utils/decorator.utils.js +85 -0
- package/utils/decorator.utils.js.map +1 -0
- package/utils/document-builder.utils.d.ts +70 -0
- package/utils/document-builder.utils.js +36 -0
- package/utils/document-builder.utils.js.map +1 -0
- package/utils/metadata.utils.d.ts +28 -0
- package/utils/metadata.utils.js +100 -0
- package/utils/metadata.utils.js.map +1 -0
- package/utils/schema.utils.d.ts +9 -0
- package/utils/schema.utils.js +58 -0
- package/utils/schema.utils.js.map +1 -0
- package/utils/type.utils.d.ts +20 -0
- package/utils/type.utils.js +79 -0
- package/utils/type.utils.js.map +1 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isNil = isNil;
|
|
4
|
+
exports.isPrimitive = isPrimitive;
|
|
5
|
+
exports.isPlainObject = isPlainObject;
|
|
6
|
+
exports.isClassRef = isClassRef;
|
|
7
|
+
exports.isType = isType;
|
|
8
|
+
exports.isTypeRef = isTypeRef;
|
|
9
|
+
exports.extractType = extractType;
|
|
10
|
+
exports.extractTypeRef = extractTypeRef;
|
|
11
|
+
exports.extractRoute = extractRoute;
|
|
12
|
+
exports.extractString = extractString;
|
|
13
|
+
exports.extractNumber = extractNumber;
|
|
14
|
+
exports.extractObject = extractObject;
|
|
15
|
+
exports.extractFalse = extractFalse;
|
|
16
|
+
exports.reduceArgs = reduceArgs;
|
|
17
|
+
exports.extractAndResolveClassRef = extractAndResolveClassRef;
|
|
18
|
+
exports.resolveClassRef = resolveClassRef;
|
|
19
|
+
const lodash_1 = require("lodash");
|
|
20
|
+
function isNil(value) {
|
|
21
|
+
return value === null || value === undefined;
|
|
22
|
+
}
|
|
23
|
+
function isPrimitive(value) {
|
|
24
|
+
return [String, Number, Boolean, Array, Object, Date].includes(value);
|
|
25
|
+
}
|
|
26
|
+
function isPlainObject(value) {
|
|
27
|
+
return typeof value === 'object' && !isNil(value) && value.constructor && value.constructor === Object;
|
|
28
|
+
}
|
|
29
|
+
function isClassRef(value) {
|
|
30
|
+
return typeof value === 'function' && !isPrimitive(value) && /^\s*class\s+/.test(value.toString());
|
|
31
|
+
}
|
|
32
|
+
function isType(value) {
|
|
33
|
+
return isClassRef(value) || (0, lodash_1.isFunction)(value) || Array.isArray(value) || typeof value === 'string';
|
|
34
|
+
}
|
|
35
|
+
function isTypeRef(value) {
|
|
36
|
+
return !!resolveClassRef(value);
|
|
37
|
+
}
|
|
38
|
+
function extractType(args, startIndex, endIndex) {
|
|
39
|
+
return reduceArgs(args, startIndex, endIndex).find(arg => isType(arg)) || null;
|
|
40
|
+
}
|
|
41
|
+
function extractTypeRef(args, startIndex, endIndex) {
|
|
42
|
+
return reduceArgs(args, startIndex, endIndex).find(arg => isTypeRef(arg)) || null;
|
|
43
|
+
}
|
|
44
|
+
function extractRoute(args, startIndex, endIndex) {
|
|
45
|
+
return reduceArgs(args, startIndex, endIndex).find(arg => !isNil(arg) && (Array.isArray(arg) || typeof arg === 'string')) || null;
|
|
46
|
+
}
|
|
47
|
+
function extractString(args, startIndex, endIndex) {
|
|
48
|
+
return reduceArgs(args, startIndex, endIndex).find(arg => typeof arg === 'string') || null;
|
|
49
|
+
}
|
|
50
|
+
function extractNumber(args, startIndex, endIndex) {
|
|
51
|
+
return reduceArgs(args, startIndex, endIndex).find(arg => typeof arg === 'number') || null;
|
|
52
|
+
}
|
|
53
|
+
function extractObject(args, startIndex, endIndex) {
|
|
54
|
+
return reduceArgs(args, startIndex, endIndex).find(arg => isPlainObject(arg)) || null;
|
|
55
|
+
}
|
|
56
|
+
function extractFalse(args, startIndex, endIndex) {
|
|
57
|
+
return reduceArgs(args, startIndex, endIndex).includes(false);
|
|
58
|
+
}
|
|
59
|
+
function reduceArgs(args, startIndex, endIndex) {
|
|
60
|
+
return args.filter((_, i) => (startIndex === undefined || i >= startIndex) && (endIndex === undefined || i < endIndex));
|
|
61
|
+
}
|
|
62
|
+
function extractAndResolveClassRef(args, startIndex, endIndex) {
|
|
63
|
+
const typeRef = extractTypeRef(args, startIndex, endIndex);
|
|
64
|
+
return typeRef ? resolveClassRef(typeRef) : null;
|
|
65
|
+
}
|
|
66
|
+
function resolveClassRef(value) {
|
|
67
|
+
if (Array.isArray(value)) {
|
|
68
|
+
const refs = value.map(ref => resolveClassRef(ref)).filter(ref => !!ref);
|
|
69
|
+
return refs.length ? refs : null;
|
|
70
|
+
}
|
|
71
|
+
if (isClassRef(value)) {
|
|
72
|
+
return value;
|
|
73
|
+
}
|
|
74
|
+
if (!isNil(value) && !isClassRef(value) && typeof value === 'function') {
|
|
75
|
+
return resolveClassRef(value());
|
|
76
|
+
}
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=type.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.utils.js","sourceRoot":"","sources":["../../../lib/utils/type.utils.ts"],"names":[],"mappings":"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"}
|