This commit introduces a custom error object to provide additional context for errors throwing during parsing and compiling operations, improving troubleshooting. By integrating error context handling, the error messages become more informative and user-friendly, providing sequence of trace with context to aid in troubleshooting. Changes include: - Introduce custom error object that extends errors with contextual information. This replaces previous usages of `AggregateError` which is not displayed well by browsers when logged. - Improve parsing functions to encapsulate error context with more details. - Increase unit test coverage and refactor the related code to be more testable.
19 lines
358 B
TypeScript
19 lines
358 B
TypeScript
export function collectExceptionMessage(action: () => unknown): string {
|
|
return collectException(action).message;
|
|
}
|
|
|
|
function collectException(
|
|
action: () => unknown,
|
|
): Error {
|
|
let error: Error | undefined;
|
|
try {
|
|
action();
|
|
} catch (err) {
|
|
error = err;
|
|
}
|
|
if (!error) {
|
|
throw new Error('action did not throw');
|
|
}
|
|
return error;
|
|
}
|