@untemps/utils 4.0.0-beta.5 → 4.0.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e,t)=>{let n=null,r=((...r)=>{n!==null&&clearTimeout(n),n=setTimeout(()=>{n=null,e(...r)},t)});return r.cancel=()=>{n!==null&&(clearTimeout(n),n=null)},r};exports.debounce=e;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @module async/debounce
3
+ */
4
+ export interface DebouncedFunction<T extends (...args: never[]) => void> {
5
+ (...args: Parameters<T>): void;
6
+ cancel(): void;
7
+ }
8
+ /**
9
+ * @function
10
+ * @example
11
+ * import { debounce } from '@untemps/utils/async/debounce'
12
+ *
13
+ * const handler = debounce((value: string) => console.log(value), 300)
14
+ * handler('a')
15
+ * handler('b')
16
+ * handler('c') // Only 'c' is logged after 300ms
17
+ *
18
+ * handler.cancel() // Cancel any pending invocation
19
+ *
20
+ * @param fn - The function to debounce.
21
+ * @param delay - The debounce delay in milliseconds.
22
+ * @returns A debounced version of the function with a `.cancel()` method.
23
+ */
24
+ export declare const debounce: <T extends (...args: never[]) => void>(fn: T, delay: number) => DebouncedFunction<T>;
25
+ //# sourceMappingURL=debounce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../src/async/debounce.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI;IACtE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAC9B,MAAM,IAAI,IAAI,CAAA;CACd;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,MAAM,KAAG,iBAAiB,CAAC,CAAC,CAqBxG,CAAA"}
@@ -0,0 +1,13 @@
1
+ //#region src/async/debounce.ts
2
+ var e = (e, t) => {
3
+ let n = null, r = ((...r) => {
4
+ n !== null && clearTimeout(n), n = setTimeout(() => {
5
+ n = null, e(...r);
6
+ }, t);
7
+ });
8
+ return r.cancel = () => {
9
+ n !== null && (clearTimeout(n), n = null);
10
+ }, r;
11
+ };
12
+ //#endregion
13
+ export { e as debounce };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e,t)=>{let n=-1/0,r=null,i=null,a=((...a)=>{let o=Date.now(),s=t-(o-n);i=a,s<=0?(r!==null&&(clearTimeout(r),r=null),n=o,i=null,e(...a)):r===null&&(r=setTimeout(()=>{if(n=Date.now(),r=null,i!==null){let t=i;i=null,e(...t)}},s))});return a.cancel=()=>{r!==null&&(clearTimeout(r),r=null),i=null,n=-1/0},a};exports.throttle=e;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @module async/throttle
3
+ */
4
+ export interface ThrottledFunction<T extends (...args: never[]) => void> {
5
+ (...args: Parameters<T>): void;
6
+ cancel(): void;
7
+ }
8
+ /**
9
+ * @function
10
+ * @example
11
+ * import { throttle } from '@untemps/utils/async/throttle'
12
+ *
13
+ * const handler = throttle((event: MouseEvent) => console.log(event), 200)
14
+ * window.addEventListener('scroll', handler)
15
+ *
16
+ * handler.cancel() // Cancel any pending trailing invocation
17
+ *
18
+ * @param fn - The function to throttle.
19
+ * @param interval - The minimum interval between invocations in milliseconds.
20
+ * @returns A throttled version of the function with a `.cancel()` method.
21
+ */
22
+ export declare const throttle: <T extends (...args: never[]) => void>(fn: T, interval: number) => ThrottledFunction<T>;
23
+ //# sourceMappingURL=throttle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../src/async/throttle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI;IACtE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAC9B,MAAM,IAAI,IAAI,CAAA;CACd;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,IAAI,CAAC,EAAE,UAAU,MAAM,KAAG,iBAAiB,CAAC,CAAC,CA0C3G,CAAA"}
@@ -0,0 +1,17 @@
1
+ //#region src/async/throttle.ts
2
+ var e = (e, t) => {
3
+ let n = -Infinity, r = null, i = null, a = ((...a) => {
4
+ let o = Date.now(), s = t - (o - n);
5
+ i = a, s <= 0 ? (r !== null && (clearTimeout(r), r = null), n = o, i = null, e(...a)) : r === null && (r = setTimeout(() => {
6
+ if (n = Date.now(), r = null, i !== null) {
7
+ let t = i;
8
+ i = null, e(...t);
9
+ }
10
+ }, s));
11
+ });
12
+ return a.cancel = () => {
13
+ r !== null && (clearTimeout(r), r = null), i = null, n = -Infinity;
14
+ }, a;
15
+ };
16
+ //#endregion
17
+ export { e as throttle };
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./array/extractByIndices.cjs`),t=require(`./async/standby.cjs`),n=require(`./dom/createElement.cjs`),r=require(`./dom/doElementsOverlap.cjs`),i=require(`./dom/getCSSDeclaration.cjs`),a=require(`./dom/getElement.cjs`),o=require(`./dom/isElement.cjs`),s=require(`./string/isString.cjs`),c=require(`./dom/modifyElement.cjs`),l=require(`./dom/removeElement.cjs`),u=require(`./dom/resolveClassName.cjs`),d=require(`./function/isFunction.cjs`),f=require(`./lang/isNil.cjs`),p=require(`./number/normalizeMinMax.cjs`),m=require(`./number/clamp.cjs`),h=require(`./number/getRandomInteger.cjs`),g=require(`./object/isObject.cjs`),_=require(`./object/deepMerge.cjs`),v=require(`./string/generateText.cjs`),y=require(`./string/generateTokenizedText.cjs`),b=require(`./string/interpolate.cjs`),x=require(`./string/interpolateLiteral.cjs`);exports.clamp=m.clamp,exports.createElement=n.createElement,exports.deepMerge=_.deepMerge,exports.doElementsOverlap=r.doElementsOverlap,exports.extractByIndices=e.extractByIndices,exports.generateText=v.generateText,exports.generateTokenizedText=y.generateTokenizedText,exports.getCSSDeclaration=i.getCSSDeclaration,exports.getElement=a.getElement,exports.getRandomInteger=h.getRandomInteger,exports.interpolate=b.interpolate,exports.interpolateLiteral=x.interpolateLiteral,exports.isElement=o.isElement,exports.isFunction=d.isFunction,exports.isNil=f.isNil,exports.isObject=g.isObject,exports.isString=s.isString,exports.modifyElement=c.modifyElement,exports.normalizeMinMax=p.normalizeMinMax,exports.removeElement=l.removeElement,exports.resolveClassName=u.resolveClassName,exports.standby=t.standby;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./array/extractByIndices.cjs`),t=require(`./async/debounce.cjs`),n=require(`./async/standby.cjs`),r=require(`./async/throttle.cjs`),i=require(`./dom/createElement.cjs`),a=require(`./dom/doElementsOverlap.cjs`),o=require(`./dom/getCSSDeclaration.cjs`),s=require(`./dom/getElement.cjs`),c=require(`./dom/isElement.cjs`),l=require(`./string/isString.cjs`),u=require(`./dom/modifyElement.cjs`),d=require(`./dom/removeElement.cjs`),f=require(`./dom/resolveClassName.cjs`),p=require(`./function/isFunction.cjs`),m=require(`./lang/isNil.cjs`),h=require(`./number/normalizeMinMax.cjs`),g=require(`./number/clamp.cjs`),_=require(`./number/getRandomInteger.cjs`),v=require(`./object/isObject.cjs`),y=require(`./object/deepMerge.cjs`),b=require(`./string/generateText.cjs`),x=require(`./string/generateTokenizedText.cjs`),S=require(`./string/interpolate.cjs`),C=require(`./string/interpolateLiteral.cjs`);exports.clamp=g.clamp,exports.createElement=i.createElement,exports.debounce=t.debounce,exports.deepMerge=y.deepMerge,exports.doElementsOverlap=a.doElementsOverlap,exports.extractByIndices=e.extractByIndices,exports.generateText=b.generateText,exports.generateTokenizedText=x.generateTokenizedText,exports.getCSSDeclaration=o.getCSSDeclaration,exports.getElement=s.getElement,exports.getRandomInteger=_.getRandomInteger,exports.interpolate=S.interpolate,exports.interpolateLiteral=C.interpolateLiteral,exports.isElement=c.isElement,exports.isFunction=p.isFunction,exports.isNil=m.isNil,exports.isObject=v.isObject,exports.isString=l.isString,exports.modifyElement=u.modifyElement,exports.normalizeMinMax=h.normalizeMinMax,exports.removeElement=d.removeElement,exports.resolveClassName=f.resolveClassName,exports.standby=n.standby,exports.throttle=r.throttle;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,9 @@
1
1
  export { extractByIndices } from './array/extractByIndices';
2
+ export { debounce } from './async/debounce';
3
+ export type { DebouncedFunction } from './async/debounce';
2
4
  export { standby } from './async/standby';
5
+ export { throttle } from './async/throttle';
6
+ export type { ThrottledFunction } from './async/throttle';
3
7
  export { createElement } from './dom/createElement';
4
8
  export type { BoundingClientRectInit, CreateElementConfig } from './dom/createElement';
5
9
  export { doElementsOverlap } from './dom/doElementsOverlap';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AACtE,YAAY,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AACtE,YAAY,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA"}
package/dist/index.js CHANGED
@@ -1,23 +1,25 @@
1
1
  import { extractByIndices as e } from "./array/extractByIndices.js";
2
- import { standby as t } from "./async/standby.js";
3
- import { createElement as n } from "./dom/createElement.js";
4
- import { doElementsOverlap as r } from "./dom/doElementsOverlap.js";
5
- import { getCSSDeclaration as i } from "./dom/getCSSDeclaration.js";
6
- import { getElement as a } from "./dom/getElement.js";
7
- import { isElement as o } from "./dom/isElement.js";
8
- import { isString as s } from "./string/isString.js";
9
- import { modifyElement as c } from "./dom/modifyElement.js";
10
- import { removeElement as l } from "./dom/removeElement.js";
11
- import { resolveClassName as u } from "./dom/resolveClassName.js";
12
- import { isFunction as d } from "./function/isFunction.js";
13
- import { isNil as f } from "./lang/isNil.js";
14
- import { normalizeMinMax as p } from "./number/normalizeMinMax.js";
15
- import { clamp as m } from "./number/clamp.js";
16
- import { getRandomInteger as h } from "./number/getRandomInteger.js";
17
- import { isObject as g } from "./object/isObject.js";
18
- import { deepMerge as _ } from "./object/deepMerge.js";
19
- import { generateText as v } from "./string/generateText.js";
20
- import { generateTokenizedText as y } from "./string/generateTokenizedText.js";
21
- import { interpolate as b } from "./string/interpolate.js";
22
- import { interpolateLiteral as x } from "./string/interpolateLiteral.js";
23
- export { m as clamp, n as createElement, _ as deepMerge, r as doElementsOverlap, e as extractByIndices, v as generateText, y as generateTokenizedText, i as getCSSDeclaration, a as getElement, h as getRandomInteger, b as interpolate, x as interpolateLiteral, o as isElement, d as isFunction, f as isNil, g as isObject, s as isString, c as modifyElement, p as normalizeMinMax, l as removeElement, u as resolveClassName, t as standby };
2
+ import { debounce as t } from "./async/debounce.js";
3
+ import { standby as n } from "./async/standby.js";
4
+ import { throttle as r } from "./async/throttle.js";
5
+ import { createElement as i } from "./dom/createElement.js";
6
+ import { doElementsOverlap as a } from "./dom/doElementsOverlap.js";
7
+ import { getCSSDeclaration as o } from "./dom/getCSSDeclaration.js";
8
+ import { getElement as s } from "./dom/getElement.js";
9
+ import { isElement as c } from "./dom/isElement.js";
10
+ import { isString as l } from "./string/isString.js";
11
+ import { modifyElement as u } from "./dom/modifyElement.js";
12
+ import { removeElement as d } from "./dom/removeElement.js";
13
+ import { resolveClassName as f } from "./dom/resolveClassName.js";
14
+ import { isFunction as p } from "./function/isFunction.js";
15
+ import { isNil as m } from "./lang/isNil.js";
16
+ import { normalizeMinMax as h } from "./number/normalizeMinMax.js";
17
+ import { clamp as g } from "./number/clamp.js";
18
+ import { getRandomInteger as _ } from "./number/getRandomInteger.js";
19
+ import { isObject as v } from "./object/isObject.js";
20
+ import { deepMerge as y } from "./object/deepMerge.js";
21
+ import { generateText as b } from "./string/generateText.js";
22
+ import { generateTokenizedText as x } from "./string/generateTokenizedText.js";
23
+ import { interpolate as S } from "./string/interpolate.js";
24
+ import { interpolateLiteral as C } from "./string/interpolateLiteral.js";
25
+ export { g as clamp, i as createElement, t as debounce, y as deepMerge, a as doElementsOverlap, e as extractByIndices, b as generateText, x as generateTokenizedText, o as getCSSDeclaration, s as getElement, _ as getRandomInteger, S as interpolate, C as interpolateLiteral, c as isElement, p as isFunction, m as isNil, v as isObject, l as isString, u as modifyElement, h as normalizeMinMax, d as removeElement, f as resolveClassName, n as standby, r as throttle };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@untemps/utils",
3
- "version": "4.0.0-beta.5",
3
+ "version": "4.0.0-beta.6",
4
4
  "description": "Utils for @untemps packages",
5
5
  "repository": "git@github.com:untemps/utils.git",
6
6
  "keywords": [],