Skip to content

basic-examples/id-seq

Repository files navigation

id-seq - Sequential unique ID manager

Efficiently manage sequential, reusable numeric IDs.

Features

  • Always generates the smallest available non-negative integer
  • IDs can be released and reused in future acquire() calls
  • Simple and efficient

Usage

import { IdSeq } from "id-seq";

const idSeq = new IdSeq();

const id1 = idSeq.acquire(); // id1.seq === 0
id1.release();

const id2 = idSeq.acquire(); // id2.seq === 0 (reused)
const id3 = idSeq.acquire(); // id3.seq === 1

id2.release();
id3.release();

const id4 = idSeq.acquire(); // id4.seq === 0
const id5 = idSeq.acquire(); // id5.seq === 1

id4.release();

const id6 = idSeq.acquire(); // id6.seq === 0
const id7 = idSeq.acquire(); // id7.seq === 2

id5.release();

const id8 = idSeq.acquire(); // id8.seq === 1 (reused)
const id9 = idSeq.acquire(); // id9.seq === 3

API

new IdSeq()

Creates a new ID manager.

idSeq.acquire(): { seq: number, release: () => void }

Acquires the next available non-negative integer ID and returns an object containing:

  • seq: the acquired ID
  • release(): a function to release the ID, making it available for reuse

Released IDs are always reused before allocating new ones, and the smallest available ID is returned first.

License

MIT

About

Sequential unique ID manager

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published