UNPKG

@node-idempotency/core

Version:

A Race-Condition free Node.js library that ensures idempotency for requests, preventing unintended duplicate operations.

36 lines 1.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MakeIdemPotent = void 0; const idempotency_1 = require("./idempotency"); function MakeIdemPotent({ storage, options, requestBuilder, }) { const idempotency = new idempotency_1.Idempotency(storage, options); return function (_, __, descriptor) { const originalMethod = descriptor.value; descriptor.value = async function (...args) { const params = requestBuilder(...args); const cached = await idempotency.onRequest(params); if (cached !== undefined) { return cached; } let result; let error; try { result = await originalMethod.apply(this, args); } catch (err) { error = err; throw err; } finally { const response = error ? { error } : { body: result }; await idempotency.onResponse(params, response); } return result; }; return descriptor; }; } exports.MakeIdemPotent = MakeIdemPotent; //# sourceMappingURL=indempotency.decorator.js.map