Files
languageservices/workflow-parser/src/model/converter/handle-errors.ts
T

25 lines
581 B
TypeScript
Raw Normal View History

2023-01-09 19:02:19 -05:00
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 {
2023-01-09 19:02:19 -05:00
let r: TResult = defaultValue;
try {
2023-01-09 19:02:19 -05:00
r = f();
} catch (err) {
if (err instanceof TemplateTokenError) {
2023-01-09 19:02:19 -05:00
context.error(err.token, err);
} else {
// Report error for the root node
2023-01-09 19:02:19 -05:00
context.error(root, err);
}
}
2023-01-09 19:02:19 -05:00
return r;
}