@pcordjs/snowflake
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

@pcordjs/snowflake

@pcordjs/snowflake is a parser for Twitter Snowflakes, which are used by Discord as IDs.

Why?

  • TypeScript Support
  • Full coverage of the Snowflake format
  • Minimal dependencies

Installation

This package can be installed with an npm-based package manager:

$ npm install @pcordjs/snowflake
$ pnpm add @pcordjs/snowflake
$ yarn add @pcordjs/snowflake

Usage

Deserialization

import Snowflake from '@pcordjs/snowflake';

const id = 937847820382261308n;
const snowflake = new Snowflake(id);

// Get the timestamp
snowflake.getDate();
// -> Date(2022-01-31T23:12:24.749Z)

// Get the internal worker ID
snowflake.getWorkerId();
// -> 1

// Get the internal process ID
snowflake.getProcessId();
// -> 5

// Get the increment
snowflake.getIncrement();
// -> 60

// Get all at once
snowflake.deserialize();
// -> { date, workerId, processId, increment }

Serialization

import Snowflake from '@pcordjs/snowflake';

const snowflake = Snowflake.serialize({
  date: new Date('2022-01-31T23:12:24.749Z'),
  workerId: 1,
  processId: 5,
  increment: 60
});

snowflake.id;
// -> 937847820382261308n

Using a custom epoch

import Snowflake from '@pcordjs/snowflake';

const customEpoch = new Date('2022-01-01T00:00:00.000Z');

const snowflake1 = new Snowflake(937847820382261308n, epoch);
const snowflake2 = Snowflake.serialize(
  {
    date: new Date('2022-01-31T23:12:24.749Z'),
    workerId: 1,
    processId: 5,
    increment: 60
  },
  epoch
);

Package Sidebar

Install

npm i @pcordjs/snowflake

Weekly Downloads

3

Version

1.0.2

License

ISC

Unpacked Size

7.65 kB

Total Files

6

Last publish

Collaborators

  • ghostlylake
  • doinkythederp