UNPKG

graphql-composer

Version:
78 lines 2.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EnumType = void 0; const graphql_1 = require("graphql"); const __1 = require("../../../.."); const GQLAnyType_1 = require("../../GQLAnyType"); class EnumType extends GQLAnyType_1.GQLAnyType { constructor(name, enumType) { super(name); this._values = []; if (enumType) { this._enumType = enumType; Object.keys(enumType).map((key) => { this.addValues(__1.EnumValue.create(key, enumType[key])); }); } } get enumType() { return this._enumType; } get values() { return this._values; } static create(name, enumType) { return new EnumType(name, enumType); } /** * Set the enum values * @param values The values to add */ setValues(...values) { this._values = values; return this; } /** * Add some enum values * @param values The values to add */ addValues(...values) { return this.setValues(...this._values, ...values); } /** * Add a single enum value * @param name the value name * @param value the value */ addValue(name, value) { return this.addValues(__1.EnumValue.create(name, value)); } /** * Remove some values from the enum * @param values The values to remove */ removeValues(...values) { return this.setValues(...__1.ArrayHelper.remove(values, this._values)); } copy() { return EnumType.create(this.name) .addValues(...this._values) .setExtensions(this.extensions) .setDirectives(...this.directives); } build() { const values = this._values.reduce((prev, value) => { prev[value.name] = value.build(); delete prev[value.name]["isDeprecated"]; return prev; }, {}); this._built = new graphql_1.GraphQLEnumType({ name: this.name, description: this._description, values, }); return this.built; } } exports.EnumType = EnumType; //# sourceMappingURL=EnumType.js.map