Repository URL to install this package:
|
Version:
7.1.21 ▾
|
"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 core_1 = require("@graphql-modules/core");
class GraphQLModule extends core_1.GraphQLModule {
constructor(_options, _moduleConfig) {
const { dataSources } = _options, remainingOptions = __rest(_options, ["dataSources"]);
super(remainingOptions, _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
if (Array.isArray(remainingOptions.imports)) {
this.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);
}
});
// @todo do using option
// if (this.contextBuilder) {
// const computedDataSources = this.contextBuilder(arg)
// Object.assign(merged, computedDataSources)
// }
return merged;
};
}
}
}
exports.GraphQLModule = GraphQLModule;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ncmFwaHFsLW1vZHVsZXMvbGlicmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUtBLGdEQUc4QjtBQUU5QixNQUFhLGFBSVgsU0FBUSxvQkFBMkM7SUFRbkQsWUFDRSxRQUlDLEVBQ0QsYUFBc0I7UUFFdEIsTUFBTSxFQUFFLFdBQVcsS0FBMEIsUUFBUSxFQUFoQyxvREFBZ0MsQ0FBQTtRQUNyRCxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDLENBQUE7UUFFdEMsSUFBSSxXQUFXLEVBQUU7WUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQTtTQUMvQjtRQUNELElBQUksZ0JBQWdCLENBQUMsY0FBYyxFQUFFO1lBQ25DLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUE7U0FDMUQ7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLEdBQVMsRUFBRSxFQUFFO2dCQUMvQixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUE7Z0JBQ2pCLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLE9BQWdCLENBQUE7Z0JBQ2xELFFBQVEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7b0JBQy9CLG1CQUFtQjtvQkFDbkIsSUFBSSxhQUFhLENBQUMsV0FBVyxFQUFFO3dCQUM3QixNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFBO3dCQUMvQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQTtxQkFDaEM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUE7Z0JBRUYsSUFBSSxXQUFXLEVBQUU7b0JBQ2YsTUFBTSxtQkFBbUIsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUE7b0JBQzVDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLENBQUE7aUJBQzNDO2dCQUVELE9BQU8sTUFBTSxDQUFBO1lBQ2YsQ0FBQyxDQUFBO1NBQ0Y7UUFFRCw0Q0FBNEM7UUFDNUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtnQkFDL0MsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFBO2dCQUNqQixNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFnQixDQUFBO2dCQUNsRCxRQUFRLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFO29CQUMvQixJQUFJLGFBQWEsQ0FBQyxjQUFjLEVBQUU7d0JBQ2hDLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUE7d0JBQ3RELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFBO3FCQUNoQztvQkFDRCxJQUFJLGFBQWEsQ0FBQyxrQkFBa0IsRUFBRTt3QkFDcEMsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFBO3dCQUMxRCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQTtxQkFDaEM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUE7Z0JBRUYsd0JBQXdCO2dCQUN4Qiw2QkFBNkI7Z0JBQzdCLHlEQUF5RDtnQkFDekQsK0NBQStDO2dCQUMvQyxJQUFJO2dCQUVKLE9BQU8sTUFBTSxDQUFBO1lBQ2YsQ0FBQyxDQUFBO1NBQ0Y7SUFDSCxDQUFDO0NBQ0Y7QUE3RUQsc0NBNkVDIn0=