@sap/cli-core
Version:
Command-Line Interface (CLI) Core Module
27 lines (26 loc) • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.create = void 0;
const stackTrace_1 = require("./stackTrace");
const logger_1 = require("../../logger");
function getLogger(origin) {
return (0, logger_1.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);
}
};
};
const create = (origin, ...handlers) => (0, stackTrace_1.create)(nextHandler(origin, ...handlers));
exports.create = create;
/* jscpd:ignore-end */