1 | "use strict";
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 | Object.defineProperty(exports, "__esModule", { value: true });
|
9 | exports.InterfaceType = void 0;
|
10 | const shared_utils_1 = require("@nestjs/common/utils/shared.utils");
|
11 | const class_type_enum_1 = require("../enums/class-type.enum");
|
12 | const lazy_metadata_storage_1 = require("../schema-builder/storages/lazy-metadata.storage");
|
13 | const type_metadata_storage_1 = require("../schema-builder/storages/type-metadata.storage");
|
14 | const add_class_type_metadata_util_1 = require("../utils/add-class-type-metadata.util");
|
15 |
|
16 |
|
17 |
|
18 | function InterfaceType(nameOrOptions, interfaceOptions) {
|
19 | const [name, options = {}] = (0, shared_utils_1.isString)(nameOrOptions)
|
20 | ? [nameOrOptions, interfaceOptions]
|
21 | : [undefined, nameOrOptions];
|
22 | return (target) => {
|
23 | const addInterfaceMetadata = () => {
|
24 | const metadata = {
|
25 | name: name || target.name,
|
26 | target,
|
27 | ...options,
|
28 | interfaces: options.implements,
|
29 | };
|
30 | type_metadata_storage_1.TypeMetadataStorage.addInterfaceMetadata(metadata);
|
31 | };
|
32 |
|
33 |
|
34 | addInterfaceMetadata();
|
35 | lazy_metadata_storage_1.LazyMetadataStorage.store(() => addInterfaceMetadata());
|
36 | (0, add_class_type_metadata_util_1.addClassTypeMetadata)(target, class_type_enum_1.ClassType.INTERFACE);
|
37 | };
|
38 | }
|
39 | exports.InterfaceType = InterfaceType;
|