@grapi/server
Version:
Grapi Schema Generator For GraphQL Server
45 lines (44 loc) • 1.54 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const lodash_1 = require("../lodash");
const compose_1 = __importDefault(require("./compose"));
const createEmptyHook = () => ({
wrapCreate: [],
wrapUpdate: [],
wrapDelete: [],
resolveFields: {},
});
exports.default = (hooks) => {
const reducedHookMap = (0, lodash_1.reduce)(hooks, (result, hookMap) => {
(0, lodash_1.forEach)(hookMap, (hook, modelName) => {
if (!result[modelName]) {
result[modelName] = createEmptyHook();
}
(0, lodash_1.forEach)(hook, (method, methodName) => {
if (methodName === 'resolveFields') {
result[modelName].resolveFields = {
...result[modelName].resolveFields,
...method,
};
}
else {
result[modelName][methodName].push(method);
}
});
});
return result;
}, {});
return (0, lodash_1.mapValues)(reducedHookMap, hookMap => {
return (0, lodash_1.mapValues)(hookMap, (combinedHooks, key) => {
if (key === 'resolveFields') {
return combinedHooks;
}
else {
return (0, compose_1.default)(combinedHooks);
}
});
});
};