graphql-modules
Version:
Create reusable, maintainable, testable and extendable GraphQL modules
25 lines (24 loc) • 931 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createTypeDefs = createTypeDefs;
const graphql_1 = require("graphql");
const errors_1 = require("../shared/errors");
/**
* Create a list of DocumentNode objects based on Module's config.
* Add a location, so we get richer errors.
*/
function createTypeDefs(config) {
const typeDefs = Array.isArray(config.typeDefs)
? config.typeDefs
: [config.typeDefs];
ensureDocumentNode(config, typeDefs);
return typeDefs;
}
function ensureDocumentNode(config, typeDefs) {
function ensureEach(doc, i) {
if ((doc === null || doc === void 0 ? void 0 : doc.kind) !== graphql_1.Kind.DOCUMENT) {
throw new errors_1.NonDocumentNodeError(`Expected parsed document but received ${typeof doc} at index ${i} in typeDefs list`, (0, errors_1.useLocation)(config));
}
}
typeDefs.forEach(ensureEach);
}