typegraphql-nestjs
Version:
Basic integration of TypeGraphQL in NestJS. Allows to use TypeGraphQL features while integrating with NestJS modules system and dependency injector.
63 lines (62 loc) • 2.39 kB
JavaScript
;
var TypeGraphQLModule_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TypeGraphQLModule = void 0;
const tslib_1 = require("tslib");
const common_1 = require("@nestjs/common");
const graphql_1 = require("@nestjs/graphql");
const constants_1 = require("./constants");
const prepare_options_service_1 = tslib_1.__importDefault(require("./prepare-options.service"));
const typegraphql_options_factory_1 = tslib_1.__importDefault(require("./typegraphql-options.factory"));
let TypeGraphQLModule = TypeGraphQLModule_1 = class TypeGraphQLModule {
static forFeature(options = {}) {
const token = `${constants_1.TYPEGRAPHQL_FEATURE_MODULE_OPTIONS}_${this
.forFeatureIndex++}`;
return {
module: TypeGraphQLModule_1,
providers: [{ provide: token, useValue: options }],
exports: [token],
};
}
static forRoot(options = {}) {
const dynamicGraphQLModule = graphql_1.GraphQLModule.forRootAsync({
driver: options.driver,
useClass: typegraphql_options_factory_1.default,
});
return {
...dynamicGraphQLModule,
providers: [
...dynamicGraphQLModule.providers,
prepare_options_service_1.default,
{
provide: constants_1.TYPEGRAPHQL_ROOT_MODULE_OPTIONS,
useValue: options,
},
],
};
}
static forRootAsync(options) {
const dynamicGraphQLModule = graphql_1.GraphQLModule.forRootAsync({
driver: options.driver,
imports: options.imports,
useClass: typegraphql_options_factory_1.default,
});
return {
...dynamicGraphQLModule,
providers: [
...dynamicGraphQLModule.providers,
prepare_options_service_1.default,
{
inject: options.inject,
provide: constants_1.TYPEGRAPHQL_ROOT_MODULE_OPTIONS,
useFactory: options.useFactory,
},
],
};
}
};
exports.TypeGraphQLModule = TypeGraphQLModule;
TypeGraphQLModule.forFeatureIndex = 1;
exports.TypeGraphQLModule = TypeGraphQLModule = TypeGraphQLModule_1 = tslib_1.__decorate([
(0, common_1.Module)({})
], TypeGraphQLModule);