Dax Raad преди 8 месеца
родител
ревизия
460338ca53
променени са 1 файла, в които са добавени 12 реда и са изтрити 4 реда
  1. 12 4
      packages/opencode/src/id/id.ts

+ 12 - 4
packages/opencode/src/id/id.ts

@@ -41,6 +41,17 @@ export namespace Identifier {
     return given
     return given
   }
   }
 
 
+  function randomBase62(length: number): string {
+    const chars =
+      "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
+    let result = ""
+    const bytes = randomBytes(length)
+    for (let i = 0; i < length; i++) {
+      result += chars[bytes[i] % 62]
+    }
+    return result
+  }
+
   function generateNewID(
   function generateNewID(
     prefix: keyof typeof prefixes,
     prefix: keyof typeof prefixes,
     descending: boolean,
     descending: boolean,
@@ -62,14 +73,11 @@ export namespace Identifier {
       timeBytes[i] = Number((now >> BigInt(40 - 8 * i)) & BigInt(0xff))
       timeBytes[i] = Number((now >> BigInt(40 - 8 * i)) & BigInt(0xff))
     }
     }
 
 
-    const randLength = (LENGTH - 12) / 2
-    const random = randomBytes(randLength)
-
     return (
     return (
       prefixes[prefix] +
       prefixes[prefix] +
       "_" +
       "_" +
       timeBytes.toString("hex") +
       timeBytes.toString("hex") +
-      random.toString("hex")
+      randomBase62(LENGTH - 12)
     )
     )
   }
   }
 }
 }