UNPKG

@whook/whook

Version:

Build strong and efficient REST web services.

38 lines 1.72 kB
import { service, location } from 'knifecycle'; import { noop } from '../libs/utils.js'; import { applyHandlerWrappers } from '../libs/wrappers.js'; export default location(service(initConsumersHandlers, 'CONSUMERS_HANDLERS', [ 'CONSUMERS_WRAPPERS', 'log', ]), import.meta.url); /** * Initialize the Whook consumer handlers to know which * consumer to run for a given consumer name. * @param {Object} services * The services `CONSUMERS_HANDLERS` depends on * @param {Array} services.CONSUMERS_WRAPPERS * An optional list of wrappers to inject * @param {Object} [services.log=noop] * An optional logging service * @param {Object} services.CONSUMERS_HANDLERS * The rest is a hash of consumers handlers mapped by name * @return {Promise<Function>} * A promise of the `CONSUMERS_HANDLERS` hash. */ async function initConsumersHandlers({ CONSUMERS_WRAPPERS, log = noop, ...CONSUMERS_HANDLERS }) { const consumersHandlersCount = Object.keys(CONSUMERS_HANDLERS).length; log('warning', `🏭 - Initializing the CONSUMERS_HANDLERS service with ${consumersHandlersCount} handlers wrapped by ${CONSUMERS_WRAPPERS.length} wrappers.`); if (!consumersHandlersCount) { log('warning', `🤷 - No consumers handlers at all.`); } if (!CONSUMERS_WRAPPERS.length) { return CONSUMERS_HANDLERS; } const WRAPPED_CONSUMERS_HANDLERS = {}; for (const consumerHandlerName of Object.keys(CONSUMERS_HANDLERS)) { WRAPPED_CONSUMERS_HANDLERS[consumerHandlerName] = await applyHandlerWrappers(CONSUMERS_WRAPPERS, CONSUMERS_HANDLERS[consumerHandlerName]); } return WRAPPED_CONSUMERS_HANDLERS; } //# sourceMappingURL=CONSUMERS_HANDLERS.js.map