@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
TypeScript
/**
* @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;