@aiszlab/relax 1.4.5 → 1.4.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.
Files changed (45) 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-event.cjs +0 -1
  5. package/dist/hooks/use-event.d.ts +2 -2
  6. package/dist/hooks/use-event.mjs +0 -1
  7. package/dist/hooks/use-infinite-scroll.d.ts +1 -4
  8. package/dist/hooks/use-media-query.cjs +9 -13
  9. package/dist/hooks/use-media-query.mjs +10 -14
  10. package/dist/hooks/use-raf.d.ts +2 -1
  11. package/dist/hooks/use-throttle-callback.cjs +2 -17
  12. package/dist/hooks/use-throttle-callback.d.ts +4 -2
  13. package/dist/hooks/use-throttle-callback.mjs +2 -17
  14. package/dist/hooks/use-timeout.d.ts +2 -1
  15. package/dist/types/any-function.d.ts +1 -0
  16. package/dist/types/index.d.ts +1 -0
  17. package/dist/types/last.d.ts +1 -1
  18. package/dist/types/partial-in.d.ts +5 -0
  19. package/dist/utils/clone.cjs +0 -1
  20. package/dist/utils/clone.mjs +0 -1
  21. package/dist/utils/debounce.cjs +0 -1
  22. package/dist/utils/debounce.d.ts +4 -4
  23. package/dist/utils/debounce.mjs +0 -1
  24. package/dist/utils/exclude.cjs +0 -1
  25. package/dist/utils/exclude.mjs +0 -1
  26. package/dist/utils/last.cjs +0 -1
  27. package/dist/utils/last.mjs +0 -1
  28. package/dist/utils/merge.cjs +0 -2
  29. package/dist/utils/merge.mjs +0 -2
  30. package/dist/utils/replace.cjs +16 -15
  31. package/dist/utils/replace.d.ts +14 -13
  32. package/dist/utils/replace.mjs +16 -15
  33. package/dist/utils/set-style.cjs +3 -5
  34. package/dist/utils/set-style.d.ts +1 -1
  35. package/dist/utils/set-style.mjs +3 -5
  36. package/dist/utils/throttle.cjs +0 -1
  37. package/dist/utils/throttle.d.ts +4 -4
  38. package/dist/utils/throttle.mjs +0 -1
  39. package/dist/utils/to-function.cjs +1 -2
  40. package/dist/utils/to-function.d.ts +4 -1
  41. package/dist/utils/to-function.mjs +1 -2
  42. package/dist/utils/waitable.cjs +7 -6
  43. package/dist/utils/waitable.d.ts +4 -4
  44. package/dist/utils/waitable.mjs +7 -6
  45. package/package.json +1 -1
@@ -32,22 +32,7 @@ var useDebouncer = function useDebouncer(debouncer) {
32
32
  pipe: pipe
33
33
  };
34
34
  };
35
- /**
36
- * @author murukal
37
- *
38
- * @description
39
- * debounce callback
40
- *
41
- * @param callback
42
- * @param wait number
43
- * @description
44
- * The delay time (in milliseconds) until the debounce function is called.
45
- * default 1000
46
- *
47
- * @example
48
- * 1000
49
- */
50
- var useDebounceCallback = function useDebounceCallback(debouncer) {
35
+ function useDebounceCallback(debouncer) {
51
36
  var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;
52
37
  var debounced = react.useRef(null);
53
38
  var _useDebouncer = useDebouncer(debouncer),
@@ -84,6 +69,6 @@ var useDebounceCallback = function useDebounceCallback(debouncer) {
84
69
  }
85
70
  };
86
71
  });
87
- };
72
+ }
88
73
 
89
74
  exports.useDebounceCallback = useDebounceCallback;
@@ -1,5 +1,5 @@
1
1
  import { type Debounced, type Debouncer } from "../utils/debounce";
2
- import { type Callable } from "./use-event";
2
+ import type { AnyFunction } from "@aiszlab/relax/types";
3
3
  /**
4
4
  * @author murukal
5
5
  *
@@ -15,4 +15,6 @@ import { type Callable } from "./use-event";
15
15
  * @example
16
16
  * 1000
17
17
  */
18
- export declare const useDebounceCallback: <T extends Callable, R extends Array<unknown> = Parameters<T>>(debouncer: T | Debouncer<T, R>, wait?: number) => Debounced<T>;
18
+ declare function useDebounceCallback<T extends AnyFunction>(callback: T, wait: number): Debounced<T>;
19
+ declare function useDebounceCallback<T extends AnyFunction, R = unknown>(debouncer: Debouncer<T, R>, wait: number): Debounced<T>;
20
+ export { useDebounceCallback };
@@ -30,22 +30,7 @@ var useDebouncer = function useDebouncer(debouncer) {
30
30
  pipe: pipe
31
31
  };
32
32
  };
33
- /**
34
- * @author murukal
35
- *
36
- * @description
37
- * debounce callback
38
- *
39
- * @param callback
40
- * @param wait number
41
- * @description
42
- * The delay time (in milliseconds) until the debounce function is called.
43
- * default 1000
44
- *
45
- * @example
46
- * 1000
47
- */
48
- var useDebounceCallback = function useDebounceCallback(debouncer) {
33
+ function useDebounceCallback(debouncer) {
49
34
  var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;
50
35
  var debounced = useRef(null);
51
36
  var _useDebouncer = useDebouncer(debouncer),
@@ -82,6 +67,6 @@ var useDebounceCallback = function useDebounceCallback(debouncer) {
82
67
  }
83
68
  };
84
69
  });
85
- };
70
+ }
86
71
 
87
72
  export { useDebounceCallback };
@@ -7,7 +7,6 @@ var useEvent = function useEvent(callback) {
7
7
  react.useEffect(function () {
8
8
  ref.current = callback;
9
9
  });
10
- // @ts-ignore
11
10
  return react.useCallback(function () {
12
11
  return ref.current.apply(ref, arguments);
13
12
  }, []);
@@ -1,2 +1,2 @@
1
- export type Callable = (...args: any) => any;
2
- export declare const useEvent: <T extends Callable | Function>(callback: T) => T;
1
+ import type { AnyFunction } from "@aiszlab/relax/types";
2
+ export declare const useEvent: <T extends AnyFunction>(callback: T) => T;
@@ -5,7 +5,6 @@ var useEvent = function useEvent(callback) {
5
5
  useEffect(function () {
6
6
  ref.current = callback;
7
7
  });
8
- // @ts-ignore
9
8
  return useCallback(function () {
10
9
  return ref.current.apply(ref, arguments);
11
10
  }, []);
@@ -16,10 +16,7 @@ type UsingInfiniteScroll = {
16
16
  */
17
17
  onLoadMore?: () => void;
18
18
  };
19
- type UsedInfiniteScroll<S, V> = [
20
- sentinelRef: RefObject<S | null>,
21
- viewportRef: RefObject<V | null>
22
- ];
19
+ type UsedInfiniteScroll<S, V> = [sentinelRef: RefObject<S>, viewportRef: RefObject<V>];
23
20
  /**
24
21
  * @description
25
22
  * use infinite scroll
@@ -3,7 +3,6 @@
3
3
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
4
4
  var react = require('react');
5
5
  var toArray = require('../utils/to-array.cjs');
6
- var useEvent = require('./use-event.cjs');
7
6
  var replace = require('../utils/replace.cjs');
8
7
 
9
8
  var useMediaQuery = function useMediaQuery(query) {
@@ -13,24 +12,21 @@ var useMediaQuery = function useMediaQuery(query) {
13
12
  var queries = toArray.toArray(query);
14
13
  var _useState = react.useState(function () {
15
14
  return queries.map(function (query) {
16
- var _window$matchMedia, _window;
17
- return !!((_window$matchMedia = (_window = window).matchMedia) !== null && _window$matchMedia !== void 0 && (_window$matchMedia = _window$matchMedia.call(_window, query)) !== null && _window$matchMedia !== void 0 && _window$matchMedia.matches);
15
+ var _globalThis$window$ma, _globalThis$window;
16
+ return !!((_globalThis$window$ma = (_globalThis$window = globalThis.window).matchMedia) !== null && _globalThis$window$ma !== void 0 && (_globalThis$window$ma = _globalThis$window$ma.call(_globalThis$window, query)) !== null && _globalThis$window$ma !== void 0 && _globalThis$window$ma.matches);
18
17
  });
19
18
  }),
20
19
  _useState2 = _slicedToArray(_useState, 2),
21
20
  value = _useState2[0],
22
21
  setValue = _useState2[1];
23
- var onMediaQueryChange = useEvent.useEvent(function (event, index) {
22
+ var onMediaQueryChange = react.useCallback(function (event, index) {
24
23
  setValue(function (prev) {
25
- return replace.replace(prev, {
26
- index: index,
27
- replaceValue: event.matches
28
- });
24
+ return replace.replace(prev, event.matches, index);
29
25
  });
30
- });
26
+ }, []);
31
27
  react.useEffect(function () {
32
28
  var mediaQueries = queries.map(function (query) {
33
- return window.matchMedia(query);
29
+ return globalThis.window.matchMedia(query);
34
30
  });
35
31
  // listen media query change
36
32
  var cleaners = mediaQueries.map(function (mediaQuery, index) {
@@ -39,13 +35,13 @@ var useMediaQuery = function useMediaQuery(query) {
39
35
  };
40
36
  mediaQuery.addEventListener("change", listener);
41
37
  return function () {
42
- return mediaQuery.removeEventListener("change", listener);
38
+ mediaQuery.removeEventListener("change", listener);
43
39
  };
44
40
  });
45
41
  // clean up all listeners
46
42
  return function () {
47
- return cleaners.forEach(function (cleaner) {
48
- return cleaner();
43
+ cleaners.forEach(function (cleaner) {
44
+ cleaner();
49
45
  });
50
46
  };
51
47
  }, [_query]);
@@ -1,7 +1,6 @@
1
1
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
- import { useMemo, useState, useEffect } from 'react';
2
+ import { useMemo, useState, useCallback, useEffect } from 'react';
3
3
  import { toArray } from '../utils/to-array.mjs';
4
- import { useEvent } from './use-event.mjs';
5
4
  import { replace } from '../utils/replace.mjs';
6
5
 
7
6
  var useMediaQuery = function useMediaQuery(query) {
@@ -11,24 +10,21 @@ var useMediaQuery = function useMediaQuery(query) {
11
10
  var queries = toArray(query);
12
11
  var _useState = useState(function () {
13
12
  return queries.map(function (query) {
14
- var _window$matchMedia, _window;
15
- return !!((_window$matchMedia = (_window = window).matchMedia) !== null && _window$matchMedia !== void 0 && (_window$matchMedia = _window$matchMedia.call(_window, query)) !== null && _window$matchMedia !== void 0 && _window$matchMedia.matches);
13
+ var _globalThis$window$ma, _globalThis$window;
14
+ return !!((_globalThis$window$ma = (_globalThis$window = globalThis.window).matchMedia) !== null && _globalThis$window$ma !== void 0 && (_globalThis$window$ma = _globalThis$window$ma.call(_globalThis$window, query)) !== null && _globalThis$window$ma !== void 0 && _globalThis$window$ma.matches);
16
15
  });
17
16
  }),
18
17
  _useState2 = _slicedToArray(_useState, 2),
19
18
  value = _useState2[0],
20
19
  setValue = _useState2[1];
21
- var onMediaQueryChange = useEvent(function (event, index) {
20
+ var onMediaQueryChange = useCallback(function (event, index) {
22
21
  setValue(function (prev) {
23
- return replace(prev, {
24
- index: index,
25
- replaceValue: event.matches
26
- });
22
+ return replace(prev, event.matches, index);
27
23
  });
28
- });
24
+ }, []);
29
25
  useEffect(function () {
30
26
  var mediaQueries = queries.map(function (query) {
31
- return window.matchMedia(query);
27
+ return globalThis.window.matchMedia(query);
32
28
  });
33
29
  // listen media query change
34
30
  var cleaners = mediaQueries.map(function (mediaQuery, index) {
@@ -37,13 +33,13 @@ var useMediaQuery = function useMediaQuery(query) {
37
33
  };
38
34
  mediaQuery.addEventListener("change", listener);
39
35
  return function () {
40
- return mediaQuery.removeEventListener("change", listener);
36
+ mediaQuery.removeEventListener("change", listener);
41
37
  };
42
38
  });
43
39
  // clean up all listeners
44
40
  return function () {
45
- return cleaners.forEach(function (cleaner) {
46
- return cleaner();
41
+ cleaners.forEach(function (cleaner) {
42
+ cleaner();
47
43
  });
48
44
  };
49
45
  }, [_query]);
@@ -1,5 +1,6 @@
1
+ import type { AnyFunction } from "@aiszlab/relax/types";
1
2
  type UsingRaf = [
2
- _callback: Function,
3
+ callback: AnyFunction,
3
4
  {
4
5
  /**
5
6
  * @description
@@ -32,22 +32,7 @@ var useThrottler = function useThrottler(throttler) {
32
32
  pipe: pipe
33
33
  };
34
34
  };
35
- /**
36
- * @author murukal
37
- *
38
- * @description
39
- * throttle callback
40
- *
41
- * @param callback
42
- * @param wait number
43
- * @description
44
- * The wait time (in milliseconds) until the throttle function is called.
45
- * default 1000
46
- *
47
- * @example
48
- * 1000
49
- */
50
- var useThrottleCallback = function useThrottleCallback(throttler) {
35
+ function useThrottleCallback(throttler) {
51
36
  var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;
52
37
  var throttled = react.useRef(null);
53
38
  var _useThrottler = useThrottler(throttler),
@@ -84,6 +69,6 @@ var useThrottleCallback = function useThrottleCallback(throttler) {
84
69
  }
85
70
  };
86
71
  });
87
- };
72
+ }
88
73
 
89
74
  exports.useThrottleCallback = useThrottleCallback;
@@ -1,5 +1,5 @@
1
1
  import { type Throttler, type Throttled } from "../utils/throttle";
2
- import { type Callable } from "./use-event";
2
+ import type { AnyFunction } from "@aiszlab/relax/types";
3
3
  /**
4
4
  * @author murukal
5
5
  *
@@ -15,4 +15,6 @@ import { type Callable } from "./use-event";
15
15
  * @example
16
16
  * 1000
17
17
  */
18
- export declare const useThrottleCallback: <T extends Callable, R extends Array<unknown> = Parameters<T>>(throttler: T | Throttler<T, R>, wait?: number) => Throttled<T>;
18
+ declare function useThrottleCallback<T extends AnyFunction>(callback: T, wait: number): Throttled<T>;
19
+ declare function useThrottleCallback<T extends AnyFunction, R>(throttler: Throttler<T, R>, wait: number): Throttled<T>;
20
+ export { useThrottleCallback };
@@ -30,22 +30,7 @@ var useThrottler = function useThrottler(throttler) {
30
30
  pipe: pipe
31
31
  };
32
32
  };
33
- /**
34
- * @author murukal
35
- *
36
- * @description
37
- * throttle callback
38
- *
39
- * @param callback
40
- * @param wait number
41
- * @description
42
- * The wait time (in milliseconds) until the throttle function is called.
43
- * default 1000
44
- *
45
- * @example
46
- * 1000
47
- */
48
- var useThrottleCallback = function useThrottleCallback(throttler) {
33
+ function useThrottleCallback(throttler) {
49
34
  var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;
50
35
  var throttled = useRef(null);
51
36
  var _useThrottler = useThrottler(throttler),
@@ -82,6 +67,6 @@ var useThrottleCallback = function useThrottleCallback(throttler) {
82
67
  }
83
68
  };
84
69
  });
85
- };
70
+ }
86
71
 
87
72
  export { useThrottleCallback };
@@ -1,10 +1,11 @@
1
+ import type { AnyFunction } from "@aiszlab/relax/types";
1
2
  /**
2
3
  * @author murukal
3
4
  *
4
5
  * @description
5
6
  * timeout effect
6
7
  */
7
- export declare const useTimeout: (callback: Function, wait: number) => {
8
+ export declare const useTimeout: (callback: AnyFunction, wait: number) => {
8
9
  flush: () => void;
9
10
  cancel: () => void;
10
11
  };
@@ -0,0 +1 @@
1
+ export type AnyFunction = (...args: any) => any;
@@ -8,3 +8,4 @@ export type { Last } from "./last";
8
8
  export type { State, StateGetter } from "./state";
9
9
  export type { Arrayable } from "./arrayable";
10
10
  export type { RequiredTo } from "./required-to";
11
+ export type { AnyFunction } from "./any-function";
@@ -1 +1 @@
1
- export type Last<T, R = undefined> = T extends [...Array<unknown>, infer D] ? D : R;
1
+ export type Last<T, R = undefined> = T extends [...Array<unknown>, infer D] ? D : T extends Array<infer S> ? S | undefined : R;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @description
3
+ * partial some fields
4
+ */
5
+ export type PartialIn<T, K extends keyof T> = Partial<Pick<T, K>> & Omit<T, K>;
@@ -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],
@@ -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);
@@ -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 } from "../types";
2
+ type Functionable<T> = T extends AnyFunction ? T : T extends Function ? T : () => T;
3
+ export declare const toFunction: <T>(value: unknown) => Functionable<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.6",
4
4
  "description": "react utils collection",
5
5
  "exports": {
6
6
  ".": {