@intuitionrobotics/thunderstorm
Version:
66 lines • 2.72 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseHttpModule_Class = void 0;
const ts_common_1 = require("@intuitionrobotics/ts-common");
class BaseHttpModule_Class extends ts_common_1.Module {
constructor(name) {
super(name);
this.defaultErrorHandlers = [];
this.defaultSuccessHandlers = [];
this.timeout = 10000;
this.defaultResponseHandler = [];
this.defaultHeaders = {};
this.processDefaultResponseHandlers = (httpRequest) => {
let resolved = false;
for (const responseHandler of this.defaultResponseHandler) {
resolved = resolved || responseHandler(httpRequest);
}
return resolved;
};
this.handleRequestFailure = (request, resError) => {
const feError = request.getErrorMessage();
const beError = resError === null || resError === void 0 ? void 0 : resError.debugMessage;
this.logError(`Http request for key '${request.key}' failed...`);
if (feError)
this.logError(` + FE error: ${feError}`);
if (beError)
this.logError(` + BE error: ${beError}`);
for (const errorHandler of this.defaultErrorHandlers) {
errorHandler(request, resError);
}
};
this.handleRequestSuccess = (request) => {
const feMessage = request.getSuccessMessage();
this.logInfo(`Http request for key '${request.key}' completed`);
if (feMessage)
this.logInfo(` + FE message: ${feMessage}`);
for (const successHandler of this.defaultSuccessHandlers) {
successHandler(request);
}
};
this.setDefaultConfig({ compress: true });
}
init() {
this.timeout = this.config.timeout || this.timeout;
}
shouldCompress() {
return this.config.compress;
}
addDefaultHeader(key, header) {
this.defaultHeaders[key.toLowerCase()] = header;
}
addDefaultResponseHandler(defaultResponseHandler) {
(0, ts_common_1.addItemToArray)(this.defaultResponseHandler, defaultResponseHandler);
}
removeDefaultResponseHandler(defaultResponseHandler) {
(0, ts_common_1.removeItemFromArray)(this.defaultResponseHandler, defaultResponseHandler);
}
setErrorHandlers(defaultErrorHandlers) {
this.defaultErrorHandlers = defaultErrorHandlers;
}
setSuccessHandlers(defaultErrorHandlers) {
this.defaultSuccessHandlers = defaultErrorHandlers;
}
}
exports.BaseHttpModule_Class = BaseHttpModule_Class;
//# sourceMappingURL=BaseHttpModule.js.map