@grapi/server
Version:
Grapi Schema Generator For GraphQL Server
25 lines (24 loc) • 1.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const lodash_1 = require("../lodash");
exports.default = (plugins, models) => {
let resolvers = {};
let extendType = {};
models.forEach(model => {
plugins.forEach(plugin => {
resolvers = {
...plugin.resolveInRoot && plugin.resolveInRoot({ model, dataSource: model.getDataSource() }),
...resolvers,
Query: (0, lodash_1.assign)(plugin.resolveInQuery && plugin.resolveInQuery({ model, dataSource: model.getDataSource() }), resolvers.Query),
Mutation: (0, lodash_1.assign)(plugin.resolveInMutation && plugin.resolveInMutation({ model, dataSource: model.getDataSource() }), resolvers.Mutation)
};
if (plugin.extendTypes) {
extendType = { ...extendType, ...plugin.extendTypes(model) };
}
});
});
(0, lodash_1.forEach)(extendType, (value, key) => {
extendType[key] = resolvers[value];
});
return { ...resolvers, ...extendType };
};