UNPKG

@terabits/grapi

Version:

Grapi Schema Generator For GraphQL Server

53 lines (52 loc) 1.89 kB
"use strict"; 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); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; exports.__esModule = true; var lodash_1 = require("../lodash"); var compose_1 = __importDefault(require("./compose")); var createEmptyHook = function () { return ({ wrapCreate: [], wrapUpdate: [], wrapDelete: [], resolveFields: {} }); }; exports["default"] = (function (hooks) { var reducedHookMap = (0, lodash_1.reduce)(hooks, function (result, hookMap) { (0, lodash_1.forEach)(hookMap, function (hook, modelName) { if (!result[modelName]) { result[modelName] = createEmptyHook(); } (0, lodash_1.forEach)(hook, function (method, methodName) { if (methodName === 'resolveFields') { result[modelName].resolveFields = __assign(__assign({}, result[modelName].resolveFields), method); } else { result[modelName][methodName].push(method); } }); }); return result; }, {}); return (0, lodash_1.mapValues)(reducedHookMap, function (hookMap) { return (0, lodash_1.mapValues)(hookMap, function (combinedHooks, key) { if (key === 'resolveFields') { return combinedHooks; } else { return (0, compose_1["default"])(combinedHooks); } }); }); });