about summary refs log tree commit diff
path: root/src/lib/strings/password.ts
blob: e7735b90e597acfb7995a150e69c7cc4534242d2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Regex for base32 string for testing reset code
const RESET_CODE_REGEX = /^[A-Z2-7]{5}-[A-Z2-7]{5}$/

export function checkAndFormatResetCode(code: string): string | false {
  // Trim the reset code
  let fixed = code.trim().toUpperCase()

  // Add a dash if needed
  if (fixed.length === 10) {
    fixed = `${fixed.slice(0, 5)}-${fixed.slice(5, 10)}`
  }

  // Check that it is a valid format
  if (!RESET_CODE_REGEX.test(fixed)) {
    return false
  }

  return fixed
}