{"version":3,"file":"throttle.cjs","names":[],"sources":["../../src/lib/throttle.ts"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const throttle = <TFn extends (...args: any[]) => any>(\n\tfn: TFn,\n\tdelay = 16,\n): ((...args: Parameters<TFn>) => void) => {\n\tlet lastExec = 0\n\tlet timer: NodeJS.Timeout | null = null\n\n\treturn function (this: unknown, ...args: Parameters<TFn>) {\n\t\tconst now = Date.now()\n\t\tconst delta = now - lastExec\n\n\t\tif (delta >= delay) {\n\t\t\tfn.apply(this, args)\n\t\t\tlastExec = now\n\t\t} else {\n\t\t\tif (timer) {\n\t\t\t\tclearTimeout(timer)\n\t\t\t}\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tfn.apply(this, args)\n\t\t\t\tlastExec = Date.now()\n\t\t\t}, delay - delta)\n\t\t}\n\t}\n}\n"],"mappings":";AACA,MAAa,YACZ,IACA,QAAQ,OACkC;CAC1C,IAAI,WAAW;CACf,IAAI,QAA+B;AAEnC,QAAO,SAAyB,GAAG,MAAuB;EACzD,MAAM,MAAM,KAAK,KAAK;EACtB,MAAM,QAAQ,MAAM;AAEpB,MAAI,SAAS,OAAO;AACnB,MAAG,MAAM,MAAM,KAAK;AACpB,cAAW;SACL;AACN,OAAI,MACH,cAAa,MAAM;AAEpB,WAAQ,iBAAiB;AACxB,OAAG,MAAM,MAAM,KAAK;AACpB,eAAW,KAAK,KAAK;MACnB,QAAQ,MAAM"}