@nestjs/graphql
Version:
Nest - modern, fast, powerful node.js web framework (@graphql)
26 lines (25 loc) • 1.44 kB
JavaScript
/**
* 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,
}));
}