@aws-lambda-powertools/idempotency
Version:
The idempotency package for the Powertools for AWS Lambda (TypeScript) library. It provides options to make your Lambda functions idempotent and safe to retry.
112 lines (111 loc) • 4.18 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.IdempotencyKeyError = exports.IdempotencyPersistenceConsistencyError = exports.IdempotencyPersistenceLayerError = exports.IdempotencyInconsistentStateError = exports.IdempotencyValidationError = exports.IdempotencyInvalidStatusError = exports.IdempotencyAlreadyInProgressError = exports.IdempotencyItemNotFoundError = exports.IdempotencyItemAlreadyExistsError = exports.IdempotencyUnknownError = void 0;
/**
* Base error for idempotency errors.
*
* Generally this error should not be thrown directly unless you are throwing a generic and unknown error.
*/
class IdempotencyUnknownError extends Error {
constructor(message, options) {
super(message, options);
this.name = 'IdempotencyUnknownError';
}
}
exports.IdempotencyUnknownError = IdempotencyUnknownError;
/**
* Item attempting to be inserted into persistence store already exists and is not expired
*/
class IdempotencyItemAlreadyExistsError extends IdempotencyUnknownError {
existingRecord;
constructor(message, existingRecord, options) {
super(message, options);
this.name = 'IdempotencyItemAlreadyExistsError';
this.existingRecord = existingRecord;
}
}
exports.IdempotencyItemAlreadyExistsError = IdempotencyItemAlreadyExistsError;
/**
* Item does not exist in persistence store
*/
class IdempotencyItemNotFoundError extends IdempotencyUnknownError {
constructor(message, options) {
super(message, options);
this.name = 'IdempotencyItemNotFoundError';
}
}
exports.IdempotencyItemNotFoundError = IdempotencyItemNotFoundError;
/**
* Execution with idempotency key is already in progress
*/
class IdempotencyAlreadyInProgressError extends IdempotencyUnknownError {
existingRecord;
constructor(message, existingRecord, options) {
super(message, options);
this.name = 'IdempotencyAlreadyInProgressError';
this.existingRecord = existingRecord;
}
}
exports.IdempotencyAlreadyInProgressError = IdempotencyAlreadyInProgressError;
/**
* An invalid status was provided
*/
class IdempotencyInvalidStatusError extends IdempotencyUnknownError {
constructor(message, options) {
super(message, options);
this.name = 'IdempotencyInvalidStatusError';
}
}
exports.IdempotencyInvalidStatusError = IdempotencyInvalidStatusError;
/**
* Payload does not match stored idempotency record
*/
class IdempotencyValidationError extends IdempotencyUnknownError {
existingRecord;
constructor(message, existingRecord, options) {
super(message, options);
this.name = 'IdempotencyValidationError';
this.existingRecord = existingRecord;
}
}
exports.IdempotencyValidationError = IdempotencyValidationError;
/**
* State is inconsistent across multiple requests to persistence store
*/
class IdempotencyInconsistentStateError extends IdempotencyUnknownError {
constructor(message, options) {
super(message, options);
this.name = 'IdempotencyInconsistentStateError';
}
}
exports.IdempotencyInconsistentStateError = IdempotencyInconsistentStateError;
/**
* Unrecoverable error from the data store
*/
class IdempotencyPersistenceLayerError extends IdempotencyUnknownError {
constructor(message, options) {
super(message, options);
this.name = 'IdempotencyPersistenceLayerError';
}
}
exports.IdempotencyPersistenceLayerError = IdempotencyPersistenceLayerError;
/**
* Payload does not contain an idempotent key
*/
class IdempotencyKeyError extends IdempotencyUnknownError {
constructor(message, options) {
super(message, options);
this.name = 'IdempotencyKeyError';
}
}
exports.IdempotencyKeyError = IdempotencyKeyError;
/**
* Error with the persistence layer's consistency, needs to be removed
*/
class IdempotencyPersistenceConsistencyError extends IdempotencyUnknownError {
constructor(message, options) {
super(message, options);
this.name = 'IdempotencyPersistenceConsistencyError';
}
}
exports.IdempotencyPersistenceConsistencyError = IdempotencyPersistenceConsistencyError;
;