mirror of
https://github.com/Wessel/Snowflakey.git
synced 2026-06-06 03:05:48 +02:00
41 lines
827 B
TypeScript
41 lines
827 B
TypeScript
export interface TokenConfig {
|
|
seed?: string;
|
|
secret: string;
|
|
epoch?: number;
|
|
version?: number;
|
|
}
|
|
|
|
export interface SnowflakeConfig {
|
|
name?: string;
|
|
async?: boolean;
|
|
epoch?: number;
|
|
workerId?: any,
|
|
processId?: number,
|
|
stringify?: boolean,
|
|
workerBits: number,
|
|
processBits: number,
|
|
incrementBits: number
|
|
}
|
|
|
|
export interface SnowflakeMutable {
|
|
locks: any;
|
|
locked: boolean;
|
|
increment: any;
|
|
lastTimestamp: number;
|
|
}
|
|
|
|
export type Snowflake = number;
|
|
|
|
export interface SnowflakeWorker {
|
|
options: SnowflakeConfig;
|
|
workerId: number;
|
|
_mutable: SnowflakeMutable;
|
|
processId: number;
|
|
_maxIncrement: number;
|
|
_lock(): void;
|
|
_unlock(): void;
|
|
generate(): Snowflake;
|
|
_generate(): Snowflake;
|
|
_generateAsync(): Snowflake;
|
|
}
|