🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@voya-kit/snow-id

Package Overview
Dependencies
Maintainers
0
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@voya-kit/snow-id

雪花ID,核心来自snowflake-id,支持CJS & EMS导入

latest
npmnpm
Version
0.0.6
Version published
Maintainers
0
Created
Source

@voya-kit/snow-id

重要声明: 本项目 @voya-kit/snow-id 基于的 snowflake-id 进行了导入语法改造与优化。我们不仅保留了原项目的精髓,还全面拥抱了现代JavaScript生态,确保了对 CommonJS (CJS)ECMAScript Modules (ESM) 两种模块化标准的支持。

特性概览

  • 时间基底: 利用时间戳作为ID的基础部分,确保ID的有序性和唯一性。
  • 高并发友好: 通过机器标识和序列号的设计,支持大规模分布式系统下的高效并行生成。
  • 精准控制: 提供自定义机器ID (mid) 和时间偏移 (offset) 参数,适应多样化的部署环境。
  • 兼容性卓越: 支持JavaScript的整数精度限制,生成的ID以字符串形式输出,无缝对接数据库bigint类型。
  • 最新语法兼容: 全面升级导入语法,适配现代开发者的习惯与需求。

安装指南

NPM 安装

执行以下命令,即可将 @voya-kit/snow-id 添加到您的项目依赖中:

npm install @voya-kit/snow-id --save

使用教程

模块导入详解

使用 CommonJS (CJS)

对于传统的Node.js应用或者那些仍使用CJS模块系统的项目,您可以这样导入:

const { Snowflake } = require('@voya-kit/snow-id');
// 初始化Snowflake实例 
const snowflake = new Snowflake(
	{ mid: 1, // 示例值,建议根据实际情况设置唯一机器标识 
     offset: 0, // 可选,时间偏移量,用于调整ID起始时间 
    }
);

使用 ECMAScript Modules (ESM)

随着JavaScript模块标准的发展,越来越多的新项目倾向于使用ESM。如果您处于这样的开发环境,请使用以下导入语句:

import { Snowflake } from '@voya-kit/snow-id';
// 初始化Snowflake实例
const snowflake = new Snowflake({
  mid: 1, // 示例值,建议根据实际情况设置唯一机器标识
  offset: 0, // 可选,时间偏移量,用于调整ID起始时间
})

生成ID

无论是CJS还是ESM导入方式,生成ID的逻辑保持一致:

const id1 = snowflake.generate(); // 生成如 "285124269753503744" 的唯一ID
const id2 = snowflake.generate(); // 每次调用生成不同的ID

支持CJS或ESM的JavaScript项目中轻松集成并利用 @voya-kit/snow-id 来生成高性能、高可用的唯一标识符。

Keywords

voya

FAQs

Package last updated on 01 Jul 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts