UNPKG

1.83 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.createGqlPipesParamDecorator = exports.addPipesMetadata = exports.createGqlParamDecorator = void 0;
4const shared_utils_1 = require("@nestjs/common/utils/shared.utils");
5require("reflect-metadata");
6const graphql_constants_1 = require("../graphql.constants");
7function assignMetadata(args, paramtype, index, data, ...pipes) {
8 return {
9 ...args,
10 [`${paramtype}:${index}`]: {
11 index,
12 data,
13 pipes,
14 },
15 };
16}
17const createGqlParamDecorator = (paramtype) => {
18 return (data) => (target, key, index) => {
19 const args = Reflect.getMetadata(graphql_constants_1.PARAM_ARGS_METADATA, target.constructor, key) || {};
20 Reflect.defineMetadata(graphql_constants_1.PARAM_ARGS_METADATA, assignMetadata(args, paramtype, index, data), target.constructor, key);
21 };
22};
23exports.createGqlParamDecorator = createGqlParamDecorator;
24const addPipesMetadata = (paramtype, data, pipes, target, key, index) => {
25 const args = Reflect.getMetadata(graphql_constants_1.PARAM_ARGS_METADATA, target.constructor, key) || {};
26 const hasParamData = (0, shared_utils_1.isNil)(data) || (0, shared_utils_1.isString)(data);
27 const paramData = hasParamData ? data : undefined;
28 const paramPipes = hasParamData ? pipes : [data, ...pipes];
29 Reflect.defineMetadata(graphql_constants_1.PARAM_ARGS_METADATA, assignMetadata(args, paramtype, index, paramData, ...paramPipes), target.constructor, key);
30};
31exports.addPipesMetadata = addPipesMetadata;
32const createGqlPipesParamDecorator = (paramtype) => (data, ...pipes) => (target, key, index) => {
33 (0, exports.addPipesMetadata)(paramtype, data, pipes, target, key, index);
34};
35exports.createGqlPipesParamDecorator = createGqlPipesParamDecorator;