@russ-b/nestjs-common-tools
Version:
NestJS utility tools
34 lines • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DEFAULT_OUTBOX_OPERATIONAL_POLICY = void 0;
exports.resolveOutboxModuleOptions = resolveOutboxModuleOptions;
exports.DEFAULT_OUTBOX_OPERATIONAL_POLICY = {
claimBatchSize: 100,
maxRetries: 5,
staleProcessingMinutes: 5,
resetStaleProcessingEvents: true,
processedEventRetentionHours: 24,
};
function resolveOutboxModuleOptions(options = {}) {
const policy = options.operationalPolicy ?? {};
const operationalPolicy = {
claimBatchSize: resolvePositiveNumber(policy.claimBatchSize, exports.DEFAULT_OUTBOX_OPERATIONAL_POLICY.claimBatchSize),
maxRetries: resolvePositiveNumber(policy.maxRetries, exports.DEFAULT_OUTBOX_OPERATIONAL_POLICY.maxRetries),
staleProcessingMinutes: resolvePositiveNumber(policy.staleProcessingMinutes, exports.DEFAULT_OUTBOX_OPERATIONAL_POLICY.staleProcessingMinutes),
resetStaleProcessingEvents: policy.resetStaleProcessingEvents ??
exports.DEFAULT_OUTBOX_OPERATIONAL_POLICY.resetStaleProcessingEvents,
processedEventRetentionHours: resolvePositiveNumber(policy.processedEventRetentionHours, exports.DEFAULT_OUTBOX_OPERATIONAL_POLICY.processedEventRetentionHours),
};
if (policy.maxConcurrentEvents !== undefined &&
policy.maxConcurrentEvents > 0) {
operationalPolicy.maxConcurrentEvents = Math.floor(policy.maxConcurrentEvents);
}
return { operationalPolicy };
}
function resolvePositiveNumber(value, fallback) {
if (value !== undefined && Number.isFinite(value) && value > 0) {
return value;
}
return fallback;
}
//# sourceMappingURL=outbox-options.util.js.map