Files
9router/open-sse/rtk/applyFilter.js
2026-04-22 15:36:51 +07:00

16 lines
628 B
JavaScript

// Port of apply_filter (rtk/src/cmds/system/pipe_cmd.rs) — catch_unwind equivalent
// On panic/error: passthrough raw output + warn to stderr
export function safeApply(fn, text) {
if (typeof fn !== "function") return text;
try {
const out = fn(text);
if (typeof out !== "string") return text;
return out;
} catch (err) {
// Rust: eprintln!("[rtk] warning: filter panicked — passing through raw output")
const name = fn.filterName || fn.name || "anonymous";
console.warn(`[rtk] warning: filter '${name}' panicked — passing through raw output: ${err?.message || err}`);
return text;
}
}