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.

45 lines (44 loc) 1.9 kB
/** * @module Lock */ import type { ISerdeTransformer } from "../../../../serde/contracts/_module-exports.js"; import { Lock, type ISerializedLock } from "../../../../lock/implementations/derivables/lock-provider/lock.js"; import type { OneOrMore } from "../../../../utilities/_module-exports.js"; import type { ILockAdapter, LockEventMap } from "../../../../lock/contracts/_module-exports.js"; import { type ILockStore } from "../../../../lock/implementations/derivables/lock-provider/lock-state.js"; import { TimeSpan, type KeyPrefixer } from "../../../../utilities/_module-exports.js"; import type { LazyPromise } from "../../../../async/_module-exports.js"; import type { IEventBus } from "../../../../event-bus/contracts/_module-exports.js"; /** * @internal */ export type LockSerdeTransformerSettings = { adapter: ILockAdapter; lockStore: ILockStore; keyPrefixer: KeyPrefixer; createLazyPromise: <TValue = void>(asyncFn: () => PromiseLike<TValue>) => LazyPromise<TValue>; defaultBlockingInterval: TimeSpan; defaultBlockingTime: TimeSpan; defaultRefreshTime: TimeSpan; eventBus: IEventBus<LockEventMap>; serdeTransformerName: string; }; /** * @internal */ export declare class LockSerdeTransformer implements ISerdeTransformer<Lock, ISerializedLock> { private readonly adapter; private readonly lockStore; private readonly keyPrefixer; private readonly createLazyPromise; private readonly defaultBlockingInterval; private readonly defaultBlockingTime; private readonly defaultRefreshTime; private readonly eventBus; private readonly serdeTransformerName; constructor(settings: LockSerdeTransformerSettings); get name(): OneOrMore<string>; isApplicable(value: unknown): value is Lock; deserialize(serializedValue: ISerializedLock): Lock; serialize(deserializedValue: Lock): ISerializedLock; }