@ava/cooperate
Version:
Plugin to enable cooperation between AVA test files
82 lines (69 loc) • 1.64 kB
TypeScript
export const enum MessageType {
LOCK = 10,
LOCK_ACQUIRED = 11,
LOCK_FAILED = 12,
LOCK_RELEASE = 13,
RESERVE = 20,
RESERVED_INDEXES = 21,
SEMAPHORE_CREATION_FAILED = 30,
SEMAPHORE_DOWN = 31,
SEMAPHORE_FAILED = 32,
SEMAPHORE_RELEASE = 33,
SEMAPHORE_SUCCEEDED = 34,
SEMAPHORE_UP = 35,
}
export type Lock = {
type: MessageType.LOCK;
contextId: string;
lockId: string;
wait: boolean;
};
export type Locked = {
type: MessageType.LOCK_ACQUIRED | MessageType.LOCK_FAILED;
};
export type LockRelease = {
type: MessageType.LOCK_RELEASE;
};
export type Reservation = {
type: MessageType.RESERVE;
contextId: string;
values: Array<bigint | number | string>;
};
export type ReservedIndexes = {
type: MessageType.RESERVED_INDEXES;
indexes: number[];
};
type SemaphoreSetup = {
id: string;
initialValue: number;
managed: boolean;
};
export type SemaphoreDown = {
type: MessageType.SEMAPHORE_DOWN;
contextId: string;
semaphore: SemaphoreSetup;
amount: number;
wait: boolean;
};
export type SemaphoreUp = {
type: MessageType.SEMAPHORE_UP;
contextId: string;
semaphore: SemaphoreSetup;
amount: number;
};
export type SemaphoreRelease = {
type: MessageType.SEMAPHORE_RELEASE;
amount: number;
};
export type SemaphoreResult = {
type: MessageType.SEMAPHORE_SUCCEEDED | MessageType.SEMAPHORE_FAILED;
};
export type SemaphoreCreationFailed = {
type: MessageType.SEMAPHORE_CREATION_FAILED;
initialValue: number;
managed: boolean;
};
export type Data =
Lock | Locked | LockRelease |
Reservation | ReservedIndexes |
SemaphoreDown | SemaphoreResult | SemaphoreUp | SemaphoreRelease | SemaphoreCreationFailed;