UNPKG

@studyportals/sp-hs-misc

Version:

Miscellaneous code used in HouseStark's projects

32 lines 1.18 kB
class ResilientServiceLayerRequestsSenderDecorator { constructor(serviceLayerRequestsSender, maximumRetries) { this.serviceLayerRequestsSender = serviceLayerRequestsSender; this.maximumRetries = maximumRetries; this.delayTime = 500; } async send(request) { return await this.execute(request); } async execute(request, executionCount = 0) { const executableRequest = Object.create(request); executionCount++; try { return await this.serviceLayerRequestsSender.send(executableRequest); } catch (e) { console.log(`Request Execution failed ${executionCount}x due to ${e}`); if (executionCount >= this.maximumRetries) { throw e; } await this.delay(this.delayTime); return await this.execute(request, executionCount); } } async delay(ms) { return await new Promise((resolve) => { setTimeout(resolve, ms); }); } } export { ResilientServiceLayerRequestsSenderDecorator }; //# sourceMappingURL=resilient-service-layer-requests-sender-decorator.class.js.map