1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.Directive = void 0;
|
4 | const graphql_1 = require("graphql");
|
5 | const directive_parsing_error_1 = require("../schema-builder/errors/directive-parsing.error");
|
6 | const lazy_metadata_storage_1 = require("../schema-builder/storages/lazy-metadata.storage");
|
7 | const type_metadata_storage_1 = require("../schema-builder/storages/type-metadata.storage");
|
8 |
|
9 |
|
10 |
|
11 | function Directive(sdl) {
|
12 | return (target, key) => {
|
13 | validateDirective(sdl);
|
14 | lazy_metadata_storage_1.LazyMetadataStorage.store(() => {
|
15 | if (key) {
|
16 | type_metadata_storage_1.TypeMetadataStorage.addDirectivePropertyMetadata({
|
17 | target: target.constructor,
|
18 | fieldName: key,
|
19 | sdl,
|
20 | });
|
21 | }
|
22 | else {
|
23 | type_metadata_storage_1.TypeMetadataStorage.addDirectiveMetadata({
|
24 | target: target,
|
25 | sdl,
|
26 | });
|
27 | }
|
28 | });
|
29 | };
|
30 | }
|
31 | exports.Directive = Directive;
|
32 | function validateDirective(sdl) {
|
33 | try {
|
34 | (0, graphql_1.parse)(`type String ${sdl}`);
|
35 | }
|
36 | catch (err) {
|
37 | throw new directive_parsing_error_1.DirectiveParsingError(sdl);
|
38 | }
|
39 | }
|