@aiszlab/relax 1.3.16 → 1.3.17

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.
@@ -1,3 +1,3 @@
1
1
  import type { Nullable, Voidable } from "@aiszlab/relax/types";
2
- import { type Refable } from "../react";
2
+ import { type Refable } from "../react/mount-ref";
3
3
  export declare const useRefs: <T>(...refs: Voidable<Refable<Nullable<T>>>[]) => (reference: T) => void;
package/dist/index.cjs CHANGED
@@ -50,6 +50,7 @@ var isHtmlInputElement = require('./is/is-html-input-element.cjs');
50
50
  var isObject = require('./is/is-object.cjs');
51
51
  var effect = require('./utils/effect.cjs');
52
52
  var unique = require('./utils/unique.cjs');
53
+ var uniqueBy = require('./utils/unique-by.cjs');
53
54
  var range = require('./utils/range.cjs');
54
55
  var clamp = require('./utils/clamp.cjs');
55
56
  var chain = require('./utils/chain.cjs');
@@ -121,7 +122,7 @@ exports.isHTMLInputElement = isHtmlInputElement.isHTMLInputElement;
121
122
  exports.isObject = isObject.isObject;
122
123
  exports.effect = effect.effect;
123
124
  exports.unique = unique.unique;
124
- exports.uniqueBy = unique.uniqueBy;
125
+ exports.uniqueBy = uniqueBy.uniqueBy;
125
126
  exports.range = range.range;
126
127
  exports.clamp = clamp.clamp;
127
128
  exports.chain = chain.chain;
package/dist/index.d.ts CHANGED
@@ -59,7 +59,8 @@ export { isObject } from "./is/is-object";
59
59
  * utils
60
60
  */
61
61
  export { effect } from "./utils/effect";
62
- export { unique, uniqueBy } from "./utils/unique";
62
+ export { unique } from "./utils/unique";
63
+ export { uniqueBy } from "./utils/unique-by";
63
64
  export { range } from "./utils/range";
64
65
  export { clamp } from "./utils/clamp";
65
66
  export { chain } from "./utils/chain";
package/dist/index.mjs CHANGED
@@ -47,7 +47,8 @@ export { isHTMLElement } from './is/is-html-element.mjs';
47
47
  export { isHTMLInputElement } from './is/is-html-input-element.mjs';
48
48
  export { isObject } from './is/is-object.mjs';
49
49
  export { effect } from './utils/effect.mjs';
50
- export { unique, uniqueBy } from './utils/unique.mjs';
50
+ export { unique } from './utils/unique.mjs';
51
+ export { uniqueBy } from './utils/unique-by.mjs';
51
52
  export { range } from './utils/range.mjs';
52
53
  export { clamp } from './utils/clamp.mjs';
53
54
  export { chain } from './utils/chain.mjs';
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var leaf = require('./leaf.cjs');
4
+
5
+
6
+
7
+ exports.leaf = leaf.leaf;
@@ -0,0 +1 @@
1
+ export { leaf } from "./leaf";
@@ -0,0 +1 @@
1
+ export { leaf } from './leaf.mjs';
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * @description
5
+ * leaf
6
+ */
7
+ var leaf = function leaf(path) {
8
+ var start = 0;
9
+ for (var index = path.length - 1; index >= 0; index--) {
10
+ if (path.charCodeAt(index) === 47) {
11
+ start = index + 1;
12
+ break;
13
+ }
14
+ }
15
+ return path.slice(start);
16
+ };
17
+
18
+ exports.leaf = leaf;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @description
3
+ * leaf
4
+ */
5
+ export declare const leaf: (path: string) => string;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @description
3
+ * leaf
4
+ */
5
+ var leaf = function leaf(path) {
6
+ var start = 0;
7
+ for (var index = path.length - 1; index >= 0; index--) {
8
+ if (path.charCodeAt(index) === 47) {
9
+ start = index + 1;
10
+ break;
11
+ }
12
+ }
13
+ return path.slice(start);
14
+ };
15
+
16
+ export { leaf };
@@ -1 +1 @@
1
- export type First<T, R = undefined> = T extends [infer D, ...Array<unknown>] ? D : R;
1
+ export type First<T, R = undefined> = T extends string ? string : T extends [infer D, ...Array<unknown>] ? D : R;
@@ -5,17 +5,12 @@ var isFunction = require('../is/is-function.cjs');
5
5
  var waitable = require('./waitable.cjs');
6
6
 
7
7
  var debounce = function debounce(debouncer, wait) {
8
- var isCallable = isFunction.isFunction(debouncer);
9
- var callback = isCallable ? debouncer : debouncer.callback;
10
- var pipe = isCallable ? function () {
11
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
12
- args[_key] = arguments[_key];
13
- }
14
- return args;
15
- } : debouncer.pipe;
8
+ var _isFunction = isFunction.isFunction(debouncer);
9
+ var callback = _isFunction ? debouncer : debouncer.callback;
10
+ // @ts-ignore
16
11
  var waiter = new waitable.Waitable({
17
12
  callback: callback,
18
- pipe: pipe,
13
+ pipe: _isFunction ? void 0 : debouncer.pipe,
19
14
  timer: rxjs.debounceTime(wait)
20
15
  });
21
16
  return {
@@ -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 extends Array<unknown> = Parameters<T>> = {
20
- callback: (...args: R) => ReturnType<T>;
19
+ export type Debouncer<T extends Callable, R = unknown> = {
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 extends Array<unknown> = Parameters<T>>(debouncer: Debouncer<T, R> | T, wait: number) => Debounced<T>;
23
+ export declare const debounce: <T extends Callable, R = unknown>(debouncer: Debouncer<T, R> | T, wait: number) => Debounced<T>;
@@ -3,17 +3,12 @@ import { isFunction } from '../is/is-function.mjs';
3
3
  import { Waitable } from './waitable.mjs';
4
4
 
5
5
  var debounce = function debounce(debouncer, wait) {
6
- var isCallable = isFunction(debouncer);
7
- var callback = isCallable ? debouncer : debouncer.callback;
8
- var pipe = isCallable ? function () {
9
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
10
- args[_key] = arguments[_key];
11
- }
12
- return args;
13
- } : debouncer.pipe;
6
+ var _isFunction = isFunction(debouncer);
7
+ var callback = _isFunction ? debouncer : debouncer.callback;
8
+ // @ts-ignore
14
9
  var waiter = new Waitable({
15
10
  callback: callback,
16
- pipe: pipe,
11
+ pipe: _isFunction ? void 0 : debouncer.pipe,
17
12
  timer: debounceTime(wait)
18
13
  });
19
14
  return {
@@ -7,7 +7,10 @@ var toArray = require('./to-array.cjs');
7
7
  * first element of array
8
8
  */
9
9
  var first = function first(value) {
10
- return toArray.toArray(value).at(0);
10
+ // @ts-ignore
11
+ return toArray.toArray(value, {
12
+ separator: ""
13
+ }).at(0);
11
14
  };
12
15
 
13
16
  exports.first = first;
@@ -5,7 +5,10 @@ import { toArray } from './to-array.mjs';
5
5
  * first element of array
6
6
  */
7
7
  var first = function first(value) {
8
- return toArray(value).at(0);
8
+ // @ts-ignore
9
+ return toArray(value, {
10
+ separator: ""
11
+ }).at(0);
9
12
  };
10
13
 
11
14
  export { first };
@@ -7,7 +7,10 @@ var toArray = require('./to-array.cjs');
7
7
  * last element of array
8
8
  */
9
9
  var last = function last(value) {
10
- return toArray.toArray(value).at(-1);
10
+ // @ts-ignore
11
+ return toArray.toArray(value, {
12
+ separator: ""
13
+ }).at(-1);
11
14
  };
12
15
 
13
16
  exports.last = last;
@@ -5,7 +5,10 @@ import { toArray } from './to-array.mjs';
5
5
  * last element of array
6
6
  */
7
7
  var last = function last(value) {
8
- return toArray(value).at(-1);
8
+ // @ts-ignore
9
+ return toArray(value, {
10
+ separator: ""
11
+ }).at(-1);
9
12
  };
10
13
 
11
14
  export { last };
@@ -5,17 +5,12 @@ var isFunction = require('../is/is-function.cjs');
5
5
  var rxjs = require('rxjs');
6
6
 
7
7
  var throttle = function throttle(throttler, wait) {
8
- var isCallable = isFunction.isFunction(throttler);
9
- var callback = isCallable ? throttler : throttler.callback;
10
- var pipe = isCallable ? function () {
11
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
12
- args[_key] = arguments[_key];
13
- }
14
- return args;
15
- } : throttler.pipe;
8
+ var _isFunction = isFunction.isFunction(throttler);
9
+ var callback = _isFunction ? throttler : throttler.callback;
10
+ // @ts-ignore
16
11
  var waiter = new waitable.Waitable({
17
12
  callback: callback,
18
- pipe: pipe,
13
+ pipe: _isFunction ? void 0 : throttler.pipe,
19
14
  timer: rxjs.throttleTime(wait)
20
15
  });
21
16
  return {
@@ -1,5 +1,5 @@
1
1
  import type { Debounced, Debouncer } from "./debounce";
2
2
  import { type Callable } from "../hooks/use-event";
3
3
  export type Throttled<T extends Callable> = Debounced<T>;
4
- export type Throttler<T extends Callable, R extends Array<unknown> = Parameters<T>> = Debouncer<T, R>;
5
- export declare const throttle: <T extends Callable, R extends Array<unknown> = Parameters<T>>(throttler: Throttler<T, R> | T, wait: number) => Throttled<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>;
@@ -3,17 +3,12 @@ import { isFunction } from '../is/is-function.mjs';
3
3
  import { throttleTime } from 'rxjs';
4
4
 
5
5
  var throttle = function throttle(throttler, wait) {
6
- var isCallable = isFunction(throttler);
7
- var callback = isCallable ? throttler : throttler.callback;
8
- var pipe = isCallable ? function () {
9
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
10
- args[_key] = arguments[_key];
11
- }
12
- return args;
13
- } : throttler.pipe;
6
+ var _isFunction = isFunction(throttler);
7
+ var callback = _isFunction ? throttler : throttler.callback;
8
+ // @ts-ignore
14
9
  var waiter = new Waitable({
15
10
  callback: callback,
16
- pipe: pipe,
11
+ pipe: _isFunction ? void 0 : throttler.pipe,
17
12
  timer: throttleTime(wait)
18
13
  });
19
14
  return {
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var unique = require('./unique.cjs');
4
+
5
+ /**
6
+ * @description
7
+ * unique by
8
+ */
9
+ var uniqueBy = function uniqueBy(value, pipe) {
10
+ if (!pipe) {
11
+ return unique.unique(value);
12
+ }
13
+ return Array.from(Array.from(value).reduce(function (prev, _value) {
14
+ var _key = pipe(_value);
15
+ if (!prev.has(_key)) {
16
+ prev.set(pipe(_value), _value);
17
+ }
18
+ return prev;
19
+ }, new Map()).values());
20
+ };
21
+
22
+ exports.uniqueBy = uniqueBy;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @description
3
+ * unique by
4
+ */
5
+ export declare const uniqueBy: <T, P>(value: Iterable<T>, pipe?: (item: T) => P) => any[];
@@ -0,0 +1,20 @@
1
+ import { unique } from './unique.mjs';
2
+
3
+ /**
4
+ * @description
5
+ * unique by
6
+ */
7
+ var uniqueBy = function uniqueBy(value, pipe) {
8
+ if (!pipe) {
9
+ return unique(value);
10
+ }
11
+ return Array.from(Array.from(value).reduce(function (prev, _value) {
12
+ var _key = pipe(_value);
13
+ if (!prev.has(_key)) {
14
+ prev.set(pipe(_value), _value);
15
+ }
16
+ return prev;
17
+ }, new Map()).values());
18
+ };
19
+
20
+ export { uniqueBy };
@@ -12,13 +12,5 @@ var unique = function unique() {
12
12
  return unionize.union(new Set(_value));
13
13
  }, new Set()));
14
14
  };
15
- /**
16
- * @description
17
- * unique by
18
- */
19
- var uniqueBy = function uniqueBy(value, callback) {
20
- return Array.from(new Set(Array.from(value).map(callback)));
21
- };
22
15
 
23
16
  exports.unique = unique;
24
- exports.uniqueBy = uniqueBy;
@@ -3,8 +3,3 @@
3
3
  * unique
4
4
  */
5
5
  export declare const unique: <T = unknown>(...values: Array<Iterable<T>>) => T[];
6
- /**
7
- * @description
8
- * unique by
9
- */
10
- export declare const uniqueBy: <T, P>(value: Iterable<T>, callback: (item: T) => P) => P[];
@@ -10,12 +10,5 @@ var unique = function unique() {
10
10
  return unionize.union(new Set(_value));
11
11
  }, new Set()));
12
12
  };
13
- /**
14
- * @description
15
- * unique by
16
- */
17
- var uniqueBy = function uniqueBy(value, callback) {
18
- return Array.from(new Set(Array.from(value).map(callback)));
19
- };
20
13
 
21
- export { unique, uniqueBy };
14
+ export { unique };
@@ -33,8 +33,8 @@ var Waitable = /*#__PURE__*/function () {
33
33
  _classPrivateFieldInitSpec(this, _callback, void 0);
34
34
  _classPrivateFieldSet(_cook$, this, null);
35
35
  _classPrivateFieldSet(_waiter$, this, null);
36
- _classPrivateFieldSet(_pipe, this, props.pipe);
37
36
  _classPrivateFieldSet(_timer, this, props.timer);
37
+ _classPrivateFieldSet(_pipe, this, props.pipe);
38
38
  _classPrivateFieldSet(_callback, this, props.callback);
39
39
  _assertClassBrand(_Waitable_brand, this, _use).call(this);
40
40
  }
@@ -88,11 +88,20 @@ function _use() {
88
88
  _classPrivateFieldSet(_waiter$, _this, subscriber);
89
89
  }).pipe(_classPrivateFieldGet(_timer, this), rxjs.switchMap(function (args) {
90
90
  var _classPrivateFieldGet6;
91
+ if (!_classPrivateFieldGet(_pipe, _this)) {
92
+ return rxjs.of(args);
93
+ }
91
94
  var piped = (_classPrivateFieldGet6 = _classPrivateFieldGet(_pipe, _this)).call.apply(_classPrivateFieldGet6, [_this].concat(_toConsumableArray(args)));
92
95
  return isThenable.isThenable(piped) ? rxjs.from(piped) : rxjs.of(piped);
93
96
  })).subscribe(function (args) {
94
- var _classPrivateFieldGet7;
95
- (_classPrivateFieldGet7 = _classPrivateFieldGet(_callback, _this)) === null || _classPrivateFieldGet7 === void 0 || _classPrivateFieldGet7.call.apply(_classPrivateFieldGet7, [_this].concat(_toConsumableArray(args)));
97
+ if (!_classPrivateFieldGet(_pipe, _this)) {
98
+ var _classPrivateFieldGet7;
99
+ // @ts-ignore
100
+ (_classPrivateFieldGet7 = _classPrivateFieldGet(_callback, _this)).call.apply(_classPrivateFieldGet7, [_this].concat(_toConsumableArray(args)));
101
+ } else {
102
+ // @ts-ignore
103
+ _classPrivateFieldGet(_callback, _this).call(_this, args);
104
+ }
96
105
  }));
97
106
  }
98
107
 
@@ -1,15 +1,21 @@
1
1
  import { type MonoTypeOperatorFunction } from "rxjs";
2
- interface Props<T extends Array<unknown> = Array<unknown>, R extends Array<unknown> = T> {
2
+ interface PropsWithoutPipe<T extends Array<unknown> = Array<unknown>> {
3
3
  callback: (...args: T) => unknown;
4
- pipe: (...args: R) => T | Promise<T>;
5
- timer: MonoTypeOperatorFunction<R>;
4
+ pipe: undefined;
5
+ timer: MonoTypeOperatorFunction<T>;
6
6
  }
7
+ interface PropsWithPipe<T extends Array<unknown> = Array<unknown>, R = unknown> {
8
+ callback: (value: R) => unknown;
9
+ pipe: (...args: T) => R | Promise<R>;
10
+ timer: MonoTypeOperatorFunction<T>;
11
+ }
12
+ type Props<T extends Array<unknown> = Array<unknown>, R = unknown> = PropsWithoutPipe<T> | PropsWithPipe<T, R>;
7
13
  /**
8
14
  * @description
9
15
  * waitable instance
10
16
  * for debounce...
11
17
  */
12
- export declare class Waitable<T extends Array<unknown>, R extends Array<unknown> = T> {
18
+ export declare class Waitable<T extends Array<unknown>, R = unknown> {
13
19
  #private;
14
20
  constructor(props: Props<T, R>);
15
21
  /**
@@ -31,6 +37,6 @@ export declare class Waitable<T extends Array<unknown>, R extends Array<unknown>
31
37
  * @description
32
38
  * trigger value
33
39
  */
34
- next(...args: R): void;
40
+ next(...args: T): void;
35
41
  }
36
42
  export {};
@@ -6,7 +6,7 @@ import _classPrivateFieldInitSpec from '@babel/runtime/helpers/classPrivateField
6
6
  import _classPrivateFieldGet from '@babel/runtime/helpers/classPrivateFieldGet2';
7
7
  import _assertClassBrand from '@babel/runtime/helpers/assertClassBrand';
8
8
  import _classPrivateFieldSet from '@babel/runtime/helpers/classPrivateFieldSet2';
9
- import { Observable, switchMap, from, of } from 'rxjs';
9
+ import { Observable, switchMap, of, from } from 'rxjs';
10
10
  import { isThenable } from '../is/is-thenable.mjs';
11
11
 
12
12
  /**
@@ -31,8 +31,8 @@ var Waitable = /*#__PURE__*/function () {
31
31
  _classPrivateFieldInitSpec(this, _callback, void 0);
32
32
  _classPrivateFieldSet(_cook$, this, null);
33
33
  _classPrivateFieldSet(_waiter$, this, null);
34
- _classPrivateFieldSet(_pipe, this, props.pipe);
35
34
  _classPrivateFieldSet(_timer, this, props.timer);
35
+ _classPrivateFieldSet(_pipe, this, props.pipe);
36
36
  _classPrivateFieldSet(_callback, this, props.callback);
37
37
  _assertClassBrand(_Waitable_brand, this, _use).call(this);
38
38
  }
@@ -86,11 +86,20 @@ function _use() {
86
86
  _classPrivateFieldSet(_waiter$, _this, subscriber);
87
87
  }).pipe(_classPrivateFieldGet(_timer, this), switchMap(function (args) {
88
88
  var _classPrivateFieldGet6;
89
+ if (!_classPrivateFieldGet(_pipe, _this)) {
90
+ return of(args);
91
+ }
89
92
  var piped = (_classPrivateFieldGet6 = _classPrivateFieldGet(_pipe, _this)).call.apply(_classPrivateFieldGet6, [_this].concat(_toConsumableArray(args)));
90
93
  return isThenable(piped) ? from(piped) : of(piped);
91
94
  })).subscribe(function (args) {
92
- var _classPrivateFieldGet7;
93
- (_classPrivateFieldGet7 = _classPrivateFieldGet(_callback, _this)) === null || _classPrivateFieldGet7 === void 0 || _classPrivateFieldGet7.call.apply(_classPrivateFieldGet7, [_this].concat(_toConsumableArray(args)));
95
+ if (!_classPrivateFieldGet(_pipe, _this)) {
96
+ var _classPrivateFieldGet7;
97
+ // @ts-ignore
98
+ (_classPrivateFieldGet7 = _classPrivateFieldGet(_callback, _this)).call.apply(_classPrivateFieldGet7, [_this].concat(_toConsumableArray(args)));
99
+ } else {
100
+ // @ts-ignore
101
+ _classPrivateFieldGet(_callback, _this).call(_this, args);
102
+ }
94
103
  }));
95
104
  }
96
105
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiszlab/relax",
3
- "version": "1.3.16",
3
+ "version": "1.3.17",
4
4
  "description": "react utils collection",
5
5
  "exports": {
6
6
  ".": {
@@ -24,6 +24,13 @@
24
24
  "import": "./dist/react/index.mjs",
25
25
  "default": "./dist/react/index.mjs"
26
26
  },
27
+ "./path": {
28
+ "types": "./dist/path/index.d.ts",
29
+ "node": "./dist/path/index.cjs",
30
+ "require": "./dist/path/index.cjs",
31
+ "import": "./dist/path/index.mjs",
32
+ "default": "./dist/path/index.mjs"
33
+ },
27
34
  "./types": "./dist/types/index.d.ts"
28
35
  },
29
36
  "scripts": {