New:Microsoft Teams Notifications Are Now Available in Socket.Learn more
Get Started

@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

voya 自用雪花ID,代码来自snowflake-id,更新打包位CJS & EMS两种格式

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

使用 ECMAScript Modules (ESM)

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

import { SnowflakeId } from '@voya-kit/snow-id';
// 初始化Snowflake实例
const snowflake = new SnowflakeId({
  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 28 Jun 2024

Related posts