export function serializePattern()

in js/src/index.ts [104:138]


export function serializePattern(
  format: FormatKey,
  pattern: Pattern,
  onError?: (error: SerializeError) => void
): string {
  onError ??= (error) => {
    throw error
  }
  switch (format) {
    case 'android':
      return androidSerializePattern(pattern, onError)
    case 'fluent':
      return fluentSerializePattern(pattern, onError)
    case 'mf2':
      return mf2SerializePattern(pattern)
    case 'webext':
      return webextSerializePattern(pattern, onError)
    case 'xliff':
      return xliffSerializePattern(pattern, onError)
    case 'plain':
      break
    default:
      onError(new SerializeError(`${format}: Unsupported format`))
  }
  let res = ''
  for (const part of pattern) {
    if (typeof part === 'string') res += part
    else {
      const error = `${format}: Unsupported pattern part: ${JSON.stringify(part)}`
      onError(new SerializeError(error, res.length))
      res += '{�}'
    }
  }
  return res
}