@aiszlab/relax 1.4.5 → 1.4.7

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.
Files changed (65) hide show
  1. package/dist/hooks/use-debounce-callback.cjs +2 -17
  2. package/dist/hooks/use-debounce-callback.d.ts +4 -2
  3. package/dist/hooks/use-debounce-callback.mjs +2 -17
  4. package/dist/hooks/use-default.cjs +3 -1
  5. package/dist/hooks/use-default.mjs +3 -1
  6. package/dist/hooks/use-event.cjs +0 -1
  7. package/dist/hooks/use-event.d.ts +2 -2
  8. package/dist/hooks/use-event.mjs +0 -1
  9. package/dist/hooks/use-focus.cjs +24 -18
  10. package/dist/hooks/use-focus.d.ts +2 -2
  11. package/dist/hooks/use-focus.mjs +24 -18
  12. package/dist/hooks/use-hover.cjs +14 -7
  13. package/dist/hooks/use-hover.d.ts +2 -2
  14. package/dist/hooks/use-hover.mjs +14 -7
  15. package/dist/hooks/use-infinite-scroll.d.ts +1 -4
  16. package/dist/hooks/use-media-query.cjs +9 -13
  17. package/dist/hooks/use-media-query.mjs +10 -14
  18. package/dist/hooks/use-raf.d.ts +2 -1
  19. package/dist/hooks/use-throttle-callback.cjs +2 -17
  20. package/dist/hooks/use-throttle-callback.d.ts +4 -2
  21. package/dist/hooks/use-throttle-callback.mjs +2 -17
  22. package/dist/hooks/use-timeout.d.ts +2 -1
  23. package/dist/index.cjs +2 -0
  24. package/dist/index.d.ts +1 -0
  25. package/dist/index.mjs +1 -0
  26. package/dist/is/is-boolean.cjs +7 -0
  27. package/dist/is/is-boolean.d.ts +1 -0
  28. package/dist/is/is-boolean.mjs +5 -0
  29. package/dist/types/any-function.d.ts +1 -0
  30. package/dist/types/index.d.ts +1 -0
  31. package/dist/types/last.d.ts +1 -1
  32. package/dist/types/partial-in.d.ts +5 -0
  33. package/dist/utils/clone.cjs +0 -1
  34. package/dist/utils/clone.mjs +0 -1
  35. package/dist/utils/clsx.cjs +10 -9
  36. package/dist/utils/clsx.d.ts +2 -2
  37. package/dist/utils/clsx.mjs +10 -9
  38. package/dist/utils/debounce.cjs +0 -1
  39. package/dist/utils/debounce.d.ts +4 -4
  40. package/dist/utils/debounce.mjs +0 -1
  41. package/dist/utils/exclude.cjs +0 -1
  42. package/dist/utils/exclude.mjs +0 -1
  43. package/dist/utils/last.cjs +0 -1
  44. package/dist/utils/last.mjs +0 -1
  45. package/dist/utils/load.cjs +55 -0
  46. package/dist/utils/load.d.ts +10 -0
  47. package/dist/utils/load.mjs +53 -0
  48. package/dist/utils/merge.cjs +0 -2
  49. package/dist/utils/merge.mjs +0 -2
  50. package/dist/utils/replace.cjs +16 -15
  51. package/dist/utils/replace.d.ts +14 -13
  52. package/dist/utils/replace.mjs +16 -15
  53. package/dist/utils/set-style.cjs +3 -5
  54. package/dist/utils/set-style.d.ts +1 -1
  55. package/dist/utils/set-style.mjs +3 -5
  56. package/dist/utils/throttle.cjs +0 -1
  57. package/dist/utils/throttle.d.ts +4 -4
  58. package/dist/utils/throttle.mjs +0 -1
  59. package/dist/utils/to-function.cjs +1 -2
  60. package/dist/utils/to-function.d.ts +4 -1
  61. package/dist/utils/to-function.mjs +1 -2
  62. package/dist/utils/waitable.cjs +7 -6
  63. package/dist/utils/waitable.d.ts +4 -4
  64. package/dist/utils/waitable.mjs +7 -6
  65. package/package.json +1 -1
@@ -35,7 +35,6 @@ var _clone = function clone(value) {
35
35
  return _clone(_value);
36
36
  });
37
37
  }
38
- // @ts-ignore
39
38
  return Object.entries(value).reduce(function (cloned, _ref3) {
40
39
  var _ref4 = _slicedToArray(_ref3, 2),
41
40
  _key = _ref4[0],
@@ -33,7 +33,6 @@ var _clone = function clone(value) {
33
33
  return _clone(_value);
34
34
  });
35
35
  }
36
- // @ts-ignore
37
36
  return Object.entries(value).reduce(function (cloned, _ref3) {
38
37
  var _ref4 = _slicedToArray(_ref3, 2),
39
38
  _key = _ref4[0],
@@ -2,19 +2,20 @@
2
2
 
3
3
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
4
4
  var isArray = require('../is/is-array.cjs');
5
+ var isBoolean = require('../is/is-boolean.cjs');
5
6
  var isNumber = require('../is/is-number.cjs');
6
7
  var isString = require('../is/is-string.cjs');
7
8
  var isVoid = require('../is/is-void.cjs');
8
9
 
9
- var _toClassNames = function toClassNames(value) {
10
- if (isVoid.isVoid(value)) return [];
11
- if (isString.isString(value) || isNumber.isNumber(value)) return [value.toString()];
12
- if (isArray.isArray(value)) {
13
- return value.reduce(function (classNames, item) {
10
+ var _toClassNames = function toClassNames(_classNames) {
11
+ if (isVoid.isVoid(_classNames) || isBoolean.isBoolean(_classNames)) return [];
12
+ if (isString.isString(_classNames) || isNumber.isNumber(_classNames)) return [_classNames.toString()];
13
+ if (isArray.isArray(_classNames)) {
14
+ return _classNames.reduce(function (classNames, item) {
14
15
  return classNames.concat(_toClassNames(item));
15
16
  }, []);
16
17
  }
17
- return Object.entries(value).reduce(function (classNames, _ref) {
18
+ return Object.entries(_classNames).reduce(function (classNames, _ref) {
18
19
  var _ref2 = _slicedToArray(_ref, 2),
19
20
  className = _ref2[0],
20
21
  isValid = _ref2[1];
@@ -25,10 +26,10 @@ var _toClassNames = function toClassNames(value) {
25
26
  }, []);
26
27
  };
27
28
  var clsx = function clsx() {
28
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
29
- args[_key] = arguments[_key];
29
+ for (var _len = arguments.length, _classNames = new Array(_len), _key = 0; _key < _len; _key++) {
30
+ _classNames[_key] = arguments[_key];
30
31
  }
31
- return _toClassNames(args).join(" ");
32
+ return _toClassNames(_classNames).join(" ");
32
33
  };
33
34
 
34
35
  exports.clsx = clsx;
@@ -1,3 +1,3 @@
1
- type Value = string | number | Record<string, boolean> | Value[] | null | undefined;
2
- export declare const clsx: (...args: Value[]) => string;
1
+ type ClassNames = string | number | Record<string, boolean> | ClassNames[] | null | undefined | boolean;
2
+ export declare const clsx: (..._classNames: ClassNames[]) => string;
3
3
  export {};
@@ -1,18 +1,19 @@
1
1
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
2
  import { isArray } from '../is/is-array.mjs';
3
+ import { isBoolean } from '../is/is-boolean.mjs';
3
4
  import { isNumber } from '../is/is-number.mjs';
4
5
  import { isString } from '../is/is-string.mjs';
5
6
  import { isVoid } from '../is/is-void.mjs';
6
7
 
7
- var _toClassNames = function toClassNames(value) {
8
- if (isVoid(value)) return [];
9
- if (isString(value) || isNumber(value)) return [value.toString()];
10
- if (isArray(value)) {
11
- return value.reduce(function (classNames, item) {
8
+ var _toClassNames = function toClassNames(_classNames) {
9
+ if (isVoid(_classNames) || isBoolean(_classNames)) return [];
10
+ if (isString(_classNames) || isNumber(_classNames)) return [_classNames.toString()];
11
+ if (isArray(_classNames)) {
12
+ return _classNames.reduce(function (classNames, item) {
12
13
  return classNames.concat(_toClassNames(item));
13
14
  }, []);
14
15
  }
15
- return Object.entries(value).reduce(function (classNames, _ref) {
16
+ return Object.entries(_classNames).reduce(function (classNames, _ref) {
16
17
  var _ref2 = _slicedToArray(_ref, 2),
17
18
  className = _ref2[0],
18
19
  isValid = _ref2[1];
@@ -23,10 +24,10 @@ var _toClassNames = function toClassNames(value) {
23
24
  }, []);
24
25
  };
25
26
  var clsx = function clsx() {
26
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
27
- args[_key] = arguments[_key];
27
+ for (var _len = arguments.length, _classNames = new Array(_len), _key = 0; _key < _len; _key++) {
28
+ _classNames[_key] = arguments[_key];
28
29
  }
29
- return _toClassNames(args).join(" ");
30
+ return _toClassNames(_classNames).join(" ");
30
31
  };
31
32
 
32
33
  export { clsx };
@@ -7,7 +7,6 @@ var waitable = require('./waitable.cjs');
7
7
  var debounce = function debounce(debouncer, wait) {
8
8
  var _isFunction = isFunction.isFunction(debouncer);
9
9
  var callback = _isFunction ? debouncer : debouncer.callback;
10
- // @ts-ignore
11
10
  var waiter = new waitable.Waitable({
12
11
  callback: callback,
13
12
  pipe: _isFunction ? void 0 : debouncer.pipe,
@@ -1,5 +1,5 @@
1
- import { type Callable } from "../hooks/use-event";
2
- export interface Debounced<T extends Callable> {
1
+ import type { AnyFunction } from "@aiszlab/relax/types";
2
+ export interface Debounced<T extends AnyFunction> {
3
3
  /**
4
4
  * @description
5
5
  * value trigger
@@ -16,8 +16,8 @@ export interface Debounced<T extends Callable> {
16
16
  */
17
17
  abort: () => void;
18
18
  }
19
- export type Debouncer<T extends Callable, R = unknown> = {
19
+ export type Debouncer<T extends AnyFunction, R> = {
20
20
  callback: (args: R) => ReturnType<T>;
21
21
  pipe: (...args: Parameters<T>) => R | Promise<R>;
22
22
  };
23
- export declare const debounce: <T extends Callable, R = unknown>(debouncer: Debouncer<T, R> | T, wait: number) => Debounced<T>;
23
+ export declare const debounce: <T extends AnyFunction, R>(debouncer: Debouncer<T, R> | T, wait: number) => Debounced<T>;
@@ -5,7 +5,6 @@ import { Waitable } from './waitable.mjs';
5
5
  var debounce = function debounce(debouncer, wait) {
6
6
  var _isFunction = isFunction(debouncer);
7
7
  var callback = _isFunction ? debouncer : debouncer.callback;
8
- // @ts-ignore
9
8
  var waiter = new Waitable({
10
9
  callback: callback,
11
10
  pipe: _isFunction ? void 0 : debouncer.pipe,
@@ -11,7 +11,6 @@
11
11
  */
12
12
  var exclude = function exclude(value, _excludeBy) {
13
13
  var excludeBy = new Set(_excludeBy);
14
- // @ts-ignore
15
14
  return value.filter(function (item) {
16
15
  return !excludeBy.has(item);
17
16
  });
@@ -9,7 +9,6 @@
9
9
  */
10
10
  var exclude = function exclude(value, _excludeBy) {
11
11
  var excludeBy = new Set(_excludeBy);
12
- // @ts-ignore
13
12
  return value.filter(function (item) {
14
13
  return !excludeBy.has(item);
15
14
  });
@@ -7,7 +7,6 @@ var toArray = require('./to-array.cjs');
7
7
  * last element of array
8
8
  */
9
9
  var last = function last(value) {
10
- // @ts-ignore
11
10
  return toArray.toArray(value, {
12
11
  separator: ""
13
12
  }).at(-1);
@@ -5,7 +5,6 @@ import { toArray } from './to-array.mjs';
5
5
  * last element of array
6
6
  */
7
7
  var last = function last(value) {
8
- // @ts-ignore
9
8
  return toArray(value, {
10
9
  separator: ""
11
10
  }).at(-1);
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+
3
+ var isDomUsable = require('../is/is-dom-usable.cjs');
4
+
5
+ var loadScript = function loadScript(url) {
6
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
7
+ _ref$defer = _ref.defer,
8
+ defer = _ref$defer === void 0 ? false : _ref$defer;
9
+ var _Promise$withResolver = Promise.withResolvers(),
10
+ promise = _Promise$withResolver.promise,
11
+ reject = _Promise$withResolver.reject,
12
+ resolve = _Promise$withResolver.resolve;
13
+ var script = document.createElement("script");
14
+ script.src = url;
15
+ script.async = true;
16
+ script.crossOrigin = "anonymous";
17
+ script.defer = defer;
18
+ script.addEventListener("load", function () {
19
+ resolve();
20
+ });
21
+ script.addEventListener("error", function () {
22
+ reject();
23
+ });
24
+ document.head.appendChild(script);
25
+ return promise;
26
+ };
27
+ var loadLink = function loadLink(url) {
28
+ var _Promise$withResolver2 = Promise.withResolvers(),
29
+ promise = _Promise$withResolver2.promise,
30
+ reject = _Promise$withResolver2.reject,
31
+ resolve = _Promise$withResolver2.resolve;
32
+ var link = document.createElement("link");
33
+ link.href = url;
34
+ link.addEventListener("load", function () {
35
+ resolve();
36
+ });
37
+ link.addEventListener("error", function () {
38
+ reject();
39
+ });
40
+ document.head.appendChild(link);
41
+ return promise;
42
+ };
43
+ function load(type, url, loading) {
44
+ if (!isDomUsable.isDomUsable()) return null;
45
+ switch (type) {
46
+ case "script":
47
+ return loadScript(url, loading);
48
+ case "link":
49
+ return loadLink(url);
50
+ default:
51
+ return Promise.resolve();
52
+ }
53
+ }
54
+
55
+ exports.load = load;
@@ -0,0 +1,10 @@
1
+ type ScriptLoading = {
2
+ defer?: boolean;
3
+ };
4
+ /**
5
+ * @description
6
+ * load remote resource
7
+ */
8
+ declare function load(type: "script", url: string, loading?: ScriptLoading): Promise<void>;
9
+ declare function load(type: "link", url: string): Promise<void>;
10
+ export { load };
@@ -0,0 +1,53 @@
1
+ import { isDomUsable } from '../is/is-dom-usable.mjs';
2
+
3
+ var loadScript = function loadScript(url) {
4
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
5
+ _ref$defer = _ref.defer,
6
+ defer = _ref$defer === void 0 ? false : _ref$defer;
7
+ var _Promise$withResolver = Promise.withResolvers(),
8
+ promise = _Promise$withResolver.promise,
9
+ reject = _Promise$withResolver.reject,
10
+ resolve = _Promise$withResolver.resolve;
11
+ var script = document.createElement("script");
12
+ script.src = url;
13
+ script.async = true;
14
+ script.crossOrigin = "anonymous";
15
+ script.defer = defer;
16
+ script.addEventListener("load", function () {
17
+ resolve();
18
+ });
19
+ script.addEventListener("error", function () {
20
+ reject();
21
+ });
22
+ document.head.appendChild(script);
23
+ return promise;
24
+ };
25
+ var loadLink = function loadLink(url) {
26
+ var _Promise$withResolver2 = Promise.withResolvers(),
27
+ promise = _Promise$withResolver2.promise,
28
+ reject = _Promise$withResolver2.reject,
29
+ resolve = _Promise$withResolver2.resolve;
30
+ var link = document.createElement("link");
31
+ link.href = url;
32
+ link.addEventListener("load", function () {
33
+ resolve();
34
+ });
35
+ link.addEventListener("error", function () {
36
+ reject();
37
+ });
38
+ document.head.appendChild(link);
39
+ return promise;
40
+ };
41
+ function load(type, url, loading) {
42
+ if (!isDomUsable()) return null;
43
+ switch (type) {
44
+ case "script":
45
+ return loadScript(url, loading);
46
+ case "link":
47
+ return loadLink(url);
48
+ default:
49
+ return Promise.resolve();
50
+ }
51
+ }
52
+
53
+ export { load };
@@ -43,9 +43,7 @@ var merge = function merge() {
43
43
  for (var _len = arguments.length, values = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {
44
44
  values[_key2] = arguments[_key2];
45
45
  }
46
- // @ts-ignore
47
46
  return unique.unique(values).reduce(function (_merged, _value) {
48
- // @ts-ignore
49
47
  return _merge2(_merged, _value !== null && _value !== void 0 ? _value : {});
50
48
  }, null);
51
49
  };
@@ -41,9 +41,7 @@ var merge = function merge() {
41
41
  for (var _len = arguments.length, values = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {
42
42
  values[_key2] = arguments[_key2];
43
43
  }
44
- // @ts-ignore
45
44
  return unique(values).reduce(function (_merged, _value) {
46
- // @ts-ignore
47
45
  return _merge2(_merged, _value !== null && _value !== void 0 ? _value : {});
48
46
  }, null);
49
47
  };
@@ -1,22 +1,23 @@
1
1
  'use strict';
2
2
 
3
3
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
4
- var isArray = require('../is/is-array.cjs');
4
+ var isString = require('../is/is-string.cjs');
5
+ var toArray = require('./to-array.cjs');
5
6
 
6
- /**
7
- * @description
8
- * comman replace
9
- * usable for `string`, `array`
10
- */
11
- var replace = function replace(value, options) {
12
- if (isArray.isArray(value)) {
13
- var index = options.index,
14
- _replaceValue = options.replaceValue;
15
- return [].concat(_toConsumableArray(value.slice(0, index)), [_replaceValue], _toConsumableArray(value.slice(index + 1)));
7
+ function replace(value) {
8
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
9
+ args[_key - 1] = arguments[_key];
16
10
  }
17
- var replaceValue = options.replaceValue,
18
- searchValue = options.searchValue;
19
- return value.replace(searchValue, replaceValue);
20
- };
11
+ if (isString.isString(value)) {
12
+ return value.replace.apply(value, args);
13
+ }
14
+ var incoming = args[0],
15
+ start = args[1],
16
+ end = args[2];
17
+ var _incomings = toArray.toArray(incoming);
18
+ var leading = value.slice(0, start);
19
+ var trailing = value.slice(end !== null && end !== void 0 ? end : start + _incomings.length);
20
+ return [].concat(_toConsumableArray(leading), _toConsumableArray(_incomings), _toConsumableArray(trailing));
21
+ }
21
22
 
22
23
  exports.replace = replace;
@@ -1,16 +1,17 @@
1
- type ReplaceArrayOptions<R> = {
2
- index: number;
3
- replaceValue: R;
4
- };
5
- type ReplaceStringOptions = {
6
- searchValue: string;
7
- replaceValue: string;
8
- };
9
- type ReplaceOptions<T> = T extends string ? ReplaceStringOptions : T extends Array<infer R> ? ReplaceArrayOptions<R> : never;
1
+ type StringReplacing = [searchValue: string, incoming: string];
2
+ type ArrayReplacing<T> = [incoming: Array<T> | T, start: number, end?: number];
10
3
  /**
11
4
  * @description
12
- * comman replace
13
- * usable for `string`, `array`
5
+ * string replace.
6
+ * it is an easy way to replace string.
7
+ * wrapper for `String.prototype.replace`.
14
8
  */
15
- export declare const replace: <T extends string | R[], R>(value: T, options: ReplaceOptions<T>) => T;
16
- export {};
9
+ declare function replace(value: string, ...args: StringReplacing): string;
10
+ /**
11
+ * @description
12
+ * replace array.
13
+ * `value`, `incoming` should be array.
14
+ * [start, end)
15
+ */
16
+ declare function replace<T>(value: Array<T>, ...args: ArrayReplacing<T>): Array<T>;
17
+ export { replace };
@@ -1,20 +1,21 @@
1
1
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
2
- import { isArray } from '../is/is-array.mjs';
2
+ import { isString } from '../is/is-string.mjs';
3
+ import { toArray } from './to-array.mjs';
3
4
 
4
- /**
5
- * @description
6
- * comman replace
7
- * usable for `string`, `array`
8
- */
9
- var replace = function replace(value, options) {
10
- if (isArray(value)) {
11
- var index = options.index,
12
- _replaceValue = options.replaceValue;
13
- return [].concat(_toConsumableArray(value.slice(0, index)), [_replaceValue], _toConsumableArray(value.slice(index + 1)));
5
+ function replace(value) {
6
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
7
+ args[_key - 1] = arguments[_key];
14
8
  }
15
- var replaceValue = options.replaceValue,
16
- searchValue = options.searchValue;
17
- return value.replace(searchValue, replaceValue);
18
- };
9
+ if (isString(value)) {
10
+ return value.replace.apply(value, args);
11
+ }
12
+ var incoming = args[0],
13
+ start = args[1],
14
+ end = args[2];
15
+ var _incomings = toArray(incoming);
16
+ var leading = value.slice(0, start);
17
+ var trailing = value.slice(end !== null && end !== void 0 ? end : start + _incomings.length);
18
+ return [].concat(_toConsumableArray(leading), _toConsumableArray(_incomings), _toConsumableArray(trailing));
19
+ }
19
20
 
20
21
  export { replace };
@@ -6,16 +6,14 @@ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
6
  * @description
7
7
  * set inline style util
8
8
  */
9
- var setStyle = function setStyle(target, styles) {
9
+ var setStyle = function setStyle(element, styles) {
10
10
  if (!styles) return {};
11
11
  return Object.entries(styles).reduce(function (prev, _ref) {
12
12
  var _ref2 = _slicedToArray(_ref, 2),
13
13
  key = _ref2[0],
14
14
  value = _ref2[1];
15
- // @ts-ignore
16
- prev[key] = target.style[key];
17
- // @ts-ignore
18
- target.style[key] = value;
15
+ prev[key] = element.style[key];
16
+ element.style[key] = value;
19
17
  return prev;
20
18
  }, {});
21
19
  };
@@ -3,4 +3,4 @@ import type { Voidable } from "@aiszlab/relax/types";
3
3
  * @description
4
4
  * set inline style util
5
5
  */
6
- export declare const setStyle: (target: HTMLElement, styles: Voidable<Partial<CSSStyleDeclaration>>) => Partial<CSSStyleDeclaration>;
6
+ export declare const setStyle: (element: HTMLElement, styles: Voidable<Partial<CSSStyleDeclaration>>) => Partial<CSSStyleDeclaration>;
@@ -4,16 +4,14 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
4
  * @description
5
5
  * set inline style util
6
6
  */
7
- var setStyle = function setStyle(target, styles) {
7
+ var setStyle = function setStyle(element, styles) {
8
8
  if (!styles) return {};
9
9
  return Object.entries(styles).reduce(function (prev, _ref) {
10
10
  var _ref2 = _slicedToArray(_ref, 2),
11
11
  key = _ref2[0],
12
12
  value = _ref2[1];
13
- // @ts-ignore
14
- prev[key] = target.style[key];
15
- // @ts-ignore
16
- target.style[key] = value;
13
+ prev[key] = element.style[key];
14
+ element.style[key] = value;
17
15
  return prev;
18
16
  }, {});
19
17
  };
@@ -7,7 +7,6 @@ var rxjs = require('rxjs');
7
7
  var throttle = function throttle(throttler, wait) {
8
8
  var _isFunction = isFunction.isFunction(throttler);
9
9
  var callback = _isFunction ? throttler : throttler.callback;
10
- // @ts-ignore
11
10
  var waiter = new waitable.Waitable({
12
11
  callback: callback,
13
12
  pipe: _isFunction ? void 0 : throttler.pipe,
@@ -1,5 +1,5 @@
1
1
  import type { Debounced, Debouncer } from "./debounce";
2
- import { type Callable } from "../hooks/use-event";
3
- export type Throttled<T extends Callable> = Debounced<T>;
4
- export type Throttler<T extends Callable, R = unknown> = Debouncer<T, R>;
5
- export declare const throttle: <T extends Callable, R = unknown>(throttler: Throttler<T, R> | T, wait: number) => Throttled<T>;
2
+ import type { AnyFunction } from "@aiszlab/relax/types";
3
+ export type Throttled<T extends AnyFunction> = Debounced<T>;
4
+ export type Throttler<T extends AnyFunction, R = unknown> = Debouncer<T, R>;
5
+ export declare const throttle: <T extends AnyFunction, R = unknown>(throttler: Throttler<T, R> | T, wait: number) => Throttled<T>;
@@ -5,7 +5,6 @@ import { throttleTime } from 'rxjs';
5
5
  var throttle = function throttle(throttler, wait) {
6
6
  var _isFunction = isFunction(throttler);
7
7
  var callback = _isFunction ? throttler : throttler.callback;
8
- // @ts-ignore
9
8
  var waiter = new Waitable({
10
9
  callback: callback,
11
10
  pipe: _isFunction ? void 0 : throttler.pipe,
@@ -3,8 +3,7 @@
3
3
  var isFunction = require('../is/is-function.cjs');
4
4
 
5
5
  var toFunction = function toFunction(value) {
6
- var _isFunction = isFunction.isFunction(value);
7
- if (_isFunction) {
6
+ if (isFunction.isFunction(value)) {
8
7
  return value;
9
8
  }
10
9
  return function () {
@@ -1 +1,4 @@
1
- export declare const toFunction: <T extends Function>(value: unknown) => T;
1
+ import type { AnyFunction, State } from "../types";
2
+ type Functioned<T> = T extends State<infer R> ? () => R : T extends AnyFunction ? T : T extends Function ? T : () => T;
3
+ export declare const toFunction: <T = unknown>(value: T) => Functioned<T>;
4
+ export {};
@@ -1,8 +1,7 @@
1
1
  import { isFunction } from '../is/is-function.mjs';
2
2
 
3
3
  var toFunction = function toFunction(value) {
4
- var _isFunction = isFunction(value);
5
- if (_isFunction) {
4
+ if (isFunction(value)) {
6
5
  return value;
7
6
  }
8
7
  return function () {
@@ -23,7 +23,10 @@ var _pipe = /*#__PURE__*/new WeakMap();
23
23
  var _callback = /*#__PURE__*/new WeakMap();
24
24
  var _Waitable_brand = /*#__PURE__*/new WeakSet();
25
25
  var Waitable = /*#__PURE__*/function () {
26
- function Waitable(props) {
26
+ function Waitable(_ref) {
27
+ var callback = _ref.callback,
28
+ pipe = _ref.pipe,
29
+ timer = _ref.timer;
27
30
  _classCallCheck(this, Waitable);
28
31
  _classPrivateMethodInitSpec(this, _Waitable_brand);
29
32
  _classPrivateFieldInitSpec(this, _cook$, void 0);
@@ -33,9 +36,9 @@ var Waitable = /*#__PURE__*/function () {
33
36
  _classPrivateFieldInitSpec(this, _callback, void 0);
34
37
  _classPrivateFieldSet(_cook$, this, null);
35
38
  _classPrivateFieldSet(_waiter$, this, null);
36
- _classPrivateFieldSet(_timer, this, props.timer);
37
- _classPrivateFieldSet(_pipe, this, props.pipe);
38
- _classPrivateFieldSet(_callback, this, props.callback);
39
+ _classPrivateFieldSet(_timer, this, timer);
40
+ _classPrivateFieldSet(_pipe, this, pipe);
41
+ _classPrivateFieldSet(_callback, this, callback);
39
42
  _assertClassBrand(_Waitable_brand, this, _use).call(this);
40
43
  }
41
44
  return _createClass(Waitable, [{
@@ -96,10 +99,8 @@ function _use() {
96
99
  })).subscribe(function (args) {
97
100
  if (!_classPrivateFieldGet(_pipe, _this)) {
98
101
  var _classPrivateFieldGet7;
99
- // @ts-ignore
100
102
  (_classPrivateFieldGet7 = _classPrivateFieldGet(_callback, _this)).call.apply(_classPrivateFieldGet7, [_this].concat(_toConsumableArray(args)));
101
103
  } else {
102
- // @ts-ignore
103
104
  _classPrivateFieldGet(_callback, _this).call(_this, args);
104
105
  }
105
106
  }));
@@ -1,15 +1,15 @@
1
1
  import { type MonoTypeOperatorFunction } from "rxjs";
2
- interface PropsWithoutPipe<T extends Array<unknown> = Array<unknown>> {
2
+ interface WaitingWithoutPipe<T extends Array<unknown> = Array<unknown>> {
3
3
  callback: (...args: T) => unknown;
4
4
  pipe: undefined;
5
5
  timer: MonoTypeOperatorFunction<T>;
6
6
  }
7
- interface PropsWithPipe<T extends Array<unknown> = Array<unknown>, R = unknown> {
7
+ interface WaitingWithPipe<T extends Array<unknown> = Array<unknown>, R = unknown> {
8
8
  callback: (value: R) => unknown;
9
9
  pipe: (...args: T) => R | Promise<R>;
10
10
  timer: MonoTypeOperatorFunction<T>;
11
11
  }
12
- type Props<T extends Array<unknown> = Array<unknown>, R = unknown> = PropsWithoutPipe<T> | PropsWithPipe<T, R>;
12
+ export type Waiting<T extends Array<unknown> = Array<unknown>, R = unknown> = WaitingWithoutPipe<T> | WaitingWithPipe<T, R>;
13
13
  /**
14
14
  * @description
15
15
  * waitable instance
@@ -17,7 +17,7 @@ type Props<T extends Array<unknown> = Array<unknown>, R = unknown> = PropsWithou
17
17
  */
18
18
  export declare class Waitable<T extends Array<unknown>, R = unknown> {
19
19
  #private;
20
- constructor(props: Props<T, R>);
20
+ constructor({ callback, pipe, timer }: Waiting<T, R>);
21
21
  /**
22
22
  * @description
23
23
  * flush
@@ -21,7 +21,10 @@ var _pipe = /*#__PURE__*/new WeakMap();
21
21
  var _callback = /*#__PURE__*/new WeakMap();
22
22
  var _Waitable_brand = /*#__PURE__*/new WeakSet();
23
23
  var Waitable = /*#__PURE__*/function () {
24
- function Waitable(props) {
24
+ function Waitable(_ref) {
25
+ var callback = _ref.callback,
26
+ pipe = _ref.pipe,
27
+ timer = _ref.timer;
25
28
  _classCallCheck(this, Waitable);
26
29
  _classPrivateMethodInitSpec(this, _Waitable_brand);
27
30
  _classPrivateFieldInitSpec(this, _cook$, void 0);
@@ -31,9 +34,9 @@ var Waitable = /*#__PURE__*/function () {
31
34
  _classPrivateFieldInitSpec(this, _callback, void 0);
32
35
  _classPrivateFieldSet(_cook$, this, null);
33
36
  _classPrivateFieldSet(_waiter$, this, null);
34
- _classPrivateFieldSet(_timer, this, props.timer);
35
- _classPrivateFieldSet(_pipe, this, props.pipe);
36
- _classPrivateFieldSet(_callback, this, props.callback);
37
+ _classPrivateFieldSet(_timer, this, timer);
38
+ _classPrivateFieldSet(_pipe, this, pipe);
39
+ _classPrivateFieldSet(_callback, this, callback);
37
40
  _assertClassBrand(_Waitable_brand, this, _use).call(this);
38
41
  }
39
42
  return _createClass(Waitable, [{
@@ -94,10 +97,8 @@ function _use() {
94
97
  })).subscribe(function (args) {
95
98
  if (!_classPrivateFieldGet(_pipe, _this)) {
96
99
  var _classPrivateFieldGet7;
97
- // @ts-ignore
98
100
  (_classPrivateFieldGet7 = _classPrivateFieldGet(_callback, _this)).call.apply(_classPrivateFieldGet7, [_this].concat(_toConsumableArray(args)));
99
101
  } else {
100
- // @ts-ignore
101
102
  _classPrivateFieldGet(_callback, _this).call(_this, args);
102
103
  }
103
104
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiszlab/relax",
3
- "version": "1.4.5",
3
+ "version": "1.4.7",
4
4
  "description": "react utils collection",
5
5
  "exports": {
6
6
  ".": {