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.

134 lines (133 loc) 3.87 kB
/** * @module SharedLock */ import type { TimeSpan } from "../../time-span/implementations/_module-exports.js"; /** * * IMPORT_PATH: `"@daiso-tech/core/shared-lock/contracts"` * @group Contracts */ export declare const SHARED_LOCK_WRITER_STATE: { readonly WRITER_UNAVAILABLE: "WRITER_UNAVAILABLE"; readonly WRITER_ACQUIRED: "WRITER_ACQUIRED"; }; /** * * IMPORT_PATH: `"@daiso-tech/core/shared-lock/contracts"` * @group Contracts */ export type SharedLockWriterState = (typeof SHARED_LOCK_WRITER_STATE)[keyof typeof SHARED_LOCK_WRITER_STATE]; /** * * IMPORT_PATH: `"@daiso-tech/core/shared-lock/contracts"` * @group Contracts */ export declare const SHARED_LOCK_READER_STATE: { readonly READER_LIMIT_REACHED: "READER_LIMIT_REACHED"; readonly READER_ACQUIRED: "READER_ACQUIRED"; readonly READER_UNACQUIRED: "READER_UNACQUIRED"; }; /** * * IMPORT_PATH: `"@daiso-tech/core/shared-lock/contracts"` * @group Contracts */ export type SharedLockReaderState = (typeof SHARED_LOCK_READER_STATE)[keyof typeof SHARED_LOCK_READER_STATE]; /** * * IMPORT_PATH: `"@daiso-tech/core/shared-lock/contracts"` * @group Contracts */ export declare const SHARED_LOCK_STATE: { readonly READER_LIMIT_REACHED: "READER_LIMIT_REACHED"; readonly READER_ACQUIRED: "READER_ACQUIRED"; readonly READER_UNACQUIRED: "READER_UNACQUIRED"; readonly WRITER_UNAVAILABLE: "WRITER_UNAVAILABLE"; readonly WRITER_ACQUIRED: "WRITER_ACQUIRED"; readonly EXPIRED: "EXPIRED"; }; /** * * IMPORT_PATH: `"@daiso-tech/core/shared-lock/contracts"` * @group Contracts */ export type SharedLockState = (typeof SHARED_LOCK_STATE)[keyof typeof SHARED_LOCK_STATE]; /** * * IMPORT_PATH: `"@daiso-tech/core/shared-lock/contracts"` * @group Contracts */ export type ISharedLockExpiredState = { type: (typeof SHARED_LOCK_STATE)["EXPIRED"]; }; /** * * IMPORT_PATH: `"@daiso-tech/core/shared-lock/contracts"` * @group Contracts */ export type ISharedLockWriterUnavailableState = { type: (typeof SHARED_LOCK_WRITER_STATE)["WRITER_UNAVAILABLE"]; owner: string; }; /** * * IMPORT_PATH: `"@daiso-tech/core/shared-lock/contracts"` * @group Contracts */ export type ISharedLockWriterAcquiredState = { type: (typeof SHARED_LOCK_WRITER_STATE)["WRITER_ACQUIRED"]; remainingTime: TimeSpan | null; }; /** * * IMPORT_PATH: `"@daiso-tech/core/shared-lock/contracts"` * @group Contracts */ export type ISharedLockWriterState = ISharedLockWriterUnavailableState | ISharedLockWriterAcquiredState; /** * * IMPORT_PATH: `"@daiso-tech/core/shared-lock/contracts"` * @group Contracts */ export type ISharedLockReaderUnacquiredState = { type: (typeof SHARED_LOCK_READER_STATE)["READER_UNACQUIRED"]; limit: number; freeSlotsCount: number; acquiredSlotsCount: number; acquiredSlots: string[]; }; /** * * IMPORT_PATH: `"@daiso-tech/core/shared-lock/contracts"` * @group Contracts */ export type ISharedLockReaderAcquiredState = { type: (typeof SHARED_LOCK_READER_STATE)["READER_ACQUIRED"]; limit: number; remainingTime: TimeSpan | null; freeSlotsCount: number; acquiredSlotsCount: number; acquiredSlots: string[]; }; /** * * IMPORT_PATH: `"@daiso-tech/core/shared-lock/contracts"` * @group Contracts */ export type ISharedLockReaderLimitReachedState = { type: (typeof SHARED_LOCK_READER_STATE)["READER_LIMIT_REACHED"]; limit: number; acquiredSlots: string[]; }; /** * * IMPORT_PATH: `"@daiso-tech/core/shared-lock/contracts"` * @group Contracts */ export type ISharedLockReaderState = ISharedLockReaderUnacquiredState | ISharedLockReaderAcquiredState | ISharedLockReaderLimitReachedState; /** * * IMPORT_PATH: `"@daiso-tech/core/shared-lock/contracts"` * @group Contracts */ export type ISharedLockState = ISharedLockExpiredState | ISharedLockWriterState | ISharedLockReaderState;