Files
ospab.host/node_modules/effect/dist/esm/internal/stm/entry.js
2025-09-15 18:10:26 +03:00

42 lines
978 B
JavaScript

import * as Versioned from "./versioned.js";
/** @internal */
export const make = (ref, isNew) => ({
ref,
isNew,
isChanged: false,
expected: ref.versioned,
newValue: ref.versioned.value
});
export const unsafeGet = self => {
return self.newValue;
};
/** @internal */
export const unsafeSet = (self, value) => {
self.isChanged = true;
self.newValue = value;
};
/** @internal */
export const commit = self => {
self.ref.versioned = new Versioned.Versioned(self.newValue);
};
/** @internal */
export const copy = self => ({
ref: self.ref,
isNew: self.isNew,
isChanged: self.isChanged,
expected: self.expected,
newValue: self.newValue
});
/** @internal */
export const isValid = self => {
return self.ref.versioned === self.expected;
};
/** @internal */
export const isInvalid = self => {
return self.ref.versioned !== self.expected;
};
/** @internal */
export const isChanged = self => {
return self.isChanged;
};
//# sourceMappingURL=entry.js.map