@voya-kit/snow-id
TypeScript icon, indicating that this package has built-in type declarations

0.0.6 • Public • Published

@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 来生成高性能、高可用的唯一标识符。

Package Sidebar

Install

npm i @voya-kit/snow-id

Weekly Downloads

2

Version

0.0.6

License

MIT

Unpacked Size

10.2 kB

Total Files

13

Last publish

Collaborators

  • zhycx1995