@terabits/grapi
Version:
Grapi Schema Generator For GraphQL Server
31 lines (30 loc) • 1.46 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
exports.__esModule = true;
var lodash_1 = require("../lodash");
exports["default"] = (function (plugins, models) {
var resolvers = {};
var extendType = {};
models.forEach(function (model) {
plugins.forEach(function (plugin) {
resolvers = __assign(__assign(__assign({}, plugin.resolveInRoot && plugin.resolveInRoot({ model: model, dataSource: model.getDataSource() })), resolvers), { Query: (0, lodash_1.assign)(plugin.resolveInQuery && plugin.resolveInQuery({ model: model, dataSource: model.getDataSource() }), resolvers.Query), Mutation: (0, lodash_1.assign)(plugin.resolveInMutation && plugin.resolveInMutation({ model: model, dataSource: model.getDataSource() }), resolvers.Mutation) });
if (plugin.extendTypes) {
extendType = __assign(__assign({}, extendType), plugin.extendTypes(model));
}
});
});
(0, lodash_1.forEach)(extendType, function (value, key) {
extendType[key] = resolvers[value];
});
return __assign(__assign({}, resolvers), extendType);
});