Repository URL to install this package:
|
Version:
0.0.6 ▾
|
"use strict";
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
t[p[i]] = s[p[i]];
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
const epoxy_1 = require("@graphql-modules/epoxy");
const core_1 = require("@graphql-modules/core");
var epoxy_2 = require("@graphql-modules/epoxy");
exports.mergeGraphQLSchemas = epoxy_2.mergeGraphQLSchemas;
var core_2 = require("@graphql-modules/core");
exports.GraphQLCoreModule = core_2.GraphQLModule;
class GraphQLModule extends core_1.GraphQLModule {
constructor(_options, _moduleConfig) {
const _a = _options, { dataSources, typeDefs } = _a, remainingOptions = __rest(_a, ["dataSources", "typeDefs"]);
const mergedTypeDefs = Array.isArray(typeDefs)
? epoxy_1.mergeGraphQLSchemas(typeDefs)
: typeDefs;
const superOptions = Object.assign({}, remainingOptions, { typeDefs: mergedTypeDefs });
super(superOptions, _moduleConfig);
if (dataSources) {
this.dataSources = dataSources;
}
if (remainingOptions.contextBuilder) {
this.syncContextBuilder = remainingOptions.contextBuilder;
}
if (Array.isArray(remainingOptions.imports)) {
this.dataSources = (arg) => {
const merged = {};
const imported = remainingOptions.imports;
imported.forEach(graphqlModule => {
// isFunction @todo
if (graphqlModule.dataSources) {
const returned = graphqlModule.dataSources(arg);
Object.assign(merged, returned);
}
});
if (dataSources) {
const computedDataSources = dataSources(arg);
Object.assign(merged, computedDataSources);
}
return merged;
};
}
// @note the one built in is async and weird
/**
* @todo - this does not hoist mergedContextBuilder?
*/
if (Array.isArray(remainingOptions.imports)) {
const mergedContextBuilder = (context) => {
const merged = {};
const imported = remainingOptions.imports;
imported.forEach(graphqlModule => {
if (graphqlModule.contextBuilder) {
const returned = graphqlModule.contextBuilder(context);
Object.assign(merged, returned);
}
if (graphqlModule.syncContextBuilder) {
const returned = graphqlModule.syncContextBuilder(context);
Object.assign(merged, returned);
}
});
return merged;
};
this.mergedContextBuilder = mergedContextBuilder;
}
}
}
exports.GraphQLModule = GraphQLModule;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhRTE1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9HcmFwaFFMTW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBS0Esa0RBQTREO0FBQzVELGdEQUc4QjtBQUU5QixnREFBNEQ7QUFBbkQsc0NBQUEsbUJBQW1CLENBQUE7QUFDNUIsOENBRzhCO0FBRjVCLG1DQUFBLGFBQWEsQ0FBcUI7QUFJcEMsTUFBYSxhQUlYLFNBQVEsb0JBQTJDO0lBS25ELFlBQ0UsUUFFQyxFQUNELGFBQXNCO1FBRXRCLE1BQU0sYUFBZ0UsRUFBaEUsRUFBRSxXQUFXLEVBQUUsUUFBUSxPQUF5QyxFQUF2QywwREFBdUMsQ0FBQTtRQUV0RSxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUM1QyxDQUFDLENBQUMsMkJBQW1CLENBQUMsUUFBUSxDQUFDO1lBQy9CLENBQUMsQ0FBQyxRQUFRLENBQUE7UUFFWixNQUFNLFlBQVkscUJBQVEsZ0JBQWdCLElBQUUsUUFBUSxFQUFFLGNBQWMsR0FBRSxDQUFBO1FBQ3RFLEtBQUssQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUE7UUFFbEMsSUFBSSxXQUFXLEVBQUU7WUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQTtTQUMvQjtRQUNELElBQUksZ0JBQWdCLENBQUMsY0FBYyxFQUFFO1lBQ25DLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQyxjQUFxQixDQUFBO1NBQ2pFO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxHQUFTLEVBQUUsRUFBRTtnQkFDL0IsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFBO2dCQUNqQixNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFnQixDQUFBO2dCQUNsRCxRQUFRLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFO29CQUMvQixtQkFBbUI7b0JBQ25CLElBQUksYUFBYSxDQUFDLFdBQVcsRUFBRTt3QkFDN0IsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQTt3QkFDL0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUE7cUJBQ2hDO2dCQUNILENBQUMsQ0FBQyxDQUFBO2dCQUVGLElBQUksV0FBVyxFQUFFO29CQUNmLE1BQU0sbUJBQW1CLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFBO29CQUM1QyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxDQUFBO2lCQUMzQztnQkFFRCxPQUFPLE1BQU0sQ0FBQTtZQUNmLENBQUMsQ0FBQTtTQUNGO1FBRUQsNENBQTRDO1FBQzVDOztXQUVHO1FBQ0gsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzNDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxPQUFnQixFQUFFLEVBQUU7Z0JBQ2hELE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQTtnQkFDakIsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsT0FBZ0IsQ0FBQTtnQkFDbEQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRTtvQkFDL0IsSUFBSSxhQUFhLENBQUMsY0FBYyxFQUFFO3dCQUNoQyxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFBO3dCQUN0RCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQTtxQkFDaEM7b0JBQ0QsSUFBSSxhQUFhLENBQUMsa0JBQWtCLEVBQUU7d0JBQ3BDLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQTt3QkFDMUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUE7cUJBQ2hDO2dCQUNILENBQUMsQ0FBQyxDQUFBO2dCQUVGLE9BQU8sTUFBTSxDQUFBO1lBQ2YsQ0FBQyxDQUFBO1lBRUQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLG9CQUEyQixDQUFBO1NBQ3hEO0lBQ0gsQ0FBQztDQUNGO0FBN0VELHNDQTZFQyJ9