Files
MajoorWaldi-ComfyUI-Majoor-…/js/utils/safeCall.js
T
MajoorWaldi dc72be0139 feat: enhance JS testing and linting setup
- Added coverage reporting for Vitest with configuration in vitest.config.mjs
- Updated package.json to include new scripts for JS coverage, linting, and formatting
- Modified run_quality_gate.py to allow skipping ESLint and Prettier checks
- Introduced .prettierrc for consistent code formatting
- Created .prettierignore to exclude specific files and directories from formatting
2026-03-28 14:14:28 +01:00

47 lines
1.2 KiB
JavaScript

import { APP_CONFIG } from "../app/config.js";
export const noop = () => {};
function _debugEnabled(flag) {
try {
return Boolean(APP_CONFIG?.[flag]);
} catch {
return false;
}
}
function _warn(label, err) {
try {
console.warn(`[Majoor] ${label}`, err);
} catch (e) {
console.debug?.(e);
}
}
export function safeCall(fn, label = "safeCall") {
try {
return fn?.();
} catch (err) {
if (_debugEnabled("DEBUG_SAFE_CALL")) _warn(label, err);
return undefined;
}
}
export function safeAddListener(target, event, handler, options, label = "safeAddListener") {
try {
target?.addEventListener?.(event, handler, options);
return () => {
try {
target?.removeEventListener?.(event, handler, options);
} catch (err) {
if (_debugEnabled("DEBUG_SAFE_LISTENERS"))
_warn(`${label}:remove:${String(event || "")}`, err);
}
};
} catch (err) {
if (_debugEnabled("DEBUG_SAFE_LISTENERS"))
_warn(`${label}:add:${String(event || "")}`, err);
return noop;
}
}