mirror of
https://github.com/decolua/9router.git
synced 2026-05-08 12:01:28 +00:00
16 lines
628 B
JavaScript
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;
|
|
}
|
|
}
|