import { ExceptionsHandler } from '../exceptions/exceptions-handler';
import { ExecutionContextHost } from '../helpers/execution-context.host';
export type RouterProxyCallback = (req?, res?, next?) => void;
export class RouterProxy {
public createProxy(
targetCallback: RouterProxyCallback,
exceptionsHandler: ExceptionsHandler,
) {
return async (req, res, next) => {
try {
await targetCallback(req, res, next);
} catch (e) {
const host = new ExecutionContextHost([req, res]);
exceptionsHandler.next(e, host);
}
};
}
public createExceptionLayerProxy(
targetCallback: (err, req, res, next) => void,
exceptionsHandler: ExceptionsHandler,
) {
return async (err, req, res, next) => {
try {
await targetCallback(err, req, res, next);
} catch (e) {
const host = new ExecutionContextHost([req, res]);
exceptionsHandler.next(e, host);
}
};
}
}
|