MCPcopy Create free account
hub / github.com/ParallelTask/dinoloop / registerExceptionFilter

Method registerExceptionFilter

src/modules/router/dino.router.ts:145–167  ·  view source on GitHub ↗
(app: Express,
        uri: string | RegExp,
        middleware: IMiddlewareProvider)

Source from the content-addressed store, hash-verified

143
144 // made public for unit test and not available on interface contract
145 registerExceptionFilter(app: Express,
146 uri: string | RegExp,
147 middleware: IMiddlewareProvider): void {
148 let provider = DinoParser.parseMiddlewareProvider(middleware);
149
150 if (DinoUtility.isSyncExceptionFilter(provider.useClass)) {
151 app.use(uri, (err, req, res, next) => {
152 let mware = this.resolve<ExceptionFilter>(
153 provider.useClass, res.locals.dino);
154 mware.invoke(err, req, res, next);
155 });
156 } else if (DinoUtility.isAsyncExceptionFilter(provider.useClass)) {
157 app.use(uri, async (err, req, res, next) => {
158 let mware = this.resolve<ExceptionFilterAsync>(
159 provider.useClass, res.locals.dino);
160 try {
161 await mware.invoke(err, req, res, next);
162 } catch (err) {
163 next(err);
164 }
165 });
166 }
167 }
168
169 expressRouter(): Router {
170 return this.router;

Callers 2

Calls 3

resolveMethod · 0.95
invokeMethod · 0.65
nextFunction · 0.50

Tested by

no test coverage detected