UNPKG

1.98 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const log_1 = require("../common/log");
4const IlpPacket = require("ilp-packet");
5class ErrorHandlerMiddleware {
6 constructor(opts, api) {
7 this.getOwnAddress = api.getOwnAddress;
8 }
9 async applyToPipelines(pipelines, accountId) {
10 const log = log_1.create(`error-handler-middleware[${accountId}]`);
11 pipelines.incomingData.insertLast({
12 name: 'errorHandler',
13 method: async (data, next) => {
14 try {
15 const response = await next(data);
16 if (!Buffer.isBuffer(response)) {
17 throw new Error('handler did not return a value.');
18 }
19 return response;
20 }
21 catch (e) {
22 let err = e;
23 if (!err || typeof err !== 'object') {
24 err = new Error('Non-object thrown: ' + e);
25 }
26 log.debug('error in data handler, creating rejection. ilpErrorCode=%s error=%s', err.ilpErrorCode, err.stack ? err.stack : err);
27 return IlpPacket.errorToReject(this.getOwnAddress(), err);
28 }
29 }
30 });
31 pipelines.incomingMoney.insertLast({
32 name: 'errorHandler',
33 method: async (amount, next) => {
34 try {
35 return await next(amount);
36 }
37 catch (e) {
38 let err = e;
39 if (!err || typeof err !== 'object') {
40 err = new Error('non-object thrown. value=' + e);
41 }
42 log.debug('error in money handler. error=%s', err.stack ? err.stack : err);
43 throw err;
44 }
45 }
46 });
47 }
48}
49exports.default = ErrorHandlerMiddleware;
50//# sourceMappingURL=error-handler.js.map
\No newline at end of file