UNPKG

@mitre/nuxt-smartscript

Version:

Smart typography transformations for Nuxt - automatic superscript, subscript, and symbol formatting

56 lines (55 loc) 1.41 kB
export class SmartScriptError extends Error { constructor(message, code, details) { super(message); this.code = code; this.details = details; this.name = "SmartScriptError"; Error.captureStackTrace(this, SmartScriptError); } } export const ErrorCodes = { CONFIG_INVALID: "CONFIG_INVALID", PATTERN_INVALID: "PATTERN_INVALID", DOM_OPERATION_FAILED: "DOM_OPERATION_FAILED", OBSERVER_FAILED: "OBSERVER_FAILED", PROCESSING_FAILED: "PROCESSING_FAILED" }; export function handleError(error, context) { if (process.env.NODE_ENV === "development") { console.error(`[SmartScript] ${context}:`, error); } else { console.warn(`[SmartScript] ${context}`); } } export function safeExecute(operation, fallback, context) { try { return operation(); } catch (error) { handleError(error, context); return fallback; } } export async function safeExecuteAsync(operation, fallback, context) { try { return await operation(); } catch (error) { handleError(error, context); return fallback; } } export function sanitizeSelector(selector) { try { document.querySelector(selector); return selector; } catch { return null; } } export function withTimeout(promise, timeoutMs, timeoutError) { return Promise.race([ promise, new Promise( (_, reject) => setTimeout(() => reject(timeoutError), timeoutMs) ) ]); }