@cortexql/core
Version:
A RESTful API framework for your apps based on GraphQL type system.
40 lines • 1.49 kB
JavaScript
;
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