# All files / decorators/gapi-args gapi-args.ts

8.33% Statements 1/12
100% Branches 0/0
0% Functions 0/4
8.33% Lines 1/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47

    2x

    // const test = {
    //     scope: [ENUMS.USER_TYPE.ADMIN.key, ENUMS.USER_TYPE.USER.key],
    //     type: RelationshipType,
    //     args: {
    //       message: {
    //         type: new GraphQLNonNull(GraphQLString)
    //       },
    //       userId: {
    //         type: new GraphQLNonNull(GraphQLInt)
    //       },
    //       friendId: {
    //         type: new GraphQLNonNull(GraphQLInt)
    //       },
    //       email: {
    //         type: new GraphQLNonNull(GraphQLString)
    //       }
    //     },
    //     resolve: (root, { userId, friendId, email }, context: Credential) => {
    //       return Relationship.create({
    //         userId: userId,
    //         friendId: friendId,
    //         lastEditedBy: context.user.id,
    //         status: ENUMS.STATUS.PENDING.key,
    //         email: email || ''
    //       });
    //     }
    //   };
    // ;

    export function Args(arg): Function {
        Object.keys(arg).forEach(a => {
            arg[a] = {type: arg[a]};
        });
        const originalDecoratorArguments = {args: arg};
        return (t: any, propertyName: string, descriptor) => {
            const target = t;
            const originalMethod = descriptor.value;
            descriptor.value = function (...args: any[]) {
                let result = originalMethod.apply(args);
                result = {...originalDecoratorArguments, ...result};
                return result;
            };
            return descriptor;
        };
      }