@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,13 @@
|
|
|
1
|
+
export type ClassEntry = ClassEntryMethod | ClassEntryProperty;
|
|
2
|
+
export interface ClassEntryMethod {
|
|
3
|
+
kind: 'method';
|
|
4
|
+
target: any;
|
|
5
|
+
descriptor: PropertyDescriptor;
|
|
6
|
+
propertyKey: string | symbol;
|
|
7
|
+
}
|
|
8
|
+
export interface ClassEntryProperty {
|
|
9
|
+
kind: 'property' | 'prototype-property';
|
|
10
|
+
target: any;
|
|
11
|
+
propertyKey: string | symbol;
|
|
12
|
+
}
|
|
13
|
+
export declare function getAllClassEntries(instance: any): ClassEntry[];
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAllClassEntries = getAllClassEntries;
|
|
4
|
+
function getAllClassEntries(instance) {
|
|
5
|
+
if (!instance) {
|
|
6
|
+
return [];
|
|
7
|
+
}
|
|
8
|
+
const ctor = instance.constructor;
|
|
9
|
+
const rootProto = ctor?.prototype;
|
|
10
|
+
if (!ctor || !rootProto) {
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
const entries = [];
|
|
14
|
+
const mostDerivedProtoKeys = new Set([
|
|
15
|
+
...Object.getOwnPropertyNames(rootProto),
|
|
16
|
+
...Object.getOwnPropertySymbols(rootProto),
|
|
17
|
+
]);
|
|
18
|
+
for (const propertyKey of [Object.getOwnPropertyNames(instance), Object.getOwnPropertySymbols(instance)].flat(9)) {
|
|
19
|
+
entries.push({
|
|
20
|
+
kind: 'property',
|
|
21
|
+
target: rootProto,
|
|
22
|
+
propertyKey: propertyKey,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
let proto = rootProto;
|
|
26
|
+
while (proto && proto !== Object.prototype) {
|
|
27
|
+
for (const propertyKey of [Object.getOwnPropertyNames(proto), Object.getOwnPropertySymbols(proto)].flat()) {
|
|
28
|
+
if (propertyKey === 'constructor' || propertyKey === 'prototype') {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
const descriptor = Object.getOwnPropertyDescriptor(proto, propertyKey);
|
|
32
|
+
if (!descriptor) {
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
if (typeof descriptor.value === 'function') {
|
|
36
|
+
entries.push({
|
|
37
|
+
kind: 'method',
|
|
38
|
+
target: proto,
|
|
39
|
+
propertyKey: propertyKey,
|
|
40
|
+
descriptor: descriptor,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
entries.push({
|
|
45
|
+
kind: 'property',
|
|
46
|
+
target: proto,
|
|
47
|
+
propertyKey: propertyKey,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
proto = Object.getPrototypeOf(proto);
|
|
52
|
+
}
|
|
53
|
+
return entries;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=class.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"class.utils.js","sourceRoot":"","sources":["../../../lib/utils/class.utils.ts"],"names":[],"mappings":";;AAuBA,gDAwEC;AAxED,SAAgB,kBAAkB,CAAC,QAAa;IAE9C,IAAG,CAAC,QAAQ,EAAC,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAGD,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,CAAC;IAGlC,IAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAC,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAGD,MAAM,OAAO,GAAiB,EAAE,CAAC;IAGjC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAkB;QACpD,GAAG,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC;QACxC,GAAG,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC;KAC3C,CAAC,CAAC;IAGH,KAAK,MAAM,WAAW,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACjH,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,SAAS;YACjB,WAAW,EAAE,WAAW;SACzB,CAAC,CAAC;IACL,CAAC;IAGD,IAAI,KAAK,GAAQ,SAAS,CAAC;IAC3B,OAAO,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QAC3C,KAAK,MAAM,WAAW,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAE1G,IAAG,WAAW,KAAK,aAAa,IAAI,WAAW,KAAK,WAAW,EAAC,CAAC;gBAC/D,SAAS;YACX,CAAC;YAGD,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAGvE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,SAAS;YACX,CAAC;YAGD,IAAG,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU,EAAC,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,KAAK;oBACb,WAAW,EAAE,WAAW;oBACxB,UAAU,EAAE,UAAU;iBACvB,CAAC,CAAC;YACL,CAAC;iBAAI,CAAC;gBACJ,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,KAAK;oBACb,WAAW,EAAE,WAAW;iBACzB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAGD,OAAO,OAAO,CAAC;AAEjB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pascalCase = pascalCase;
|
|
4
|
+
exports.createSlug = createSlug;
|
|
5
|
+
exports.uniqueMergeBy = uniqueMergeBy;
|
|
6
|
+
function pascalCase(input) {
|
|
7
|
+
if (!input)
|
|
8
|
+
return '';
|
|
9
|
+
return input
|
|
10
|
+
.replace(/[\s_-]+/g, ' ')
|
|
11
|
+
.replace(/([a-z0-9])([A-Z])/g, '$1 $2')
|
|
12
|
+
.split(' ')
|
|
13
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
14
|
+
.join('');
|
|
15
|
+
}
|
|
16
|
+
function createSlug(value) {
|
|
17
|
+
return value
|
|
18
|
+
.normalize('NFD')
|
|
19
|
+
.replace(/[\u0300-\u036f]/g, '')
|
|
20
|
+
.replace(/ä/g, 'ae')
|
|
21
|
+
.replace(/ö/g, 'oe')
|
|
22
|
+
.replace(/ü/g, 'ue')
|
|
23
|
+
.replace(/ß/g, 'ss')
|
|
24
|
+
.replace(/[^a-zA-Z0-9\s-]/g, '')
|
|
25
|
+
.trim()
|
|
26
|
+
.replace(/\s+/g, '-')
|
|
27
|
+
.replace(/-+/g, '-')
|
|
28
|
+
.toLowerCase();
|
|
29
|
+
}
|
|
30
|
+
function uniqueMergeBy(key, items) {
|
|
31
|
+
const dedupe = (a) => [...new Set(a)];
|
|
32
|
+
return Array.from(items.flat().reduce((map, item) => {
|
|
33
|
+
const id = item[key];
|
|
34
|
+
const data = map.get(id);
|
|
35
|
+
if (!data) {
|
|
36
|
+
const copy = { ...item };
|
|
37
|
+
Object.keys(copy).forEach(p => Array.isArray(copy[p]) && (copy[p] = dedupe(copy[p])));
|
|
38
|
+
return map.set(id, copy);
|
|
39
|
+
}
|
|
40
|
+
Object.keys(item).forEach(p => {
|
|
41
|
+
const incoming = item[p];
|
|
42
|
+
data[p] = Array.isArray(incoming) ? dedupe([...(Array.isArray(data[p]) ? data[p] : []), ...incoming]) : (data[p] ?? incoming);
|
|
43
|
+
});
|
|
44
|
+
return map;
|
|
45
|
+
}, new Map())
|
|
46
|
+
.values());
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=common.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.utils.js","sourceRoot":"","sources":["../../../lib/utils/common.utils.ts"],"names":[],"mappings":";;AAAA,gCAUC;AAED,gCAaC;AAED,sCAiBC;AA5CD,SAAgB,UAAU,CAAC,KAAa;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,KAAK;SACT,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,IAAI,CAAC,EAAE,CACV,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAC3D;SACA,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAgB,UAAU,CAAC,KAAa;IACtC,OAAO,KAAK;SACT,SAAS,CAAC,KAAK,CAAC;SAChB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;SACnB,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;SACnB,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;SACnB,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;SACnB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,IAAI,EAAE;SACN,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,SAAgB,aAAa,CAA6D,GAAM,EAAE,KAAU;IAC1G,MAAM,MAAM,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAChD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtF,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,IAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC;QACxI,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,IAAI,GAAG,EAAW,CAAC;SACrB,MAAM,EAAE,CAAC,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
export type AnyDecorator = ClassDecorator | MethodDecorator | PropertyDecorator | ParameterDecorator;
|
|
3
|
+
export type DecoratorKind = 'class' | 'method' | 'property' | 'parameter';
|
|
4
|
+
export type DecoratorFactory<TInput = void, TDecorator = AnyDecorator> = (input: TInput) => TDecorator;
|
|
5
|
+
export interface DecoratorContext<TInput = void> {
|
|
6
|
+
kind: DecoratorKind;
|
|
7
|
+
target: any;
|
|
8
|
+
decorateArgs: [targetOrDescriptorValue?: any, propertyKey?: string | symbol];
|
|
9
|
+
propertyKey?: string | symbol;
|
|
10
|
+
propertyDescriptor?: PropertyDescriptor;
|
|
11
|
+
parameterIndex?: number;
|
|
12
|
+
data: TInput;
|
|
13
|
+
}
|
|
14
|
+
export interface DecoratorOptions<TInput = void, TTransformed = TInput> {
|
|
15
|
+
transform?: (ctx: DecoratorContext<TInput>) => TTransformed;
|
|
16
|
+
decorators?: (ctx: DecoratorContext<TTransformed>, store: AnyDecorator[]) => AnyDecorator[] | any;
|
|
17
|
+
metadata?: (ctx: DecoratorContext<TTransformed>) => Array<{
|
|
18
|
+
key: string;
|
|
19
|
+
value: any;
|
|
20
|
+
}> | undefined;
|
|
21
|
+
onApply?: (ctx: DecoratorContext<TTransformed>) => void;
|
|
22
|
+
}
|
|
23
|
+
export interface ListDecoratorOptions<TInput, TTransformed = TInput> {
|
|
24
|
+
metadataKey: string;
|
|
25
|
+
transform?: (ctx: DecoratorContext<TTransformed[]>) => TTransformed[];
|
|
26
|
+
unique?: boolean;
|
|
27
|
+
decorators?: (ctx: DecoratorContext<TTransformed[]>, store: AnyDecorator[]) => AnyDecorator[];
|
|
28
|
+
onApply?: (ctx: DecoratorContext<TTransformed[]>) => void;
|
|
29
|
+
}
|
|
30
|
+
export declare function detectDecoratorKind(target: any, propertyKey?: string | symbol, propertyDescriptor?: PropertyDescriptor | number): DecoratorKind;
|
|
31
|
+
export declare function buildDecoratorContext<TValue = any>(args: any[], data: TValue): DecoratorContext<TValue>;
|
|
32
|
+
export declare function createDecorator<TInput = void, TTransformed = TInput>(opts: DecoratorOptions<TInput, TTransformed>): DecoratorFactory<TInput>;
|
|
33
|
+
export declare function createClassDecorator<TInput = void, TTransformed = TInput>(opts: DecoratorOptions<TInput, TTransformed>): DecoratorFactory<TInput, ClassDecorator>;
|
|
34
|
+
export declare function createMethodDecorator<TInput = void, TTransformed = TInput>(opts: DecoratorOptions<TInput, TTransformed>): DecoratorFactory<TInput, MethodDecorator>;
|
|
35
|
+
export declare function createPropertyDecorator<TInput = void, TTransformed = TInput>(opts: DecoratorOptions<TInput, TTransformed>): DecoratorFactory<TInput, PropertyDecorator>;
|
|
36
|
+
export declare function createParamDecorator<TInput = void, TTransformed = TInput>(opts: DecoratorOptions<TInput, TTransformed>): DecoratorFactory<TInput, ParameterDecorator>;
|
|
37
|
+
export declare function createListDecorator<TInput, TTransformed = TInput>(opts: ListDecoratorOptions<TInput, TTransformed>): (input: TInput[]) => AnyDecorator;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.detectDecoratorKind = detectDecoratorKind;
|
|
4
|
+
exports.buildDecoratorContext = buildDecoratorContext;
|
|
5
|
+
exports.createDecorator = createDecorator;
|
|
6
|
+
exports.createClassDecorator = createClassDecorator;
|
|
7
|
+
exports.createMethodDecorator = createMethodDecorator;
|
|
8
|
+
exports.createPropertyDecorator = createPropertyDecorator;
|
|
9
|
+
exports.createParamDecorator = createParamDecorator;
|
|
10
|
+
exports.createListDecorator = createListDecorator;
|
|
11
|
+
require("reflect-metadata");
|
|
12
|
+
const metadata_utils_1 = require("./metadata.utils");
|
|
13
|
+
function detectDecoratorKind(target, propertyKey, propertyDescriptor) {
|
|
14
|
+
if (target && propertyKey && propertyDescriptor) {
|
|
15
|
+
return 'class';
|
|
16
|
+
}
|
|
17
|
+
if (typeof propertyDescriptor === 'number') {
|
|
18
|
+
return 'parameter';
|
|
19
|
+
}
|
|
20
|
+
if (propertyDescriptor && typeof propertyDescriptor === 'object') {
|
|
21
|
+
return 'method';
|
|
22
|
+
}
|
|
23
|
+
return 'property';
|
|
24
|
+
}
|
|
25
|
+
function buildDecoratorContext(args, data) {
|
|
26
|
+
const [target, propertyKey, descriptor] = args;
|
|
27
|
+
const kind = detectDecoratorKind(args);
|
|
28
|
+
return {
|
|
29
|
+
kind: kind,
|
|
30
|
+
target: target,
|
|
31
|
+
decorateArgs: (0, metadata_utils_1.getMetadataDecorateArgs)(target, propertyKey, descriptor),
|
|
32
|
+
propertyKey: propertyKey,
|
|
33
|
+
propertyDescriptor: kind === 'method' ? descriptor : undefined,
|
|
34
|
+
parameterIndex: kind === 'parameter' ? descriptor : undefined,
|
|
35
|
+
data: data,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function createDecorator(opts) {
|
|
39
|
+
return (input) => {
|
|
40
|
+
return (...args) => {
|
|
41
|
+
const ctx = buildDecoratorContext(args, input);
|
|
42
|
+
ctx.data = opts.transform ? opts.transform(ctx) : input;
|
|
43
|
+
const decoratorStore = [];
|
|
44
|
+
const decoratorFuncResult = opts.decorators?.(ctx, decoratorStore) ?? null;
|
|
45
|
+
const decorators = Array.isArray(decoratorFuncResult) ? decoratorFuncResult : decoratorStore;
|
|
46
|
+
opts.metadata?.(ctx)?.map(meta => (0, metadata_utils_1.setMetadata)(meta.key, meta.value, ctx.target, ctx.propertyKey));
|
|
47
|
+
opts.onApply?.(ctx);
|
|
48
|
+
decorators.map(d => d(...args));
|
|
49
|
+
return args[2];
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function createClassDecorator(opts) {
|
|
54
|
+
return createDecorator(opts);
|
|
55
|
+
}
|
|
56
|
+
function createMethodDecorator(opts) {
|
|
57
|
+
return createDecorator(opts);
|
|
58
|
+
}
|
|
59
|
+
function createPropertyDecorator(opts) {
|
|
60
|
+
return createDecorator(opts);
|
|
61
|
+
}
|
|
62
|
+
function createParamDecorator(opts) {
|
|
63
|
+
return createDecorator(opts);
|
|
64
|
+
}
|
|
65
|
+
function createListDecorator(opts) {
|
|
66
|
+
return (input) => {
|
|
67
|
+
return (...args) => {
|
|
68
|
+
const ctx = buildDecoratorContext(args, input);
|
|
69
|
+
ctx.data = opts.transform ? opts.transform(ctx) : input;
|
|
70
|
+
const decoratorStore = [];
|
|
71
|
+
const decoratorFuncResult = opts.decorators?.(ctx, decoratorStore) ?? null;
|
|
72
|
+
const decorators = Array.isArray(decoratorFuncResult) ? decoratorFuncResult : decoratorStore;
|
|
73
|
+
if (opts.unique) {
|
|
74
|
+
(0, metadata_utils_1.addMetadataUniqueItems)(opts.metadataKey, ctx.data, ...ctx.decorateArgs);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
(0, metadata_utils_1.addMetadataItems)(opts.metadataKey, ctx.data, ...ctx.decorateArgs);
|
|
78
|
+
}
|
|
79
|
+
opts.onApply?.(ctx);
|
|
80
|
+
decorators.map(d => d(...args));
|
|
81
|
+
return args[2];
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=decorator.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorator.utils.js","sourceRoot":"","sources":["../../../lib/utils/decorator.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { DocumentBuilder } from "@nestjs/swagger";
|
|
2
|
+
import { ExtensionLocation, ParameterObject, SecuritySchemeObject, ServerVariableObject } from "@nestjs/swagger/dist/interfaces/open-api-spec.interface";
|
|
3
|
+
import { ApiResponseOptions } from "@nestjs/swagger/dist/decorators/api-response.decorator";
|
|
4
|
+
import { OpenApiDocument } from "../interfaces/document.interface";
|
|
5
|
+
export interface IOpenApiDocumentBuilder {
|
|
6
|
+
openApiVersion?: string;
|
|
7
|
+
title?: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
version?: string;
|
|
10
|
+
termsOfService?: string;
|
|
11
|
+
basePath?: string;
|
|
12
|
+
contact?: IOpenApiDocumentBuilderContact;
|
|
13
|
+
license?: IOpenApiDocumentBuilderLicense;
|
|
14
|
+
servers?: IOpenApiDocumentBuilderServer[];
|
|
15
|
+
externalDoc?: IOpenApiDocumentBuilderExternalDoc;
|
|
16
|
+
extensions?: IOpenApiDocumentBuilderExtension[];
|
|
17
|
+
securities?: IOpenApiDocumentBuilderSecurity[];
|
|
18
|
+
globalResponses?: ApiResponseOptions[];
|
|
19
|
+
globalParameters?: Array<Omit<ParameterObject, 'example' | 'examples'>>;
|
|
20
|
+
auth?: IOpenApiDocumentBuilderAuth;
|
|
21
|
+
}
|
|
22
|
+
export interface IOpenApiDocumentBuilderContact {
|
|
23
|
+
name: string;
|
|
24
|
+
url: string;
|
|
25
|
+
email: string;
|
|
26
|
+
}
|
|
27
|
+
export interface IOpenApiDocumentBuilderLicense {
|
|
28
|
+
name: string;
|
|
29
|
+
url: string;
|
|
30
|
+
}
|
|
31
|
+
export interface IOpenApiDocumentBuilderServer {
|
|
32
|
+
url: string;
|
|
33
|
+
description?: string;
|
|
34
|
+
variables?: Record<string, ServerVariableObject>;
|
|
35
|
+
serverExtraProperties?: Record<string, any>;
|
|
36
|
+
}
|
|
37
|
+
export interface IOpenApiDocumentBuilderExternalDoc {
|
|
38
|
+
url: string;
|
|
39
|
+
description: string;
|
|
40
|
+
}
|
|
41
|
+
export interface IOpenApiDocumentBuilderExtension<T = any> {
|
|
42
|
+
key: string;
|
|
43
|
+
properties: T;
|
|
44
|
+
location?: ExtensionLocation;
|
|
45
|
+
}
|
|
46
|
+
export interface IOpenApiDocumentBuilderSecurity {
|
|
47
|
+
name: string;
|
|
48
|
+
options: SecuritySchemeObject;
|
|
49
|
+
requirements?: string[];
|
|
50
|
+
}
|
|
51
|
+
export interface IOpenApiDocumentBuilderAuth {
|
|
52
|
+
basic?: true | IOpenApiDocumentBuilderAuthSimple | IOpenApiDocumentBuilderAuthSimple[];
|
|
53
|
+
bearer?: true | IOpenApiDocumentBuilderAuthSimple | IOpenApiDocumentBuilderAuthSimple[];
|
|
54
|
+
oauth2?: true | IOpenApiDocumentBuilderAuthSimple | IOpenApiDocumentBuilderAuthSimple[];
|
|
55
|
+
apiKey?: true | IOpenApiDocumentBuilderAuthSimple | IOpenApiDocumentBuilderAuthSimple[];
|
|
56
|
+
cookie?: true | IOpenApiDocumentBuilderAuthCookie | IOpenApiDocumentBuilderAuthCookie[];
|
|
57
|
+
}
|
|
58
|
+
export interface IOpenApiDocumentBuilderAuthSimple {
|
|
59
|
+
name?: string;
|
|
60
|
+
options?: SecuritySchemeObject;
|
|
61
|
+
}
|
|
62
|
+
export interface IOpenApiDocumentBuilderAuthCookie {
|
|
63
|
+
cookieName?: string;
|
|
64
|
+
options?: SecuritySchemeObject;
|
|
65
|
+
securityName?: string;
|
|
66
|
+
}
|
|
67
|
+
export declare class OpenApiDocumentBuilder extends DocumentBuilder {
|
|
68
|
+
constructor(options?: IOpenApiDocumentBuilder);
|
|
69
|
+
protected get documentObject(): Omit<OpenApiDocument, 'paths'>;
|
|
70
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenApiDocumentBuilder = void 0;
|
|
4
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
5
|
+
class OpenApiDocumentBuilder extends swagger_1.DocumentBuilder {
|
|
6
|
+
constructor(options) {
|
|
7
|
+
super();
|
|
8
|
+
options?.openApiVersion && this.setOpenAPIVersion(options.openApiVersion);
|
|
9
|
+
options?.title && this.setTitle(options.title);
|
|
10
|
+
options?.description && this.setDescription(options.description);
|
|
11
|
+
options?.version && this.setVersion(options.version);
|
|
12
|
+
options?.termsOfService && this.setTermsOfService(options.termsOfService);
|
|
13
|
+
options?.basePath && this.setBasePath(options.basePath);
|
|
14
|
+
options?.contact && this.setContact(options.contact.name, options.contact.url, options.contact.email);
|
|
15
|
+
options?.license && this.setLicense(options.license.name, options.license.url);
|
|
16
|
+
options?.servers && options.servers.map(server => this.addServer(server.url, server.description, server.variables, server.serverExtraProperties));
|
|
17
|
+
options?.externalDoc && this.setExternalDoc(options?.externalDoc.description, options.externalDoc.url);
|
|
18
|
+
options?.extensions && options.extensions.map(extension => this.addExtension(extension.key, extension.properties, extension.location));
|
|
19
|
+
options?.securities && options.securities.map(security => {
|
|
20
|
+
this.addSecurity(security.name, security.options);
|
|
21
|
+
security.requirements && this.addSecurityRequirements(security.name, security.requirements);
|
|
22
|
+
});
|
|
23
|
+
options?.globalResponses && this.addGlobalResponse(...options.globalResponses);
|
|
24
|
+
options?.globalParameters && this.addGlobalParameters(...options.globalParameters);
|
|
25
|
+
options?.auth?.basic && (Array.isArray(options.auth.basic) ? options.auth.basic : [options.auth.basic === true ? {} : options.auth.basic]).map(auth => this.addBasicAuth(auth.options, auth.name));
|
|
26
|
+
options?.auth?.bearer && (Array.isArray(options.auth.bearer) ? options.auth.bearer : [options.auth.bearer === true ? {} : options.auth.bearer]).map(auth => this.addBearerAuth(auth.options, auth.name));
|
|
27
|
+
options?.auth?.oauth2 && (Array.isArray(options.auth.oauth2) ? options.auth.oauth2 : [options.auth.oauth2 === true ? {} : options.auth.oauth2]).map(auth => this.addOAuth2(auth.options, auth.name));
|
|
28
|
+
options?.auth?.apiKey && (Array.isArray(options.auth.apiKey) ? options.auth.apiKey : [options.auth.apiKey === true ? {} : options.auth.apiKey]).map(auth => this.addApiKey(auth.options, auth.name));
|
|
29
|
+
options?.auth?.cookie && (Array.isArray(options.auth.cookie) ? options.auth.cookie : [options.auth.cookie === true ? {} : options.auth.cookie]).map(auth => this.addCookieAuth(auth.cookieName, auth.options, auth.securityName));
|
|
30
|
+
}
|
|
31
|
+
get documentObject() {
|
|
32
|
+
return this.document;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.OpenApiDocumentBuilder = OpenApiDocumentBuilder;
|
|
36
|
+
//# sourceMappingURL=document-builder.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-builder.utils.js","sourceRoot":"","sources":["../../../lib/utils/document-builder.utils.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAyEhD,MAAa,sBAAuB,SAAQ,yBAAe;IAEzD,YAAY,OAAiC;QAC3C,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC1E,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/C,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACjE,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC1E,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxD,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/E,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAClJ,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvG,OAAO,EAAE,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvI,OAAO,EAAE,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACvD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClD,QAAQ,CAAC,YAAY,IAAI,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,eAAe,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;QAC/E,OAAO,EAAE,gBAAgB,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACnF,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnM,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzM,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrM,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrM,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACpO,CAAC;IAOD,IAAc,cAAc;QAC1B,OAAQ,IAAY,CAAC,QAAQ,CAAC;IAChC,CAAC;CAEF;AArCD,wDAqCC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare function getMetadataTarget(target: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor | number): any;
|
|
2
|
+
export declare function getMetadataDecorateArgs(target: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor | number): [target: any, propertyKey?: string | symbol];
|
|
3
|
+
export declare function setMetadata<T = any>(key: string | symbol, value: T, target: any, propertyKey?: string | symbol): T;
|
|
4
|
+
export declare function getMetadata<T = any>(key: string | symbol, target: any, propertyKey?: string | symbol): T | null;
|
|
5
|
+
export declare function setMetadataItems<T = any>(key: string | symbol, items: T[], target: any, propertyKey?: string | symbol): T[];
|
|
6
|
+
export declare function addMetadataItems<T = any>(key: string | symbol, items: T[], target: any, propertyKey?: string | symbol): T[];
|
|
7
|
+
export declare function addMetadataUniqueItems<T = any>(key: string | symbol, items: T[], target: any, propertyKey?: string | symbol, uniqueKey?: string): T[];
|
|
8
|
+
export declare function getMetadataItems<T = any>(key: string | symbol, target: any, propertyKey?: string | symbol): T[];
|
|
9
|
+
export declare function MetadataAccessor<T = any>(metadataKey?: string | symbol): {
|
|
10
|
+
readonly key: string | symbol;
|
|
11
|
+
get(target: any, propertyKey?: string | symbol): T | null;
|
|
12
|
+
set(value: T, target: any, propertyKey?: string | symbol): T;
|
|
13
|
+
};
|
|
14
|
+
export declare function MetadataMapAccessor<T = any, K extends keyof T = keyof T>(metadataKey?: string | symbol): {
|
|
15
|
+
readonly key: string | symbol;
|
|
16
|
+
getAll(target: any, propertyKey?: string | symbol): T | null;
|
|
17
|
+
setAll(value: any, target: any, propertyKey?: string | symbol): T;
|
|
18
|
+
get(name: K, target: any, propertyKey?: string | symbol): T[K] | null;
|
|
19
|
+
set(name: K, value: T[K], target: any, propertyKey?: string | symbol): T[K];
|
|
20
|
+
};
|
|
21
|
+
export declare function MetadataListAccessor<T = any>(metadataKey?: string | symbol, uniqueKey?: keyof T): {
|
|
22
|
+
readonly key: string | symbol;
|
|
23
|
+
get(target: any, propertyKey?: string | symbol): T[];
|
|
24
|
+
set(items: T, target: any, propertyKey?: string | symbol): T;
|
|
25
|
+
set(items: T[], target: any, propertyKey?: string | symbol): T[];
|
|
26
|
+
add(items: T, target: any, propertyKey?: string | symbol): T;
|
|
27
|
+
add(items: T[], target: any, propertyKey?: string | symbol): T[];
|
|
28
|
+
};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMetadataTarget = getMetadataTarget;
|
|
4
|
+
exports.getMetadataDecorateArgs = getMetadataDecorateArgs;
|
|
5
|
+
exports.setMetadata = setMetadata;
|
|
6
|
+
exports.getMetadata = getMetadata;
|
|
7
|
+
exports.setMetadataItems = setMetadataItems;
|
|
8
|
+
exports.addMetadataItems = addMetadataItems;
|
|
9
|
+
exports.addMetadataUniqueItems = addMetadataUniqueItems;
|
|
10
|
+
exports.getMetadataItems = getMetadataItems;
|
|
11
|
+
exports.MetadataAccessor = MetadataAccessor;
|
|
12
|
+
exports.MetadataMapAccessor = MetadataMapAccessor;
|
|
13
|
+
exports.MetadataListAccessor = MetadataListAccessor;
|
|
14
|
+
const lodash_1 = require("lodash");
|
|
15
|
+
function getMetadataTarget(target, propertyKey, descriptor) {
|
|
16
|
+
target = propertyKey ? target : typeof target === 'function' ? target : target.constructor;
|
|
17
|
+
return descriptor && typeof descriptor === 'object' && 'value' in descriptor ? descriptor.value : target;
|
|
18
|
+
}
|
|
19
|
+
function getMetadataDecorateArgs(target, propertyKey, descriptor) {
|
|
20
|
+
if (descriptor && typeof descriptor === 'object') {
|
|
21
|
+
return [getMetadataTarget(target, propertyKey, descriptor)];
|
|
22
|
+
}
|
|
23
|
+
return propertyKey ? [getMetadataTarget(target, propertyKey), propertyKey] : [getMetadataTarget(target, propertyKey)];
|
|
24
|
+
}
|
|
25
|
+
function setMetadata(key, value, target, propertyKey) {
|
|
26
|
+
Reflect.defineMetadata(key, value, target, propertyKey);
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
function getMetadata(key, target, propertyKey) {
|
|
30
|
+
return Reflect.getMetadata(key, target, propertyKey) || null;
|
|
31
|
+
}
|
|
32
|
+
function setMetadataItems(key, items, target, propertyKey) {
|
|
33
|
+
setMetadata(key, items, target, propertyKey);
|
|
34
|
+
return items;
|
|
35
|
+
}
|
|
36
|
+
function addMetadataItems(key, items, target, propertyKey) {
|
|
37
|
+
const current = getMetadataItems(key, target, propertyKey);
|
|
38
|
+
return setMetadataItems(key, [...current, ...items], target, propertyKey);
|
|
39
|
+
}
|
|
40
|
+
function addMetadataUniqueItems(key, items, target, propertyKey, uniqueKey) {
|
|
41
|
+
const current = getMetadataItems(key, target, propertyKey);
|
|
42
|
+
if (uniqueKey) {
|
|
43
|
+
items = [...current, ...items].reverse();
|
|
44
|
+
items = (0, lodash_1.uniqBy)(items, uniqueKey);
|
|
45
|
+
}
|
|
46
|
+
return setMetadataItems(key, Array.from(new Set([...current, ...items])), target, propertyKey);
|
|
47
|
+
}
|
|
48
|
+
function getMetadataItems(key, target, propertyKey) {
|
|
49
|
+
const value = getMetadata(key, target, propertyKey);
|
|
50
|
+
return Array.isArray(value) ? value : [];
|
|
51
|
+
}
|
|
52
|
+
function MetadataAccessor(metadataKey) {
|
|
53
|
+
return new class MetadataAccessor {
|
|
54
|
+
key = metadataKey || Symbol();
|
|
55
|
+
get(target, propertyKey) {
|
|
56
|
+
return getMetadata(this.key, target, propertyKey) || null;
|
|
57
|
+
}
|
|
58
|
+
set(value, target, propertyKey) {
|
|
59
|
+
return setMetadata(this.key, value, target, propertyKey);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function MetadataMapAccessor(metadataKey) {
|
|
64
|
+
return new class MetadataMapAccessor {
|
|
65
|
+
key = metadataKey || Symbol();
|
|
66
|
+
getAll(target, propertyKey) {
|
|
67
|
+
return getMetadata(this.key, target, propertyKey) || null;
|
|
68
|
+
}
|
|
69
|
+
setAll(value, target, propertyKey) {
|
|
70
|
+
return setMetadata(this.key, value, target, propertyKey);
|
|
71
|
+
}
|
|
72
|
+
get(name, target, propertyKey) {
|
|
73
|
+
const obj = this.getAll(target, propertyKey) || {};
|
|
74
|
+
return obj[name] || null;
|
|
75
|
+
}
|
|
76
|
+
set(name, value, target, propertyKey) {
|
|
77
|
+
const obj = this.getAll(target, propertyKey) || {};
|
|
78
|
+
obj[name] = value;
|
|
79
|
+
this.setAll(obj, target, propertyKey);
|
|
80
|
+
return value;
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function MetadataListAccessor(metadataKey, uniqueKey) {
|
|
85
|
+
return new class MetadataListAccessor {
|
|
86
|
+
key = metadataKey || Symbol();
|
|
87
|
+
get(target, propertyKey) {
|
|
88
|
+
return getMetadataItems(this.key, target, propertyKey);
|
|
89
|
+
}
|
|
90
|
+
set(items, target, propertyKey) {
|
|
91
|
+
setMetadataItems(this.key, Array.isArray(items) ? items : [items], target, propertyKey);
|
|
92
|
+
return items;
|
|
93
|
+
}
|
|
94
|
+
add(items, target, propertyKey) {
|
|
95
|
+
addMetadataUniqueItems(this.key, Array.isArray(items) ? items : [items], target, propertyKey, uniqueKey);
|
|
96
|
+
return items;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=metadata.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.utils.js","sourceRoot":"","sources":["../../../lib/utils/metadata.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IOpenApiTypeRefSingle } from "../interfaces/common.interface";
|
|
2
|
+
import { ReferenceObject, SchemaObject } from "@nestjs/swagger/dist/interfaces/open-api-spec.interface";
|
|
3
|
+
import { Type } from "@nestjs/common";
|
|
4
|
+
import { ApiResponseOptions } from "@nestjs/swagger/dist/decorators/api-response.decorator";
|
|
5
|
+
export declare function createSchemaRefs(refs: Array<IOpenApiTypeRefSingle | SchemaObject | ReferenceObject>, options?: {
|
|
6
|
+
onClassRef?: (ref: Type<unknown>) => void;
|
|
7
|
+
}): Array<SchemaObject | ReferenceObject>;
|
|
8
|
+
export declare function createSchemaFromPrimitive(item: any): SchemaObject | null;
|
|
9
|
+
export declare function generateSchemaType(options: ApiResponseOptions): string | null;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSchemaRefs = createSchemaRefs;
|
|
4
|
+
exports.createSchemaFromPrimitive = createSchemaFromPrimitive;
|
|
5
|
+
exports.generateSchemaType = generateSchemaType;
|
|
6
|
+
const type_utils_1 = require("./type.utils");
|
|
7
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
8
|
+
function createSchemaRefs(refs, options) {
|
|
9
|
+
return refs
|
|
10
|
+
.map(ref => {
|
|
11
|
+
if ((0, type_utils_1.isPlainObject)(ref)) {
|
|
12
|
+
return ref;
|
|
13
|
+
}
|
|
14
|
+
if ((0, type_utils_1.isPrimitive)(ref)) {
|
|
15
|
+
return createSchemaFromPrimitive(ref);
|
|
16
|
+
}
|
|
17
|
+
const classRef = (0, type_utils_1.resolveClassRef)(ref);
|
|
18
|
+
if (classRef) {
|
|
19
|
+
options?.onClassRef?.(classRef);
|
|
20
|
+
return { $ref: (0, swagger_1.getSchemaPath)(classRef) };
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
})
|
|
24
|
+
.filter(_ => !!_);
|
|
25
|
+
}
|
|
26
|
+
function createSchemaFromPrimitive(item) {
|
|
27
|
+
switch (true) {
|
|
28
|
+
case item === String: return { type: 'string' };
|
|
29
|
+
case item === Number: return { type: 'number' };
|
|
30
|
+
case item === Boolean: return { type: 'boolean' };
|
|
31
|
+
case item === Array: return { type: 'array' };
|
|
32
|
+
case item === Object: return { type: 'object' };
|
|
33
|
+
case item === Date: return { type: 'string', format: 'date-time' };
|
|
34
|
+
default: return null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function generateSchemaType(options) {
|
|
38
|
+
if ((0, type_utils_1.isPlainObject)(options)) {
|
|
39
|
+
const { type, isArray, schema } = options;
|
|
40
|
+
if (type && isArray === true) {
|
|
41
|
+
return 'array';
|
|
42
|
+
}
|
|
43
|
+
if ((0, type_utils_1.isClassRef)(type)) {
|
|
44
|
+
return 'object';
|
|
45
|
+
}
|
|
46
|
+
if (typeof type === 'function') {
|
|
47
|
+
return type.name;
|
|
48
|
+
}
|
|
49
|
+
if (typeof type === 'string') {
|
|
50
|
+
return type;
|
|
51
|
+
}
|
|
52
|
+
if ((0, type_utils_1.isPlainObject)(schema) && 'type' in schema && typeof schema.type === 'string') {
|
|
53
|
+
return schema.type;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=schema.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.utils.js","sourceRoot":"","sources":["../../../lib/utils/schema.utils.ts"],"names":[],"mappings":";;AAOA,4CA4BC;AAED,8DAUC;AAED,gDAiCC;AAhFD,6CAAqF;AAErF,6CAA8C;AAG9C,SAAgB,gBAAgB,CAAC,IAA+D,EAAE,OAEjG;IACC,OAAO,IAAI;SACR,GAAG,CAAC,GAAG,CAAC,EAAE;QAGT,IAAG,IAAA,0BAAa,EAAC,GAAG,CAAC,EAAC,CAAC;YACrB,OAAO,GAAG,CAAC;QACb,CAAC;QAGD,IAAG,IAAA,wBAAW,EAAC,GAAG,CAAC,EAAC,CAAC;YACnB,OAAO,yBAAyB,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QAGD,MAAM,QAAQ,GAAG,IAAA,4BAAe,EAAC,GAAG,CAAC,CAAC;QACtC,IAAG,QAAQ,EAAC,CAAC;YACX,OAAO,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;YAChC,OAAO,EAAE,IAAI,EAAE,IAAA,uBAAa,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC3C,CAAC;QAGD,OAAO,IAAI,CAAC;IAEd,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAQ,CAAC;AAC7B,CAAC;AAED,SAAgB,yBAAyB,CAAC,IAAS;IACjD,QAAO,IAAI,EAAE,CAAC;QACZ,KAAK,IAAI,KAAK,MAAO,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACjD,KAAK,IAAI,KAAK,MAAO,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACjD,KAAK,IAAI,KAAK,OAAQ,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACnD,KAAK,IAAI,KAAK,KAAM,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC/C,KAAK,IAAI,KAAK,MAAO,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACjD,KAAK,IAAI,KAAK,IAAK,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QACpE,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAgB,kBAAkB,CAAC,OAA2B;IAC5D,IAAG,IAAA,0BAAa,EAAC,OAAO,CAAC,EAAC,CAAC;QAGzB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAc,CAAC;QAGjD,IAAG,IAAI,IAAI,OAAO,KAAK,IAAI,EAAC,CAAC;YAC3B,OAAO,OAAO,CAAC;QACjB,CAAC;QAGD,IAAG,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAC,CAAC;YACnB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAGD,IAAG,OAAO,IAAI,KAAK,UAAU,EAAC,CAAC;YAC7B,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QAGD,IAAG,OAAO,IAAI,KAAK,QAAQ,EAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAGD,IAAG,IAAA,0BAAa,EAAC,MAAM,CAAC,IAAI,MAAM,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAC,CAAC;YAC/E,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;IAEH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Type } from "@nestjs/common";
|
|
2
|
+
import { IOpenApiRouteLike, IOpenApiType, IOpenApiTypeRef, IOpenApiTypeRefList, IOpenApiTypeRefSingle } from "../interfaces/common.interface";
|
|
3
|
+
export declare function isNil(value: any): value is null | undefined;
|
|
4
|
+
export declare function isPrimitive(value: any): value is String | Number | Boolean | Array<any> | Object | Date;
|
|
5
|
+
export declare function isPlainObject(value: any): value is Object;
|
|
6
|
+
export declare function isClassRef<T = unknown>(value: any): value is Type<T>;
|
|
7
|
+
export declare function isType(value: any): value is IOpenApiType;
|
|
8
|
+
export declare function isTypeRef<T = unknown>(value: any): value is IOpenApiTypeRef<T>;
|
|
9
|
+
export declare function extractType(args: any[], startIndex?: number, endIndex?: number): IOpenApiType | null;
|
|
10
|
+
export declare function extractTypeRef<T = unknown>(args: any[], startIndex?: number, endIndex?: number): IOpenApiTypeRef<T> | null;
|
|
11
|
+
export declare function extractRoute(args: any[], startIndex?: number, endIndex?: number): IOpenApiRouteLike | null;
|
|
12
|
+
export declare function extractString(args: any[], startIndex?: number, endIndex?: number): string | null;
|
|
13
|
+
export declare function extractNumber(args: any[], startIndex?: number, endIndex?: number): number | null;
|
|
14
|
+
export declare function extractObject<T = any>(args: any[], startIndex?: number, endIndex?: number): T | null;
|
|
15
|
+
export declare function extractFalse(args: any[], startIndex?: number, endIndex?: number): boolean;
|
|
16
|
+
export declare function reduceArgs(args: any[], startIndex?: number, endIndex?: number): any[];
|
|
17
|
+
export declare function extractAndResolveClassRef<T = unknown>(args: any[], startIndex?: number, endIndex?: number): Type<T> | Type<T>[] | null;
|
|
18
|
+
export declare function resolveClassRef<T = unknown>(value: IOpenApiTypeRefSingle<T>): Type<T> | null;
|
|
19
|
+
export declare function resolveClassRef<T = unknown>(value: IOpenApiTypeRefList<T>): Type<T>[] | null;
|
|
20
|
+
export declare function resolveClassRef<T = unknown>(value: IOpenApiTypeRef<T>): Type<T> | Type<T>[] | null;
|