Eji-Sensei14's picture
Upload folder using huggingface_hub
c6535db verified
/**
* Chain multiple callbacks together.
*
* @param originalCallback - The original callback to chain.
* @param callbacks - The callbacks to chain.
* @returns A new callback that chains the original callback with the callbacks.
*/
export const useChainCallback = (originalCallback, ...callbacks) => {
return function(...args) {
originalCallback?.call(this, ...args);
callbacks.forEach((callback) => callback.call(this, ...args));
}
}
/**
* Replace new callbacks with error handling.
*
* @param originalCallback - The fallback callback to call when an error occurs.
* @param callbacks - The callbacks to chain during normal execution.
* @returns A new callback that executes callbacks in normal case or originalCallback on error.
*/
export const useTryCatchCallback = (originalCallback, ...callbacks) => {
return function(...args) {
try {
callbacks.forEach((callback) => callback?.call(this, ...args));
} catch (error) {
console.warn("[EasyUse hijacking failure, return to originalCallback]", error);
originalCallback?.call(this, ...args, error);
}
}
}