export * from "@cremafinance/option-utils"; const noop = () => { // noop }; /** * Hide the console.error because @solana/web3.js often emits noisy errors as a * side effect. */ export const suppressConsoleErrorAsync = async ( fn: () => Promise ): Promise => { const oldConsoleError = console.error; console.error = noop; try { const result = await fn(); console.error = oldConsoleError; return result; } catch (e) { console.error = oldConsoleError; throw e; } }; /** * Hide the console.error because @solana/web3.js often emits noisy errors as a * side effect. */ export const suppressConsoleError = (fn: () => T): T => { const oldConsoleError = console.error; console.error = noop; try { const result = fn(); console.error = oldConsoleError; return result; } catch (e) { console.error = oldConsoleError; throw e; } }; export function sleep(ms: number): Promise { return new Promise((resolve) => setTimeout(resolve, ms)); } /** * Promise or its inner value. */ export type PromiseOrValue = Promise | T; /** * Awaits for a promise or value. */ export const valueAsPromise = async ( awaitable: PromiseOrValue ): Promise => { if ("then" in awaitable) { return await awaitable; } return awaitable; };