Skip to content

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";constidSeq=newIdSeq();constid1=idSeq.acquire();// id1.seq === 0id1.release();constid2=idSeq.acquire();// id2.seq === 0 (reused)constid3=idSeq.acquire();// id3.seq === 1id2.release();id3.release();constid4=idSeq.acquire();// id4.seq === 0constid5=idSeq.acquire();// id5.seq === 1id4.release();constid6=idSeq.acquire();// id6.seq === 0constid7=idSeq.acquire();// id7.seq === 2id5.release();constid8=idSeq.acquire();// id8.seq === 1 (reused)constid9=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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages