@graphql-tools/node-require
Version:
A set of utils for faster development of GraphQL tools
28 lines (27 loc) • 1.2 kB
JavaScript
/* eslint-disable @typescript-eslint/triple-slash-reference */
/* eslint-disable spaced-comment */
Object.defineProperty(exports, "__esModule", { value: true });
exports.registerGraphQLExtensions = exports.handleModule = void 0;
///<reference path="declarations.d.ts" />
const graphql_1 = require("graphql");
const graphql_file_loader_1 = require("@graphql-tools/graphql-file-loader");
const load_1 = require("@graphql-tools/load");
const utils_1 = require("@graphql-tools/utils");
const VALID_EXTENSIONS = ['graphql', 'graphqls', 'gql', 'gqls'];
function handleModule(m, filename) {
const sources = (0, load_1.loadTypedefsSync)(filename, {
loaders: [new graphql_file_loader_1.GraphQLFileLoader()],
});
const documents = sources.map(source => source.document).filter(utils_1.isSome);
const mergedDoc = (0, graphql_1.concatAST)(documents);
m.exports = mergedDoc;
}
exports.handleModule = handleModule;
function registerGraphQLExtensions(nodeRequire) {
for (const ext of VALID_EXTENSIONS) {
nodeRequire.extensions[`.${ext}`] = handleModule;
}
}
exports.registerGraphQLExtensions = registerGraphQLExtensions;
registerGraphQLExtensions(require);
;