idempotency-redis
Version:
Idempotency guarantee via Redis
119 lines (118 loc) • 5.94 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.IdempotentExecutorUnknownError = exports.IdempotentExecutorNonErrorWrapperError = exports.IdempotentExecutorCallbackError = exports.IdempotentExecutorCacheError = exports.IdempotentExecutorSerializationError = exports.IdempotentExecutorCriticalError = exports.IdempotentExecutorErrorBase = void 0;
/**
* The base error class for idempotent operations.
*/
class IdempotentExecutorErrorBase extends Error {
/**
* Constructs an instance of IdempotentExecutorErrorBase.
* @param message The error message describing what went wrong.
* @param idempotencyKey The unique key used to identify and enforce idempotency for an operation.
* @param cause (Optional) The underlying error or reason for this error, if any.
*/
constructor(message, idempotencyKey, cause) {
super(message);
this.idempotencyKey = idempotencyKey;
this.cause = cause;
this.name = 'IdempotentExecutorErrorBase';
}
}
exports.IdempotentExecutorErrorBase = IdempotentExecutorErrorBase;
/**
* Represents a critical error related to idempotent operations, potentially leading to non-idempotent executions.
*/
class IdempotentExecutorCriticalError extends IdempotentExecutorErrorBase {
/**
* Constructs an instance of IdempotentExecutorCriticalError.
* This error class should be used for critical issues that might lead to non-idempotent executions.
* @param message The error message describing the critical issue.
* @param idempotencyKey The unique key used to identify and enforce idempotency for an operation.
* @param cause (Optional) The underlying error or reason for this critical error, if any.
*/
constructor(message, idempotencyKey, cause) {
super(`Possibly non-idempotent execution: ${message}`, idempotencyKey, cause);
this.name = 'IdempotentExecutorCriticalError';
}
}
exports.IdempotentExecutorCriticalError = IdempotentExecutorCriticalError;
/**
* Represents an error related to serialization issues during idempotent operations.
*/
class IdempotentExecutorSerializationError extends IdempotentExecutorErrorBase {
/**
* Constructs an instance of IdempotentExecutorSerializationError.
* This error class should be used for issues related to serialization during idempotent operations.
* @param message The error message describing the serialization issue.
* @param idempotencyKey The unique key used to identify and enforce idempotency for an operation.
* @param cause (Optional) The underlying error or reason for this serialization error, if any.
*/
constructor(message, idempotencyKey, cause) {
super(message, idempotencyKey, cause);
this.name = 'IdempotentExecutorSerializationError';
}
}
exports.IdempotentExecutorSerializationError = IdempotentExecutorSerializationError;
/**
* Represents an error related to cache issues during idempotent operations.
*/
class IdempotentExecutorCacheError extends IdempotentExecutorErrorBase {
/**
* Constructs an instance of IdempotentExecutorCacheError.
* This error class should be used for issues related to caching during idempotent operations.
* @param message The error message describing the cache issue.
* @param idempotencyKey The unique key used to identify and enforce idempotency for an operation.
* @param cause (Optional) The underlying error or reason for this cache error, if any.
*/
constructor(message, idempotencyKey, cause) {
super(message, idempotencyKey, cause);
this.name = 'IdempotentExecutorCacheError';
}
}
exports.IdempotentExecutorCacheError = IdempotentExecutorCacheError;
/**
* Represents an error related to callback issues during idempotent operations.
*/
class IdempotentExecutorCallbackError extends IdempotentExecutorErrorBase {
/**
* Constructs an instance of IdempotentExecutorCallbackError.
* This error class should be used for issues related to executing user-provided
* callback functions during idempotent operations.
* @param message The error message describing the callback issue.
* @param idempotencyKey The unique key used to identify and enforce idempotency for an operation.
* @param cause (Optional) The underlying error or reason for this callback error, if any.
*/
constructor(message, idempotencyKey, callback, cause) {
super(message, idempotencyKey, cause);
this.callback = callback;
this.name = 'IdempotentExecutorCallbackError';
}
}
exports.IdempotentExecutorCallbackError = IdempotentExecutorCallbackError;
/**
* Represents a wrapper around non-error objects thrown by the action function.
*/
class IdempotentExecutorNonErrorWrapperError extends IdempotentExecutorErrorBase {
constructor(message, idempotencyKey, cause) {
super(message, idempotencyKey, cause);
this.name = 'IdempotentExecutorNonErrorWrapperError';
}
}
exports.IdempotentExecutorNonErrorWrapperError = IdempotentExecutorNonErrorWrapperError;
/**
* Represents an error related to executor issues during idempotent operations.
*/
class IdempotentExecutorUnknownError extends IdempotentExecutorErrorBase {
/**
* Constructs an instance of IdempotentExecutorUnknownError.
* This error class should be used for unknown issues during idempotent operations.
* @param message The error message describing the unknown issue.
* @param idempotencyKey The unique key used to identify and enforce idempotency for an operation.
* @param cause (Optional) The underlying error or reason for this unknown error, if any.
*/
constructor(message, idempotencyKey, cause) {
super(message, idempotencyKey, cause);
this.name = 'IdempotentExecutorUnknownError';
}
}
exports.IdempotentExecutorUnknownError = IdempotentExecutorUnknownError;
;