mirror of
https://github.com/OpenSquawk/OpenSquawk
synced 2026-05-15 03:25:40 +08:00
21 lines
471 B
TypeScript
21 lines
471 B
TypeScript
import { randomBytes } from 'node:crypto'
|
|
|
|
export const WAITLIST_REFERRAL_TOKEN_PATTERN = /^[A-F0-9]{8}$/
|
|
|
|
export function generateWaitlistReferralToken() {
|
|
return randomBytes(4).toString('hex').toUpperCase()
|
|
}
|
|
|
|
export function normalizeWaitlistReferralToken(value?: unknown) {
|
|
if (typeof value !== 'string') {
|
|
return null
|
|
}
|
|
|
|
const token = value.trim().toUpperCase()
|
|
if (!WAITLIST_REFERRAL_TOKEN_PATTERN.test(token)) {
|
|
return null
|
|
}
|
|
|
|
return token
|
|
}
|