1.0.0 • Published 10 months ago

@eicode/snowflake-ts-generator v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

@eicode/snowflake-ts-generator

A simple TypeScript library for generating Snowflake IDs - time-based, distributed unique identifiers.

Installation

npm install @eicode/snowflake-ts-generator

or

yarn add @eicode/snowflake-ts-generator

Features

  • 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

1.0.0

10 months ago