UNPKG

@sap/cli-core

Version:

Command-Line Interface (CLI) Core Module

22 lines (21 loc) 884 B
import { create as createStackTraceHandler } from "./stackTrace.js"; import { get } from "../../logger/index.js"; function getLogger(origin) { return get(`commands.handler.next:${origin}`); } const nextHandler = (origin, ...handlers) => async (command) => { getLogger(origin).trace(`next:${origin}: preparing handlers`); const commandHandlers = []; for (const handler of handlers) { // eslint-disable-next-line no-await-in-loop commandHandlers.push(await handler(command)); } return async (...args) => { getLogger(origin).trace(`next:${origin}: processing handlers`); for (const handler of commandHandlers) { // eslint-disable-next-line no-await-in-loop await handler(...args); } }; }; export const create = (origin, ...handlers) => createStackTraceHandler(nextHandler(origin, ...handlers));