UNPKG

@cortexql/core

Version:

A RESTful API framework for your apps based on GraphQL type system.

40 lines 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const fs = require("fs"); const schema_1 = require("../hooks/schema"); const schemaReady_1 = require("../hooks/schemaReady"); const getTranspiler_1 = require("./getTranspiler"); const paths_1 = require("../paths"); const getResolvers_1 = require("./getResolvers"); const config_1 = require("../config"); let schema; function getSchema() { if (schema !== undefined) { return schema; } const transpiler = getTranspiler_1.getTranspiler(); if (process.env.CORTEXQL_COMMAND === 'develop') { // We transpile GraphQL at runtime(ish) console.log('Generating GraphQL schema...'); transpiler.generate(); schema = transpiler.getSchema(); } else { if (!fs.existsSync(paths_1.getSchemaPath())) { throw new Error('No schema build was found'); } // In production we use the generated schema files console.log('Loading GraphQL schema...'); schema = transpiler.restoreSchema(paths_1.getSchemaPath()); } const resolvers = getResolvers_1.getResolvers(schema); schema = schema_1.default.filter(schema, { resolvers }); transpiler.addResolveFunctionsToSchema(schema, resolvers); if (config_1.config.disableSubscription) { delete schema._subscriptionType; } schemaReady_1.default.do({ schema }); return schema; } exports.getSchema = getSchema; //# sourceMappingURL=getSchema.js.map