ph-utils
Version:
js 开发工具集,前后端都可以使用(commonjs和es module)
69 lines (68 loc) • 2.13 kB
TypeScript
type SnowflakeIDInfo = {
value: string;
timeOffset: bigint;
timestamp: number;
machineId: bigint;
sequence: bigint;
epoch: number;
version: string | undefined;
};
/** 雪花ID, 推荐在全局构造一个对象用于生成id */
export declare class SnowflakeID {
/** 机器码, 默认为: 1 */
machineId: bigint;
/** 起始时间戳, 默认为:1288834974657 */
epoch: bigint;
_lastTimestamp: bigint;
/** 版本号, 默认为: 0 */
version: number;
private _sequence;
/**
* 构造函数
*
* @param machineId 机器标识,默认为1
* @param epoch 时间戳起始值,默认为1288834974657
*/
constructor(machineId?: number, epoch?: number);
private _getTimestamp;
private _waitNextMillis;
/**
* 生成雪花ID
*
* @returns 返回生成的唯一ID字符串
* @throws 如果时钟回退,抛出错误
*/
generate(): string;
parse(snowflakeID: string, epoch?: number, includeVersion?: boolean): SnowflakeIDInfo;
}
/** 将uuid转换为更简单的唯一标记id */
export declare class ShortUUID {
private alphabet;
/**
* 构造函数,用于初始化字母表
* @param {string} [alphabet] - 可选参数,用于指定自定义字母表
* 如果提供了alphabet参数,则将其设置为实例的字母表属性
* 如果未提供alphabet参数,则使用默认值
*/
constructor(alphabet?: string);
/**
* 将UUID字符串进行编码处理
* @param uuid - 需要编码的UUID字符串
* @returns 编码后的字符串
*/
encode(uuid: string, alphabet?: string): string;
/**
* 解码短UUID字符串,将其转换为UUID整数和十六进制格式
* @param shortUUID - 需要解码的短UUID字符串
* @returns 返回包含UUID整数和十六进制格式的对象
*/
decode(shortUUID: string, alphabet?: string): {
uuidInt: bigint;
uuid: string;
};
private _stringToInt;
private _intToString;
private _uuidHexToInt;
private _uuidIntToHex;
}
export {};