Files

11 lines
670 B
JavaScript

export const out = (...args) => console.log(...args);
export const deferred = () => {
let resolve, reject;
const promise = new Promise((a, b) => { resolve = a; reject = b; });
return { promise, resolve, reject };
};
export const result = (p) => p.then(() => "ok", (e) => `${e?.name}:${e?.code || ""}:${e?.message || String(e)}`);
export const caught = (fn) => { try { fn(); return "ok"; } catch (e) { return `${e.name}:${e.code || ""}:${e.message}`; } };
export const sameError = (p, e) => p.then(() => false, (reason) => reason === e);
export const launch = (run) => { run().then(() => out("done"), (e) => { console.error(e.message); process.exitCode = 1; }); };