bridgets
Version:
<p align="center"> <a href="https://bridgets.co"> <img src="http://bridgets.co/assets/logo-short.svg" height="48" /> <h1 align="center">BridgeTS</h1> </a> </p>
32 lines • 999 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MiddelwaresHandler = exports.AbstractHandler = void 0;
class AbstractHandler {
nextHandler;
setNext(handler) {
this.nextHandler = handler;
return handler;
}
async handle(data) {
if (this.nextHandler)
return this.nextHandler.handle(data);
return data;
}
}
exports.AbstractHandler = AbstractHandler;
class MiddelwaresHandler extends AbstractHandler {
handlers;
constructor(handlers) {
super();
this.handlers = handlers;
}
handle = async (data) => {
const results = await Promise.all(this.handlers.map(async (handler) => handler.handle(data)));
for (const res of results)
if (res && res.error)
return res;
return super.handle({ ...data, mid: Object.assign({}, ...results) });
};
}
exports.MiddelwaresHandler = MiddelwaresHandler;
//# sourceMappingURL=handler.js.map