UNPKG

@nestjs/graphql

Version:

Nest - modern, fast, powerful node.js web framework (@graphql)

26 lines (25 loc) 1.44 kB
/** * The API surface of this module has been heavily inspired by the "type-graphql" library (https://github.com/MichalLytek/type-graphql), originally designed & released by Michal Lytek. * In the v6 major release of NestJS, we introduced the code-first approach as a compatibility layer between this package and the `@nestjs/graphql` module. * Eventually, our team decided to reimplement all the features from scratch due to a lack of flexibility. * To avoid numerous breaking changes, the public API is backward-compatible and may resemble "type-graphql". */ import { LazyMetadataStorage } from '../schema-builder/storages/lazy-metadata.storage.js'; import { TypeMetadataStorage } from '../schema-builder/storages/type-metadata.storage.js'; /** * Registers a GraphqQL enum type based on the passed enumerator reference. * @param options */ export function registerEnumType(enumRef, options) { if (!options || typeof options.name !== 'string' || options.name === '') { throw new Error(`registerEnumType requires an "options" object with a non-empty "name" (e.g. registerEnumType(MyEnum, { name: 'MyEnum' })).`); } LazyMetadataStorage.store(() => TypeMetadataStorage.addEnumMetadata({ ref: enumRef, name: options.name, description: options.description, valuesMap: options.valuesMap || {}, registerIn: options.registerIn, directives: options.directives, })); }