UNPKG

graphql-composer

Version:
79 lines 2.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Args = void 0; const __1 = require("../../.."); const GQLBasicType_1 = require("./GQLBasicType"); class Args extends GQLBasicType_1.GQLBasicType { constructor(classTypeOrInputType) { super(); this._args = []; if (classTypeOrInputType instanceof __1.InputType) { this.addArgs(...classTypeOrInputType.fields.map((f) => { return __1.Arg.create(f.name, f.type); })) .setExtensions(classTypeOrInputType.extensions) .setDirectives(...classTypeOrInputType.directives); } else { this._classType = classTypeOrInputType; } } get classType() { return this._classType; } get args() { return this._args; } static create(classTypeOrInputTypeOrName, type) { if (type) { const args = new Args(); return args.addArgs(__1.Arg.create(classTypeOrInputTypeOrName, type)); } return new Args(classTypeOrInputTypeOrName); } /** * Set the arguments list of the type * @param args The arguments list */ setArgs(...args) { this._args = args.filter((a) => a); return this; } /** * Add some arguments in the type * @param name The argument name * @param type The argument type */ addArgs(...args) { return this.setArgs(...this.args, ...args); } /** * Remove some arguments in the type * @param args The argument IDs */ removeArgs(...args) { return this.setArgs(...__1.ArrayHelper.remove(args, this._args)); } /** * Add a suffix to the name ("Args" by default) * @param suffix The suffix to add @default "Args" */ suffix(suffix = "Args") { this.setName(this.name + suffix); } build() { this._built = this._args.map((a) => a.build()); return this.built; } /** * Copy the args type */ copy() { return Args.create() .setArgs(...this.args) .setDescription(this.description) .setExtensions(this.extensions); } } exports.Args = Args; //# sourceMappingURL=Args.js.map