UNPKG

@daiso-tech/core

Version:

The library offers flexible, framework-agnostic solutions for modern web applications, built on adaptable components that integrate seamlessly with popular frameworks like Next Js.

70 lines 2.65 kB
/** * @module Lock */ import { Lock, } from "../../../../lock/implementations/derivables/lock-provider/lock.js"; import { LockState, } from "../../../../lock/implementations/derivables/lock-provider/lock-state.js"; import { getConstructorName, TimeSpan, } from "../../../../utilities/_module-exports.js"; /** * @internal */ export class LockSerdeTransformer { adapter; lockStore; namespace; createLazyPromise; defaultBlockingInterval; defaultBlockingTime; defaultRefreshTime; eventBus; serdeTransformerName; constructor(settings) { const { adapter, lockStore, namespace, createLazyPromise, defaultBlockingInterval, defaultBlockingTime, defaultRefreshTime, eventBus, serdeTransformerName, } = settings; this.serdeTransformerName = serdeTransformerName; this.adapter = adapter; this.lockStore = lockStore; this.namespace = namespace; this.createLazyPromise = createLazyPromise; this.defaultBlockingInterval = defaultBlockingInterval; this.defaultBlockingTime = defaultBlockingTime; this.defaultRefreshTime = defaultRefreshTime; this.eventBus = eventBus; } get name() { if (this.serdeTransformerName) { return ["lock", getConstructorName(this.adapter)]; } return [ "lock", this.serdeTransformerName, getConstructorName(this.adapter), ]; } isApplicable(value) { return (value instanceof Lock && getConstructorName(value) === Lock.name && value._internal_getSerdeTransformerName() === this.serdeTransformerName); } deserialize(serializedValue) { const { key, owner, ttlInMs, expirationInMs } = serializedValue; const keyObj = this.namespace._getInternal().create(key); return new Lock({ createLazyPromise: this.createLazyPromise, adapter: this.adapter, lockState: new LockState(this.lockStore, keyObj.namespaced), eventDispatcher: this.eventBus, key: keyObj, owner, serdeTransformerName: this.serdeTransformerName, ttl: ttlInMs !== null ? TimeSpan.fromMilliseconds(ttlInMs) : null, expirationInMs, defaultBlockingInterval: this.defaultBlockingInterval, defaultBlockingTime: this.defaultBlockingTime, defaultRefreshTime: this.defaultRefreshTime, }); } serialize(deserializedValue) { return Lock._internal_serialize(deserializedValue); } } //# sourceMappingURL=lock-serde-transformer.js.map