@daysnap/utils
Version:
30 lines (27 loc) • 602 B
JavaScript
import {
isPromiseLike
} from "./chunk-P5GEZD4D.js";
// src/createWithToast.ts
function createWithToast(options = {}) {
const { onError } = options;
return (fn) => {
return function(...args) {
try {
const result = fn.apply(this, args);
if (isPromiseLike(result)) {
return Promise.resolve(result).catch((err) => {
onError?.(err);
throw "cancel:handled";
});
}
return result;
} catch (error) {
onError?.(error);
throw "cancel:handled";
}
};
};
}
export {
createWithToast
};