UNPKG

@stackend/api

Version:

JS bindings to api.stackend.com

64 lines 2.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getExistingHandlerKey = exports.getKey = exports.unregisterExtraObjectHandler = exports.registerExtraObjectHandler = exports.applyExtraObjectHandlers = void 0; var EXTRA_OBJECT_HANDLERS = {}; /** * Apply all registered handlers for non IdAware objects * @param extraObjects */ function applyExtraObjectHandlers(extraObjects) { return function (dispatch) { var handlerObjects = {}; // Get the objects Object.keys(extraObjects).forEach(function (key) { var o = extraObjects[key]; Object.keys(o).forEach(function (cc) { var handlerKey = getExistingHandlerKey(key, cc); if (handlerKey) { handlerObjects[handlerKey] = o[cc]; } }); }); // Apply the handlers Object.keys(handlerObjects).forEach(function (handlerKey) { var handler = EXTRA_OBJECT_HANDLERS[handlerKey]; if (handler) { var objects = handlerObjects[handlerKey]; handler.onExtraObjectsReceived(objects, dispatch); } }); }; } exports.applyExtraObjectHandlers = applyExtraObjectHandlers; /** * Add an extra object handler * @param handler */ function registerExtraObjectHandler(handler) { var key = getKey(handler); EXTRA_OBJECT_HANDLERS[key] = handler; } exports.registerExtraObjectHandler = registerExtraObjectHandler; /** * Remove an extra object handler * @param handler */ function unregisterExtraObjectHandler(handler) { var key = getKey(handler); delete EXTRA_OBJECT_HANDLERS[key]; } exports.unregisterExtraObjectHandler = unregisterExtraObjectHandler; function getKey(handler) { return handler.key + ':' + (handler.context ? handler.context : '*'); } exports.getKey = getKey; function getExistingHandlerKey(key, context) { var k = key + ':' + context; if (EXTRA_OBJECT_HANDLERS[k]) { return k; } k = key + ':*'; return EXTRA_OBJECT_HANDLERS[k] ? k : null; } exports.getExistingHandlerKey = getExistingHandlerKey; //# sourceMappingURL=extraObjectActions.js.map