File size: 574 Bytes
647daf0
f24ad59
8919651
 
 
 
f24ad59
8919651
f24ad59
8b20f19
8919651
 
 
 
 
 
 
f24ad59
8919651
 
 
 
 
f24ad59
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import { ClapCompletionMode } from "@aitube/clap"

export function parseCompletionMode(
  input?: any,
  defaultMode: ClapCompletionMode = ClapCompletionMode.PARTIAL
): ClapCompletionMode {
  let mode = defaultMode
  
  try {
    let maybeMode = decodeURIComponent(`${input || ""}`).trim().toUpperCase()

    if (!maybeMode) {
      maybeMode = defaultMode
    }

    mode = maybeMode as ClapCompletionMode
    
  } catch (err) {}

  if (!Object.values(ClapCompletionMode).includes(mode)) {
    throw new Error(`Invalid clap completion mode: "${mode}"`)
  }

  return mode
}