@yihuangdb/storage-object
Version:
A Node.js storage object layer library using Redis OM
34 lines • 1.22 kB
JavaScript
/**
* Optimistic Locking support for concurrent updates
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConflictResolution = exports.OptimisticLockError = void 0;
class OptimisticLockError extends Error {
expectedVersion;
actualVersion;
entityId;
constructor(message, expectedVersion, actualVersion, entityId) {
super(message);
this.expectedVersion = expectedVersion;
this.actualVersion = actualVersion;
this.entityId = entityId;
this.name = 'OptimisticLockError';
}
}
exports.OptimisticLockError = OptimisticLockError;
/**
* Conflict resolution strategies
*/
var ConflictResolution;
(function (ConflictResolution) {
/** Fail the operation (default) */
ConflictResolution["FAIL"] = "fail";
/** Retry the operation with latest data */
ConflictResolution["RETRY"] = "retry";
/** Use last-write-wins semantics */
ConflictResolution["LAST_WRITE_WINS"] = "last_write_wins";
/** Merge changes (for compatible updates) */
ConflictResolution["MERGE"] = "merge";
})(ConflictResolution || (exports.ConflictResolution = ConflictResolution = {}));
//# sourceMappingURL=optimistic-lock.js.map
;