@eicode/snowflake-ts-generator
v1.0.0
Published
A simple library to generate snowflake ids in typescript
Maintainers
Readme
@eicode/snowflake-ts-generator
A simple TypeScript library for generating Snowflake IDs - time-based, distributed unique identifiers.
Installation
npm install @eicode/snowflake-ts-generatoror
yarn add @eicode/snowflake-ts-generatorFeatures
- Generates unique, time-ordered 64-bit IDs
- Supports custom worker IDs for distributed systems
- Configurable epoch timestamp
- Zero dependencies
- Full TypeScript support
Usage
Basic usage:
import { Snowflake } from "@eicode/snowflake-ts-generator";
// Create with default configuration
const snowflake = new Snowflake();
// Generate a unique ID
const id = snowflake.generate();
console.log(id);With custom settings:
// Custom worker ID and epoch
const customSnowflake = new Snowflake(42, 1609459200000); // workerId=42, custom epoch (2021-01-01)
const customId = customSnowflake.generate();API Reference
Snowflake Class
Constructor
constructor(workerId?: number, epoch?: number)workerId(optional): A unique identifier for the generator instance. Defaults to a combination of random number and process ID.epoch(optional): Custom epoch timestamp in milliseconds. Defaults to 142011360000.
Methods
generate(): string- Generates and returns a unique Snowflake ID as a string.
ID Structure
Snowflake IDs are 64-bit integers with the following structure:
- 41 bits for timestamp (milliseconds since epoch)
- 10 bits for worker ID
- 12 bits for sequence number
Requirements
- Node.js >=14.0.0
License
MIT
Author
Caio Landgraf
