提供了两个uuid的压缩和解压函数

This commit is contained in:
Xu Chang 2024-05-18 14:50:41 +08:00
parent 5104b12564
commit c0259baa3b
4 changed files with 40 additions and 4 deletions

2
lib/utils/uuid.d.ts vendored
View File

@ -15,3 +15,5 @@ export declare function generateNewId(): string;
* @param: input: 输入的数据数组
*/
export declare function formUuid(...input: string[]): string;
export declare function compressTo32(uuid: string): string;
export declare function decompressFrom32(compressed: string): string;

View File

@ -1,6 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.formUuid = exports.generateNewId = exports.setGenerateIdOption = exports.produceIds = exports.generateNewIdAsync = exports.expandUuidTo36Bytes = exports.shrinkUuidTo32Bytes = exports.sequentialUuid = void 0;
exports.decompressFrom32 = exports.compressTo32 = exports.formUuid = exports.generateNewId = exports.setGenerateIdOption = exports.produceIds = exports.generateNewIdAsync = exports.expandUuidTo36Bytes = exports.shrinkUuidTo32Bytes = exports.sequentialUuid = void 0;
const uuid_1 = require("uuid");
const random_1 = require("./random/random");
let _nodeId;
@ -216,3 +216,17 @@ function formUuid(...input) {
return unsafeStringify(b);
}
exports.formUuid = formUuid;
function compressTo32(uuid) {
return uuid.replace(/-/g, '');
}
exports.compressTo32 = compressTo32;
function decompressFrom32(compressed) {
return [
compressed.slice(0, 8),
compressed.slice(8, 12),
compressed.slice(12, 16),
compressed.slice(16, 20),
compressed.slice(20)
].join('-');
}
exports.decompressFrom32 = decompressFrom32;

View File

@ -249,4 +249,19 @@ export function formUuid(...input: string[]) {
return unsafeStringify(b);
}
export function compressTo32(uuid: string) {
return uuid.replace(/-/g, '');
}
export function decompressFrom32(compressed: string) {
return [
compressed.slice(0, 8),
compressed.slice(8, 12),
compressed.slice(12, 16),
compressed.slice(16, 20),
compressed.slice(20)
].join('-');
}

View File

@ -6,7 +6,12 @@ while (iter > 0) {
console.log(generateNewId());
iter --;
} */
import { join } from 'path';
import { buildRouter } from '../src/compiler/routerBuilder';
import { compressTo32, decompressFrom32 } from '../src/utils/uuid';
buildRouter(join(process.cwd(), '..', 'taicang'), 'web', true);
const uuid = "cce4044b-72bc-4c7d-a5a5-fc660eb2d8a7";
console.log(uuid, uuid.length);
const compressed = compressTo32(uuid);
console.log(compressed, compressed.length);
const decompressed = decompressFrom32(compressed);
console.log(decompressed, decompressed.length);