UNPKG

snowflakify

Version:

The most complete Snowflake ID generator in TypeScript

34 lines (33 loc) 854 B
import { SnowflakifyOptions } from '../@types'; export default class CircularBuffer { private readonly bufferSize; private readonly indexBitMask; private readonly thresholdIndex; private readonly tailTA; private readonly headTA; private readonly bufferTA; private readonly bufferRefiller; private readonly semaphoreTA; constructor( bufferSize: number, generatorOptions: SnowflakifyOptions, refillTheshold?: number, workerCount?: number, ); get size(): number; get tail(): number; private set tail(value); get head(): number; private set head(value); get buffer(): BigInt64Array; push(value: bigint): void; pop(): bigint; isFull(): boolean; isEmpty(): boolean; private incrementTail; private incrementHead; private static distance; private nextIndex; private acquire; private release; }