From b87ba57819a3dfa458b34c9cec9362c7028adf6e Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Mon, 26 May 2025 14:52:38 -0400 Subject: shutdown --- js/src/id/id.ts | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'js/src/id') diff --git a/js/src/id/id.ts b/js/src/id/id.ts index 0cb1afe9d..62c6a12bf 100644 --- a/js/src/id/id.ts +++ b/js/src/id/id.ts @@ -30,11 +30,20 @@ export namespace Identifier { descending: boolean, given?: string, ): string { - if (given) { - if (given.startsWith(prefixes[prefix])) return given; + if (!given) { + return generateNewID(prefix, descending); + } + + if (!given.startsWith(prefixes[prefix])) { throw new Error(`ID ${given} does not start with ${prefixes[prefix]}`); } + return given; + } + function generateNewID( + prefix: keyof typeof prefixes, + descending: boolean, + ): string { const currentTimestamp = Date.now(); if (currentTimestamp !== lastTimestamp) { @@ -45,9 +54,7 @@ export namespace Identifier { let now = BigInt(currentTimestamp) * BigInt(0x1000) + BigInt(counter); - if (descending) { - now = ~now; - } + now = descending ? ~now : now; const timeBytes = Buffer.alloc(6); for (let i = 0; i < 6; i++) { -- cgit v1.2.3