in js/src/mf2-parse.ts [28:49]
export function mf2ParsePattern(
src: string,
onError: (error: ParseError) => void
): Pattern {
let msg: MF2Message
try {
msg = parseMessage(`{{${src}}}`)
} catch (error) {
if (error instanceof MessageSyntaxError) {
const err = `mf2: ${error.message}`
onError(new ParseError(err, error.start - 2, error.end - 2))
} else {
onError(new ParseError(`mf2: ${error}`, 0, src.length))
}
return []
}
if (msg.type !== 'message' || msg.declarations.length) {
onError(new ParseError(`mf2: Parse error`, 0, src.length))
return []
}
return msg.pattern.map(patternPart)
}