Files
languageservices/workflow-parser/src/model/converter/handle-errors.ts
T
2023-02-22 15:52:40 -08:00

25 lines
581 B
TypeScript

import {TemplateContext} from "../../templates/template-context";
import {TemplateToken, TemplateTokenError} from "../../templates/tokens/template-token";
export function handleTemplateTokenErrors<TResult>(
root: TemplateToken,
context: TemplateContext,
defaultValue: TResult,
f: () => TResult
): TResult {
let r: TResult = defaultValue;
try {
r = f();
} catch (err) {
if (err instanceof TemplateTokenError) {
context.error(err.token, err);
} else {
// Report error for the root node
context.error(root, err);
}
}
return r;
}