17 lines
452 B
TypeScript
17 lines
452 B
TypeScript
import { randomBytes } from "crypto";
|
|
|
|
const PAIRING_ALPHABET = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789";
|
|
|
|
export function generatePairingCode(length = 5) {
|
|
const bytes = randomBytes(length);
|
|
let code = "";
|
|
for (let i = 0; i < length; i += 1) {
|
|
code += PAIRING_ALPHABET[bytes[i] % PAIRING_ALPHABET.length];
|
|
}
|
|
return code;
|
|
}
|
|
|
|
export function normalizePairingCode(input: string) {
|
|
return input.trim().toUpperCase().replace(/[^A-Z0-9]/g, "");
|
|
}
|