diff --git a/lib/utils/uuid.d.ts b/lib/utils/uuid.d.ts index 153235e..1dd9bbb 100644 --- a/lib/utils/uuid.d.ts +++ b/lib/utils/uuid.d.ts @@ -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; diff --git a/lib/utils/uuid.js b/lib/utils/uuid.js index adab549..2190317 100644 --- a/lib/utils/uuid.js +++ b/lib/utils/uuid.js @@ -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; diff --git a/src/utils/uuid.ts b/src/utils/uuid.ts index c93470f..dbe51f3 100644 --- a/src/utils/uuid.ts +++ b/src/utils/uuid.ts @@ -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('-'); } \ No newline at end of file diff --git a/test/test.ts b/test/test.ts index bfba4b0..11ffcb1 100644 --- a/test/test.ts +++ b/test/test.ts @@ -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); \ No newline at end of file +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); \ No newline at end of file