UNPKG

@grapi/server

Version:

Grapi Schema Generator For GraphQL Server

45 lines (44 loc) 1.54 kB
"use strict"; 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); } }); }); };