@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.
117 lines (116 loc) • 2.97 kB
TypeScript
/**
* @module Lock
*/
import type { TimeSpan } from "../../utilities/_module-exports.js";
/**
* The event is dispatched when a lock is aquired.
*
* IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
* @group Events
*/
export type AcquiredLockEvent = {
key: string;
owner: string;
ttl: TimeSpan | null;
};
/**
* The event is dispatched when a lock is released.
*
* IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
* @group Events
*/
export type ReleasedLockEvent = {
key: string;
owner: string;
};
/**
* The event is dispatched when a lock is forcefully released.
*
* IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
* @group Events
*/
export type ForceReleasedLockEvent = {
key: string;
};
/**
* The event is dispatched when trying to release a lock that is owned by a different owner.
*
* IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
* @group Events
*/
export type UnownedReleaseTryLockEvent = {
key: string;
owner: string;
};
/**
* The event is dispatched when trying to refefresh a lock that is owned by a different owner.
*
* IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
* @group Events
*/
export type UnownedRefreshTryLockEvent = {
key: string;
owner: string;
};
/**
* The event is dispatched when trying to acquire a lock that is owned by a different owner.
*
* IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
* @group Events
*/
export type NotAvailableLockEvent = {
key: string;
owner: string;
};
/**
* The event is dispatched when a lock is refreshed.
*
* IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
* @group Events
*/
export type RefreshedLockEvent = {
key: string;
owner: string;
ttl: TimeSpan;
};
/**
*
* IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
* @group Events
*/
export type UnexpectedErrorLockEvent = {
key: string;
owner: string;
ttl: TimeSpan | null;
error: unknown;
};
/**
*
* IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
* @group Events
*/
export declare const LOCK_EVENTS: {
readonly ACQUIRED: "ACQUIRED";
readonly RELEASED: "RELEASED";
readonly UNOWNED_RELEASE_TRY: "UNOWNED_RELEASE_TRY";
readonly UNOWNED_REFRESH_TRY: "UNOWNED_REFRESH_TRY";
readonly NOT_AVAILABLE: "NOT_AVAILABLE";
readonly FORCE_RELEASED: "FORCE_RELEASED";
readonly REFRESHED: "REFRESHED";
readonly UNEXPECTED_ERROR: "UNEXPECTED_ERROR";
};
/**
*
* IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
* @group Events
*/
export type LockEventMap = {
[LOCK_EVENTS.ACQUIRED]: AcquiredLockEvent;
[LOCK_EVENTS.RELEASED]: ReleasedLockEvent;
[LOCK_EVENTS.UNOWNED_RELEASE_TRY]: UnownedReleaseTryLockEvent;
[LOCK_EVENTS.UNOWNED_REFRESH_TRY]: UnownedRefreshTryLockEvent;
[LOCK_EVENTS.NOT_AVAILABLE]: NotAvailableLockEvent;
[LOCK_EVENTS.FORCE_RELEASED]: ForceReleasedLockEvent;
[LOCK_EVENTS.REFRESHED]: RefreshedLockEvent;
[LOCK_EVENTS.UNEXPECTED_ERROR]: UnexpectedErrorLockEvent;
};