import { log_error } from './log'; export class TemplaterError extends Error { constructor( msg: string, public console_msg?: string, ) { super(msg); this.name = this.constructor.name; Error.captureStackTrace(this, this.constructor); } } export async function errorWrapper( fn: () => Promise, msg: string, ): Promise { try { return await fn(); } catch (e) { if (!(e instanceof TemplaterError)) { log_error(new TemplaterError(msg, e.message)); } else { log_error(e); } return null as T; } } export function errorWrapperSync(fn: () => T, msg: string): T { try { return fn(); } catch (e) { log_error(new TemplaterError(msg, e.message)); return null as T; } }