1 2 3 4 5 6 7 8 9 10 11 12
export default function execOnce<T extends (...args: any[]) => ReturnType<T>>(fn: T): T { let used = false; let result: ReturnType<T>; return ((...args: any[]) => { if (!used) { used = true; result = fn(...args); } return result; }) as T; }