@girin/framework
Version:
Core modules for Girin: GraphQL server framework
32 lines • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const environment_1 = require("@girin/environment");
const typelink_1 = require("@girin/typelink");
const graphql_1 = require("graphql");
class SchemaBuilder extends environment_1.Module {
constructor(configs) {
super();
this.configs = configs;
const query = typelink_1.getType(configs.Query);
const mutation = configs.Mutation && typelink_1.getType(configs.Mutation);
const subscription = configs.Subscription && typelink_1.getType(configs.Subscription);
const types = configs.types ? configs.types.map(arg => typelink_1.getType(arg)) : [];
const directives = [];
if (query) {
types.push(query);
}
if (mutation) {
types.push(mutation);
}
if (subscription) {
types.push(subscription);
}
this.schemaOptions = { query, mutation, subscription, types, directives };
}
get label() { return 'SchemaBuilder'; }
onBootstrap() {
this.schema = new graphql_1.GraphQLSchema(this.schemaOptions);
}
}
exports.SchemaBuilder = SchemaBuilder;
//# sourceMappingURL=SchemaBuilder.js.map