@yamada-ui/utils 1.5.0 → 1.5.1-dev-20240917064938
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.
- package/dist/array.d.mts +1 -1
- package/dist/array.d.ts +1 -1
- package/dist/array.js +3 -1
- package/dist/array.js.map +1 -1
- package/dist/array.mjs +1 -1
- package/dist/assertion.d.mts +14 -14
- package/dist/assertion.d.ts +14 -14
- package/dist/assertion.js +44 -16
- package/dist/assertion.js.map +1 -1
- package/dist/assertion.mjs +1 -1
- package/dist/calc.d.mts +12 -7
- package/dist/calc.d.ts +12 -7
- package/dist/calc.js +17 -7
- package/dist/calc.js.map +1 -1
- package/dist/calc.mjs +1 -1
- package/dist/{chunk-ZFE4ZWCP.mjs → chunk-2AWPBKLQ.mjs} +68 -47
- package/dist/chunk-2AWPBKLQ.mjs.map +1 -0
- package/dist/chunk-5EG6NSMV.mjs +9 -0
- package/dist/chunk-5EG6NSMV.mjs.map +1 -0
- package/dist/{chunk-I5E5UXSE.mjs → chunk-7XL7BPER.mjs} +52 -44
- package/dist/chunk-7XL7BPER.mjs.map +1 -0
- package/dist/{chunk-KT4SLZO6.mjs → chunk-7XRVZGET.mjs} +18 -12
- package/dist/chunk-7XRVZGET.mjs.map +1 -0
- package/dist/{chunk-S35WPDIT.mjs → chunk-AF6MSVQN.mjs} +75 -41
- package/dist/chunk-AF6MSVQN.mjs.map +1 -0
- package/dist/chunk-APJY76CK.mjs +9 -0
- package/dist/chunk-APJY76CK.mjs.map +1 -0
- package/dist/{chunk-L56KWSQO.mjs → chunk-OM7WYVSS.mjs} +18 -8
- package/dist/chunk-OM7WYVSS.mjs.map +1 -0
- package/dist/chunk-QTCZ2LU5.mjs +65 -0
- package/dist/chunk-QTCZ2LU5.mjs.map +1 -0
- package/dist/chunk-RCW53QOG.mjs +31 -0
- package/dist/chunk-RCW53QOG.mjs.map +1 -0
- package/dist/chunk-TJ7CW2M5.mjs +365 -0
- package/dist/chunk-TJ7CW2M5.mjs.map +1 -0
- package/dist/{chunk-2AQWXBLU.mjs → chunk-WU6FTFUV.mjs} +15 -7
- package/dist/chunk-WU6FTFUV.mjs.map +1 -0
- package/dist/chunk-Z4AGSEWZ.mjs +63 -0
- package/dist/chunk-Z4AGSEWZ.mjs.map +1 -0
- package/dist/color.d.mts +24 -24
- package/dist/color.d.ts +24 -24
- package/dist/color.js +212 -158
- package/dist/color.js.map +1 -1
- package/dist/color.mjs +3 -3
- package/dist/dom.d.mts +29 -29
- package/dist/dom.d.ts +29 -29
- package/dist/dom.js +79 -41
- package/dist/dom.js.map +1 -1
- package/dist/dom.mjs +2 -2
- package/dist/event.d.mts +13 -13
- package/dist/event.d.ts +13 -13
- package/dist/event.js +37 -23
- package/dist/event.js.map +1 -1
- package/dist/event.mjs +1 -1
- package/dist/function.d.mts +3 -3
- package/dist/function.d.ts +3 -3
- package/dist/function.js +19 -9
- package/dist/function.js.map +1 -1
- package/dist/function.mjs +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +531 -346
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +12 -12
- package/dist/index.types.d.mts +8 -4
- package/dist/index.types.d.ts +8 -4
- package/dist/index.types.js.map +1 -1
- package/dist/module.d.mts +1 -1
- package/dist/module.d.ts +1 -1
- package/dist/module.js +3 -1
- package/dist/module.js.map +1 -1
- package/dist/module.mjs +1 -1
- package/dist/number.d.mts +7 -7
- package/dist/number.d.ts +7 -7
- package/dist/number.js +17 -11
- package/dist/number.js.map +1 -1
- package/dist/number.mjs +1 -1
- package/dist/object.d.mts +19 -15
- package/dist/object.d.ts +19 -15
- package/dist/object.js +65 -47
- package/dist/object.js.map +1 -1
- package/dist/object.mjs +2 -2
- package/dist/react.d.mts +25 -35
- package/dist/react.d.ts +25 -35
- package/dist/react.js +78 -49
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +2 -2
- package/dist/string.d.mts +5 -5
- package/dist/string.d.ts +5 -5
- package/dist/string.js +14 -6
- package/dist/string.js.map +1 -1
- package/dist/string.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-2AQWXBLU.mjs.map +0 -1
- package/dist/chunk-5OUUTZYQ.mjs +0 -7
- package/dist/chunk-5OUUTZYQ.mjs.map +0 -1
- package/dist/chunk-I5E5UXSE.mjs.map +0 -1
- package/dist/chunk-KT4SLZO6.mjs.map +0 -1
- package/dist/chunk-L56KWSQO.mjs.map +0 -1
- package/dist/chunk-MMZ4T26E.mjs +0 -51
- package/dist/chunk-MMZ4T26E.mjs.map +0 -1
- package/dist/chunk-NBL5H4TH.mjs +0 -35
- package/dist/chunk-NBL5H4TH.mjs.map +0 -1
- package/dist/chunk-S35WPDIT.mjs.map +0 -1
- package/dist/chunk-VRHGQ632.mjs +0 -23
- package/dist/chunk-VRHGQ632.mjs.map +0 -1
- package/dist/chunk-WV6P7ZCI.mjs +0 -7
- package/dist/chunk-WV6P7ZCI.mjs.map +0 -1
- package/dist/chunk-ZFE4ZWCP.mjs.map +0 -1
- package/dist/chunk-ZMR5WZIP.mjs +0 -321
- package/dist/chunk-ZMR5WZIP.mjs.map +0 -1
package/dist/number.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/number.ts"],"sourcesContent":["export
|
|
1
|
+
{"version":3,"sources":["../src/number.ts"],"sourcesContent":["export function toNumber(n: any): number {\n const num = parseFloat(n)\n\n return typeof num !== \"number\" || Number.isNaN(num) ? 0 : num\n}\n\nexport function toPrecision(n: number, precision?: number): string {\n n = toNumber(n)\n\n const scale = 10 ** (precision ?? 10)\n\n n = Math.round(n * scale) / scale\n\n return precision ? n.toFixed(precision) : n.toString()\n}\n\nexport function countDecimal(n: number): number {\n if (!Number.isFinite(n)) return 0\n\n let e = 1\n let p = 0\n\n while (Math.round(n * e) / e !== n) {\n e *= 10\n p += 1\n }\n\n return p\n}\n\nexport function roundNumberToStep(n: number, from: number, step: number) {\n const nextValue = Math.round((n - from) / step) * step + from\n\n const precision = countDecimal(step)\n\n return toPrecision(nextValue, precision)\n}\n\nexport function valueToPercent(n: number, min: number, max: number): number {\n return ((n - min) * 100) / (max - min)\n}\n\nexport function percentToValue(n: number, min: number, max: number) {\n return (max - min) * n + min\n}\n\nexport function clampNumber(n: number, min: number, max: number): number {\n return Math.min(Math.max(n, min), max)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,SAAS,GAAgB;AACvC,QAAM,MAAM,WAAW,CAAC;AAExB,SAAO,OAAO,QAAQ,YAAY,OAAO,MAAM,GAAG,IAAI,IAAI;AAC5D;AAEO,SAAS,YAAY,GAAW,WAA4B;AACjE,MAAI,SAAS,CAAC;AAEd,QAAM,QAAQ,OAAO,gCAAa;AAElC,MAAI,KAAK,MAAM,IAAI,KAAK,IAAI;AAE5B,SAAO,YAAY,EAAE,QAAQ,SAAS,IAAI,EAAE,SAAS;AACvD;AAEO,SAAS,aAAa,GAAmB;AAC9C,MAAI,CAAC,OAAO,SAAS,CAAC,EAAG,QAAO;AAEhC,MAAI,IAAI;AACR,MAAI,IAAI;AAER,SAAO,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,GAAG;AAClC,SAAK;AACL,SAAK;AAAA,EACP;AAEA,SAAO;AACT;AAEO,SAAS,kBAAkB,GAAW,MAAc,MAAc;AACvE,QAAM,YAAY,KAAK,OAAO,IAAI,QAAQ,IAAI,IAAI,OAAO;AAEzD,QAAM,YAAY,aAAa,IAAI;AAEnC,SAAO,YAAY,WAAW,SAAS;AACzC;AAEO,SAAS,eAAe,GAAW,KAAa,KAAqB;AAC1E,UAAS,IAAI,OAAO,OAAQ,MAAM;AACpC;AAEO,SAAS,eAAe,GAAW,KAAa,KAAa;AAClE,UAAQ,MAAM,OAAO,IAAI;AAC3B;AAEO,SAAS,YAAY,GAAW,KAAa,KAAqB;AACvE,SAAO,KAAK,IAAI,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG;AACvC;","names":[]}
|
package/dist/number.mjs
CHANGED
package/dist/object.d.mts
CHANGED
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
import { Dict } from './index.types.mjs';
|
|
2
2
|
|
|
3
|
-
declare
|
|
4
|
-
declare
|
|
5
|
-
declare
|
|
6
|
-
declare
|
|
7
|
-
declare
|
|
8
|
-
declare
|
|
9
|
-
|
|
3
|
+
declare function omitObject<Y extends Dict, M extends keyof Y = keyof Y, D = any>(obj: Y, keys: M[] | readonly M[]): D extends unknown ? Omit<Y, M> : D;
|
|
4
|
+
declare function pickObject<Y extends Dict, M extends keyof Y = keyof Y, D = any>(obj: Y, keys: M[] | readonly M[], fallbackValue?: string): D extends unknown ? { [H in M]: Y[H]; } : D;
|
|
5
|
+
declare function splitObject<Y extends Dict, M extends keyof Y>(obj: Y, keys: M[] | readonly M[]): [{ [P in M]: Y[P]; }, Omit<Y, M>];
|
|
6
|
+
declare function filterObject<Y extends Dict, M extends Dict>(obj: Y, func: (key: keyof Y, value: Y[keyof Y], obj: Y) => boolean): M;
|
|
7
|
+
declare function filterUndefined<Y extends Dict>(obj: Y): Y;
|
|
8
|
+
declare function merge<Y extends Dict>(target: any, source: any, mergeArray?: boolean): Y;
|
|
9
|
+
interface FlattenObjectOptions {
|
|
10
10
|
maxDepth?: number;
|
|
11
11
|
omitKeys?: string[];
|
|
12
12
|
separator?: string;
|
|
13
13
|
shouldProcess?: (obj: any) => boolean;
|
|
14
|
+
}
|
|
15
|
+
declare function flattenObject<Y extends Dict>(obj: any, { maxDepth, omitKeys, separator, shouldProcess }?: FlattenObjectOptions): Y;
|
|
16
|
+
declare function objectFromEntries<Y extends Dict>(entries: any[][]): Y;
|
|
17
|
+
declare function keysFormObject<Y extends object>(obj: Y): (keyof Y)[];
|
|
18
|
+
declare function replaceObject<Y = any>(objOrArray: Y, callBack: (value: any) => any): Y;
|
|
19
|
+
declare function getObject(obj: Dict, path: string | number, fallback?: any, i?: number): any;
|
|
20
|
+
declare function memoizeObject(func: typeof getObject): <Y>(obj: Dict, path: string | number, fallback?: any, i?: number) => Y;
|
|
21
|
+
declare const getMemoizedObject: <Y>(obj: Dict, path: string | number, fallback?: any, i?: number) => Y;
|
|
22
|
+
declare function assignAfter(target: {
|
|
23
|
+
[key: string]: any;
|
|
24
|
+
}, ...sources: any[]): {
|
|
25
|
+
[key: string]: unknown;
|
|
14
26
|
};
|
|
15
|
-
declare const flattenObject: <Y extends Dict>(obj: any, { maxDepth, omitKeys, separator, shouldProcess }?: FlattenObjectOptions) => Y;
|
|
16
|
-
declare const objectFromEntries: <Y extends Dict>(entries: any[][]) => Y;
|
|
17
|
-
declare const keysFormObject: <Y extends Dict>(obj: Y) => (keyof Y)[];
|
|
18
|
-
declare const replaceObject: <Y extends unknown>(objOrArray: Y, callBack: (value: any) => any) => Y;
|
|
19
|
-
declare const getObject: (obj: Dict, path: string | number, fallback?: any, i?: number) => any;
|
|
20
|
-
declare const memoizeObject: (func: typeof getObject) => <Y extends unknown = any>(obj: Dict, path: string | number, fallback?: any, i?: number) => Y;
|
|
21
|
-
declare const getMemoizedObject: <Y extends unknown = any>(obj: Dict, path: string | number, fallback?: any, i?: number) => Y;
|
|
22
|
-
declare const assignAfter: (target: Record<string, any>, ...sources: any[]) => Record<string, unknown>;
|
|
23
27
|
|
|
24
28
|
export { type FlattenObjectOptions, assignAfter, filterObject, filterUndefined, flattenObject, getMemoizedObject, getObject, keysFormObject, memoizeObject, merge, objectFromEntries, omitObject, pickObject, replaceObject, splitObject };
|
package/dist/object.d.ts
CHANGED
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
import { Dict } from './index.types.js';
|
|
2
2
|
|
|
3
|
-
declare
|
|
4
|
-
declare
|
|
5
|
-
declare
|
|
6
|
-
declare
|
|
7
|
-
declare
|
|
8
|
-
declare
|
|
9
|
-
|
|
3
|
+
declare function omitObject<Y extends Dict, M extends keyof Y = keyof Y, D = any>(obj: Y, keys: M[] | readonly M[]): D extends unknown ? Omit<Y, M> : D;
|
|
4
|
+
declare function pickObject<Y extends Dict, M extends keyof Y = keyof Y, D = any>(obj: Y, keys: M[] | readonly M[], fallbackValue?: string): D extends unknown ? { [H in M]: Y[H]; } : D;
|
|
5
|
+
declare function splitObject<Y extends Dict, M extends keyof Y>(obj: Y, keys: M[] | readonly M[]): [{ [P in M]: Y[P]; }, Omit<Y, M>];
|
|
6
|
+
declare function filterObject<Y extends Dict, M extends Dict>(obj: Y, func: (key: keyof Y, value: Y[keyof Y], obj: Y) => boolean): M;
|
|
7
|
+
declare function filterUndefined<Y extends Dict>(obj: Y): Y;
|
|
8
|
+
declare function merge<Y extends Dict>(target: any, source: any, mergeArray?: boolean): Y;
|
|
9
|
+
interface FlattenObjectOptions {
|
|
10
10
|
maxDepth?: number;
|
|
11
11
|
omitKeys?: string[];
|
|
12
12
|
separator?: string;
|
|
13
13
|
shouldProcess?: (obj: any) => boolean;
|
|
14
|
+
}
|
|
15
|
+
declare function flattenObject<Y extends Dict>(obj: any, { maxDepth, omitKeys, separator, shouldProcess }?: FlattenObjectOptions): Y;
|
|
16
|
+
declare function objectFromEntries<Y extends Dict>(entries: any[][]): Y;
|
|
17
|
+
declare function keysFormObject<Y extends object>(obj: Y): (keyof Y)[];
|
|
18
|
+
declare function replaceObject<Y = any>(objOrArray: Y, callBack: (value: any) => any): Y;
|
|
19
|
+
declare function getObject(obj: Dict, path: string | number, fallback?: any, i?: number): any;
|
|
20
|
+
declare function memoizeObject(func: typeof getObject): <Y>(obj: Dict, path: string | number, fallback?: any, i?: number) => Y;
|
|
21
|
+
declare const getMemoizedObject: <Y>(obj: Dict, path: string | number, fallback?: any, i?: number) => Y;
|
|
22
|
+
declare function assignAfter(target: {
|
|
23
|
+
[key: string]: any;
|
|
24
|
+
}, ...sources: any[]): {
|
|
25
|
+
[key: string]: unknown;
|
|
14
26
|
};
|
|
15
|
-
declare const flattenObject: <Y extends Dict>(obj: any, { maxDepth, omitKeys, separator, shouldProcess }?: FlattenObjectOptions) => Y;
|
|
16
|
-
declare const objectFromEntries: <Y extends Dict>(entries: any[][]) => Y;
|
|
17
|
-
declare const keysFormObject: <Y extends Dict>(obj: Y) => (keyof Y)[];
|
|
18
|
-
declare const replaceObject: <Y extends unknown>(objOrArray: Y, callBack: (value: any) => any) => Y;
|
|
19
|
-
declare const getObject: (obj: Dict, path: string | number, fallback?: any, i?: number) => any;
|
|
20
|
-
declare const memoizeObject: (func: typeof getObject) => <Y extends unknown = any>(obj: Dict, path: string | number, fallback?: any, i?: number) => Y;
|
|
21
|
-
declare const getMemoizedObject: <Y extends unknown = any>(obj: Dict, path: string | number, fallback?: any, i?: number) => Y;
|
|
22
|
-
declare const assignAfter: (target: Record<string, any>, ...sources: any[]) => Record<string, unknown>;
|
|
23
27
|
|
|
24
28
|
export { type FlattenObjectOptions, assignAfter, filterObject, filterUndefined, flattenObject, getMemoizedObject, getObject, keysFormObject, memoizeObject, merge, objectFromEntries, omitObject, pickObject, replaceObject, splitObject };
|
package/dist/object.js
CHANGED
|
@@ -38,14 +38,24 @@ __export(object_exports, {
|
|
|
38
38
|
module.exports = __toCommonJS(object_exports);
|
|
39
39
|
|
|
40
40
|
// src/assertion.ts
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
function isString(value) {
|
|
42
|
+
return Object.prototype.toString.call(value) === "[object String]";
|
|
43
|
+
}
|
|
44
|
+
function isUndefined(value) {
|
|
45
|
+
return typeof value === "undefined" && value === void 0;
|
|
46
|
+
}
|
|
47
|
+
function isObject(value) {
|
|
48
|
+
return value !== null && (typeof value === "object" || typeof value === "function") && !isArray(value);
|
|
49
|
+
}
|
|
50
|
+
function isArray(value) {
|
|
51
|
+
return Array.isArray(value);
|
|
52
|
+
}
|
|
53
|
+
function isFunction(value) {
|
|
54
|
+
return typeof value === "function";
|
|
55
|
+
}
|
|
46
56
|
|
|
47
57
|
// src/object.ts
|
|
48
|
-
|
|
58
|
+
function omitObjectHelper(obj, path) {
|
|
49
59
|
if (!path.length) return obj;
|
|
50
60
|
const [primaryKey, ...restKeys] = path;
|
|
51
61
|
if (restKeys.length === 0 && primaryKey in obj) {
|
|
@@ -59,28 +69,30 @@ var omitObjectHelper = (obj, path) => {
|
|
|
59
69
|
};
|
|
60
70
|
}
|
|
61
71
|
return obj;
|
|
62
|
-
}
|
|
63
|
-
|
|
72
|
+
}
|
|
73
|
+
function omitObject(obj, keys) {
|
|
64
74
|
return keys.reduce((prev, key) => {
|
|
65
75
|
const path = isString(key) ? key.split(".") : [];
|
|
66
76
|
return omitObjectHelper(prev, path);
|
|
67
77
|
}, obj);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
prev
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
78
|
+
}
|
|
79
|
+
function pickObject(obj, keys, fallbackValue = "__fallback") {
|
|
80
|
+
return keys.reduce((prev, key) => {
|
|
81
|
+
const path = isString(key) ? key.split(".") : [];
|
|
82
|
+
if (!path.length) return prev;
|
|
83
|
+
const value = getMemoizedObject(obj, key, fallbackValue);
|
|
84
|
+
if (value === fallbackValue) return prev;
|
|
85
|
+
prev = merge(
|
|
86
|
+
prev,
|
|
87
|
+
path.reduceRight(
|
|
88
|
+
(prev2, key2) => ({ [key2]: key2 === path.at(-1) ? value : prev2 }),
|
|
89
|
+
{}
|
|
90
|
+
)
|
|
91
|
+
);
|
|
92
|
+
return prev;
|
|
93
|
+
}, {});
|
|
94
|
+
}
|
|
95
|
+
function splitObject(obj, keys) {
|
|
84
96
|
const picked = {};
|
|
85
97
|
const omitted = {};
|
|
86
98
|
for (const [key, value] of Object.entries(obj)) {
|
|
@@ -91,17 +103,19 @@ var splitObject = (obj, keys) => {
|
|
|
91
103
|
}
|
|
92
104
|
}
|
|
93
105
|
return [picked, omitted];
|
|
94
|
-
}
|
|
95
|
-
|
|
106
|
+
}
|
|
107
|
+
function filterObject(obj, func) {
|
|
96
108
|
const result = {};
|
|
97
109
|
Object.entries(obj).forEach(([key, value]) => {
|
|
98
110
|
const shouldPass = func(key, value, obj);
|
|
99
111
|
if (shouldPass) result[key] = value;
|
|
100
112
|
});
|
|
101
113
|
return result;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
|
|
114
|
+
}
|
|
115
|
+
function filterUndefined(obj) {
|
|
116
|
+
return filterObject(obj, (_, val) => val !== null && val !== void 0);
|
|
117
|
+
}
|
|
118
|
+
function merge(target, source, mergeArray = false) {
|
|
105
119
|
let result = Object.assign({}, target);
|
|
106
120
|
if (isObject(source)) {
|
|
107
121
|
if (isObject(target)) {
|
|
@@ -120,8 +134,8 @@ var merge = (target, source, mergeArray = false) => {
|
|
|
120
134
|
}
|
|
121
135
|
}
|
|
122
136
|
return result;
|
|
123
|
-
}
|
|
124
|
-
|
|
137
|
+
}
|
|
138
|
+
function flattenObject(obj, { maxDepth, omitKeys, separator, shouldProcess } = {}) {
|
|
125
139
|
maxDepth != null ? maxDepth : maxDepth = Infinity;
|
|
126
140
|
omitKeys != null ? omitKeys : omitKeys = [];
|
|
127
141
|
separator != null ? separator : separator = ".";
|
|
@@ -143,13 +157,17 @@ var flattenObject = (obj, { maxDepth, omitKeys, separator, shouldProcess } = {})
|
|
|
143
157
|
}
|
|
144
158
|
return result;
|
|
145
159
|
}, {});
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
result[key]
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
160
|
+
}
|
|
161
|
+
function objectFromEntries(entries) {
|
|
162
|
+
return entries.reduce((result, [key, value]) => {
|
|
163
|
+
result[key] = value;
|
|
164
|
+
return result;
|
|
165
|
+
}, {});
|
|
166
|
+
}
|
|
167
|
+
function keysFormObject(obj) {
|
|
168
|
+
return Object.keys(obj);
|
|
169
|
+
}
|
|
170
|
+
function replaceObject(objOrArray, callBack) {
|
|
153
171
|
if (isArray(objOrArray)) {
|
|
154
172
|
return objOrArray.map(callBack);
|
|
155
173
|
} else if (isObject(objOrArray)) {
|
|
@@ -160,18 +178,18 @@ var replaceObject = (objOrArray, callBack) => {
|
|
|
160
178
|
} else {
|
|
161
179
|
return callBack(objOrArray);
|
|
162
180
|
}
|
|
163
|
-
}
|
|
164
|
-
|
|
181
|
+
}
|
|
182
|
+
function getObject(obj, path, fallback, i) {
|
|
165
183
|
const k = isString(path) ? path.split(/\[(.*?)\]|\./).filter(Boolean) : [path];
|
|
166
184
|
for (i = 0; i < k.length; i += 1) {
|
|
167
185
|
if (!obj) break;
|
|
168
186
|
obj = obj[k[i]];
|
|
169
187
|
}
|
|
170
188
|
return obj === void 0 ? fallback : obj;
|
|
171
|
-
}
|
|
172
|
-
|
|
189
|
+
}
|
|
190
|
+
function memoizeObject(func) {
|
|
173
191
|
const cache = /* @__PURE__ */ new WeakMap();
|
|
174
|
-
|
|
192
|
+
function memoizedFunc(obj, path, fallback, i) {
|
|
175
193
|
if (isUndefined(obj)) return func(obj, path, fallback);
|
|
176
194
|
if (!cache.has(obj)) cache.set(obj, /* @__PURE__ */ new Map());
|
|
177
195
|
const map = cache.get(obj);
|
|
@@ -179,11 +197,11 @@ var memoizeObject = (func) => {
|
|
|
179
197
|
const value = func(obj, path, fallback, i);
|
|
180
198
|
map.set(path, value);
|
|
181
199
|
return value;
|
|
182
|
-
}
|
|
200
|
+
}
|
|
183
201
|
return memoizedFunc;
|
|
184
|
-
}
|
|
202
|
+
}
|
|
185
203
|
var getMemoizedObject = memoizeObject(getObject);
|
|
186
|
-
|
|
204
|
+
function assignAfter(target, ...sources) {
|
|
187
205
|
if (target == null)
|
|
188
206
|
throw new TypeError("Cannot convert undefined or null to object");
|
|
189
207
|
const result = { ...target };
|
|
@@ -196,7 +214,7 @@ var assignAfter = (target, ...sources) => {
|
|
|
196
214
|
}
|
|
197
215
|
}
|
|
198
216
|
return result;
|
|
199
|
-
}
|
|
217
|
+
}
|
|
200
218
|
// Annotate the CommonJS export names for ESM import in node:
|
|
201
219
|
0 && (module.exports = {
|
|
202
220
|
assignAfter,
|
package/dist/object.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/object.ts","../src/assertion.ts"],"sourcesContent":["import {\n isObject,\n isArray,\n isFunction,\n isString,\n isUndefined,\n} from \"./assertion\"\nimport type { Dict } from \"./index.types\"\n\nconst omitObjectHelper = <Y extends Dict, M extends keyof Y>(\n obj: Y,\n path: M[] | readonly M[],\n): any => {\n if (!path.length) return obj\n\n const [primaryKey, ...restKeys] = path\n\n if (restKeys.length === 0 && primaryKey in obj) {\n const { [primaryKey]: _, ...rest } = obj\n\n return rest\n }\n\n if (obj[primaryKey] && isObject(obj[primaryKey])) {\n return {\n ...obj,\n [primaryKey]: omitObjectHelper(obj[primaryKey], restKeys),\n }\n }\n\n return obj\n}\n\nexport const omitObject = <\n Y extends Dict,\n M extends keyof Y = keyof Y,\n D extends unknown = unknown,\n>(\n obj: Y,\n keys: M[] | readonly M[],\n) => {\n return (keys as M[]).reduce((prev, key) => {\n const path = (isString(key) ? key.split(\".\") : []) as M[]\n\n return omitObjectHelper(prev, path)\n }, obj) as unknown as D extends unknown ? Omit<Y, M> : D\n}\n\nexport const pickObject = <\n Y extends Dict,\n M extends keyof Y = keyof Y,\n D extends unknown = unknown,\n>(\n obj: Y,\n keys: M[] | readonly M[],\n fallbackValue = \"__fallback\",\n) =>\n (keys as M[]).reduce((prev, key) => {\n const path = isString(key) ? key.split(\".\") : []\n\n if (!path.length) return prev\n\n const value = getMemoizedObject(obj, key as string, fallbackValue)\n\n if (value === fallbackValue) return prev\n\n prev = merge(\n prev,\n path.reduceRight(\n (prev, key) => ({ [key]: key === path.at(-1) ? value : prev }),\n {},\n ),\n )\n\n return prev\n }, {}) as D extends unknown ? { [H in M]: Y[H] } : D\n\nexport const splitObject = <Y extends Dict, M extends keyof Y>(\n obj: Y,\n keys: M[] | readonly M[],\n) => {\n const picked: Dict = {}\n const omitted: Dict = {}\n\n for (const [key, value] of Object.entries(obj)) {\n if (keys.includes(key as Y[M])) {\n picked[key] = value\n } else {\n omitted[key] = value\n }\n }\n\n return [picked, omitted] as [{ [P in M]: Y[P] }, Omit<Y, M>]\n}\n\nexport const filterObject = <Y extends Dict, M extends Dict>(\n obj: Y,\n func: (key: keyof Y, value: Y[keyof Y], obj: Y) => boolean,\n): M => {\n const result: Dict = {}\n\n Object.entries(obj).forEach(([key, value]) => {\n const shouldPass = func(key, value, obj)\n\n if (shouldPass) result[key] = value\n })\n\n return result as M\n}\n\nexport const filterUndefined = <Y extends Dict>(obj: Y): Y =>\n filterObject(obj, (_, val) => val !== null && val !== undefined)\n\nexport const merge = <Y extends Dict>(\n target: any,\n source: any,\n mergeArray: boolean = false,\n): Y => {\n let result = Object.assign({}, target)\n\n if (isObject(source)) {\n if (isObject(target)) {\n for (const [sourceKey, sourceValue] of Object.entries(source)) {\n const targetValue: any = target[sourceKey]\n\n if (mergeArray && isArray(sourceValue) && isArray(targetValue)) {\n result[sourceKey] = targetValue.concat(...sourceValue)\n } else if (\n !isFunction(sourceValue) &&\n isObject(sourceValue) &&\n target.hasOwnProperty(sourceKey)\n ) {\n result[sourceKey] = merge(targetValue, sourceValue, mergeArray)\n } else {\n Object.assign(result, { [sourceKey]: sourceValue })\n }\n }\n } else {\n result = source\n }\n }\n\n return result as Y\n}\n\nexport type FlattenObjectOptions = {\n maxDepth?: number\n omitKeys?: string[]\n separator?: string\n shouldProcess?: (obj: any) => boolean\n}\n\nexport const flattenObject = <Y extends Dict>(\n obj: any,\n { maxDepth, omitKeys, separator, shouldProcess }: FlattenObjectOptions = {},\n): Y => {\n maxDepth ??= Infinity\n omitKeys ??= []\n separator ??= \".\"\n\n if ((!isObject(obj) && !isArray(obj)) || !maxDepth) return obj\n\n return Object.entries(obj).reduce((result, [key, value]) => {\n if (\n isObject(value) &&\n !Object.keys(value).some((key) => omitKeys?.includes(key)) &&\n (!shouldProcess || shouldProcess(value))\n ) {\n Object.entries(\n flattenObject(value, {\n maxDepth: maxDepth - 1,\n omitKeys,\n separator,\n shouldProcess,\n }),\n ).forEach(([childKey, childValue]) => {\n result[`${key}${separator}${childKey}`] = childValue\n })\n } else {\n result[key] = value\n }\n\n return result\n }, {} as any) as Y\n}\n\nexport const objectFromEntries = <Y extends Dict>(entries: any[][]): Y =>\n entries.reduce((result, [key, value]) => {\n result[key] = value\n\n return result\n }, {} as any) as Y\n\nexport const keysFormObject = <Y extends Dict>(obj: Y): (keyof Y)[] =>\n Object.keys(obj)\n\nexport const replaceObject = <Y extends any>(\n objOrArray: Y,\n callBack: (value: any) => any,\n): Y => {\n if (isArray(objOrArray)) {\n return objOrArray.map(callBack) as Y\n } else if (isObject(objOrArray)) {\n return Object.entries(objOrArray).reduce((obj, [key, value]) => {\n obj[key] = callBack(value)\n\n return obj\n }, {} as Dict) as Y\n } else {\n return callBack(objOrArray)\n }\n}\n\nexport const getObject = (\n obj: Dict,\n path: string | number,\n fallback?: any,\n i?: number,\n) => {\n const k = isString(path) ? path.split(/\\[(.*?)\\]|\\./).filter(Boolean) : [path]\n\n for (i = 0; i < k.length; i += 1) {\n if (!obj) break\n\n obj = obj[k[i]]\n }\n\n return obj === undefined ? fallback : obj\n}\n\nexport const memoizeObject = (func: typeof getObject) => {\n const cache = new WeakMap()\n\n const memoizedFunc = <Y extends unknown = any>(\n obj: Dict,\n path: string | number,\n fallback?: any,\n i?: number,\n ): Y => {\n if (isUndefined(obj)) return func(obj, path, fallback)\n\n if (!cache.has(obj)) cache.set(obj, new Map())\n\n const map = cache.get(obj)\n\n if (map.has(path)) return map.get(path)\n\n const value = func(obj, path, fallback, i)\n\n map.set(path, value)\n\n return value as Y\n }\n\n return memoizedFunc\n}\n\nexport const getMemoizedObject = memoizeObject(getObject)\n\nexport const assignAfter = (target: Record<string, any>, ...sources: any[]) => {\n if (target == null)\n throw new TypeError(\"Cannot convert undefined or null to object\")\n\n const result: Record<string, unknown> = { ...target }\n\n for (const nextSource of sources) {\n if (nextSource == null) continue\n\n for (const nextKey in nextSource) {\n if (!Object.prototype.hasOwnProperty.call(nextSource, nextKey)) continue\n\n if (nextKey in result) delete result[nextKey]\n\n result[nextKey] = nextSource[nextKey]\n }\n }\n\n return result\n}\n","import type { Dict } from \"./index.types\"\n\nexport const is = (x: any, y: any) =>\n (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y)\n\nexport const isNumber = (value: any): value is number =>\n typeof value === \"number\"\n\nexport const isNotNumber = (value: any): boolean =>\n typeof value !== \"number\" || Number.isNaN(value) || !Number.isFinite(value)\n\nexport const isNumeric = (value: any): boolean =>\n !isNaN(parseFloat(String(value))) &&\n isFinite(Number(value)) &&\n /^-?\\d*\\.?\\d+$/.test(String(value))\n\nexport const isString = (value: any): value is string =>\n Object.prototype.toString.call(value) === \"[object String]\"\n\nexport const isBoolean = (value: any): value is boolean =>\n typeof value === \"boolean\"\n\nexport const isUndefined = (value: any): value is undefined =>\n typeof value === \"undefined\" && value === undefined\n\nexport const isNull = (value: any): value is null => value === null\n\nexport const isObject = <T extends Dict>(value: any): value is T =>\n value !== null &&\n (typeof value === \"object\" || typeof value === \"function\") &&\n !isArray(value)\n\nexport const isArray = <T extends any[]>(value: any): value is T =>\n Array.isArray(value)\n\nexport const isEmpty = (value: any): boolean =>\n !isArray(value) || !value.length || value.every((v) => v == null)\n\nexport const isFunction = <T extends Function = Function>(\n value: any,\n): value is T => typeof value === \"function\"\n\nexport const isUnit = (value: any): boolean =>\n /[0-9].*(em|rem|ex|rex|cap|rcap|ch|rch|ic|ric|lh|rlh|vw|svw|lvw|dvw|vh|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax|cm|mm|Q|in|pc|pt|px|%|cqw|cqh|cqi|cqb|cqmin|cqmax)$/.test(\n value,\n )\n\nexport const cast = <T>(value: any) => value as T\n"],"mappings":"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","names":["prev","key"]}
|
|
1
|
+
{"version":3,"sources":["../src/object.ts","../src/assertion.ts"],"sourcesContent":["import {\n isObject,\n isArray,\n isFunction,\n isString,\n isUndefined,\n} from \"./assertion\"\nimport type { Dict } from \"./index.types\"\n\nfunction omitObjectHelper<Y extends Dict, M extends keyof Y>(\n obj: Y,\n path: M[] | readonly M[],\n): any {\n if (!path.length) return obj\n\n const [primaryKey, ...restKeys] = path\n\n if (restKeys.length === 0 && primaryKey in obj) {\n const { [primaryKey]: _, ...rest } = obj\n\n return rest\n }\n\n if (obj[primaryKey] && isObject(obj[primaryKey])) {\n return {\n ...obj,\n [primaryKey]: omitObjectHelper(obj[primaryKey], restKeys),\n }\n }\n\n return obj\n}\n\nexport function omitObject<\n Y extends Dict,\n M extends keyof Y = keyof Y,\n D = any,\n>(obj: Y, keys: M[] | readonly M[]) {\n return (keys as M[]).reduce((prev, key) => {\n const path = (isString(key) ? key.split(\".\") : []) as M[]\n\n return omitObjectHelper(prev, path)\n }, obj) as unknown as D extends unknown ? Omit<Y, M> : D\n}\n\nexport function pickObject<\n Y extends Dict,\n M extends keyof Y = keyof Y,\n D = any,\n>(obj: Y, keys: M[] | readonly M[], fallbackValue = \"__fallback\") {\n return (keys as M[]).reduce((prev, key) => {\n const path = isString(key) ? key.split(\".\") : []\n\n if (!path.length) return prev\n\n const value = getMemoizedObject(obj, key as string, fallbackValue)\n\n if (value === fallbackValue) return prev\n\n prev = merge(\n prev,\n path.reduceRight(\n (prev, key) => ({ [key]: key === path.at(-1) ? value : prev }),\n {},\n ),\n )\n\n return prev\n }, {}) as D extends unknown ? { [H in M]: Y[H] } : D\n}\n\nexport function splitObject<Y extends Dict, M extends keyof Y>(\n obj: Y,\n keys: M[] | readonly M[],\n) {\n const picked: Dict = {}\n const omitted: Dict = {}\n\n for (const [key, value] of Object.entries(obj)) {\n if (keys.includes(key as Y[M])) {\n picked[key] = value\n } else {\n omitted[key] = value\n }\n }\n\n return [picked, omitted] as [{ [P in M]: Y[P] }, Omit<Y, M>]\n}\n\nexport function filterObject<Y extends Dict, M extends Dict>(\n obj: Y,\n func: (key: keyof Y, value: Y[keyof Y], obj: Y) => boolean,\n): M {\n const result: Dict = {}\n\n Object.entries(obj).forEach(([key, value]) => {\n const shouldPass = func(key, value, obj)\n\n if (shouldPass) result[key] = value\n })\n\n return result as M\n}\n\nexport function filterUndefined<Y extends Dict>(obj: Y): Y {\n return filterObject(obj, (_, val) => val !== null && val !== undefined)\n}\n\nexport function merge<Y extends Dict>(\n target: any,\n source: any,\n mergeArray: boolean = false,\n): Y {\n let result = Object.assign({}, target)\n\n if (isObject(source)) {\n if (isObject(target)) {\n for (const [sourceKey, sourceValue] of Object.entries(source)) {\n const targetValue: any = target[sourceKey]\n\n if (mergeArray && isArray(sourceValue) && isArray(targetValue)) {\n result[sourceKey] = targetValue.concat(...sourceValue)\n } else if (\n !isFunction(sourceValue) &&\n isObject(sourceValue) &&\n target.hasOwnProperty(sourceKey)\n ) {\n result[sourceKey] = merge(targetValue, sourceValue, mergeArray)\n } else {\n Object.assign(result, { [sourceKey]: sourceValue })\n }\n }\n } else {\n result = source\n }\n }\n\n return result as Y\n}\n\nexport interface FlattenObjectOptions {\n maxDepth?: number\n omitKeys?: string[]\n separator?: string\n shouldProcess?: (obj: any) => boolean\n}\n\nexport function flattenObject<Y extends Dict>(\n obj: any,\n { maxDepth, omitKeys, separator, shouldProcess }: FlattenObjectOptions = {},\n): Y {\n maxDepth ??= Infinity\n omitKeys ??= []\n separator ??= \".\"\n\n if ((!isObject(obj) && !isArray(obj)) || !maxDepth) return obj\n\n return Object.entries(obj).reduce((result, [key, value]) => {\n if (\n isObject(value) &&\n !Object.keys(value).some((key) => omitKeys?.includes(key)) &&\n (!shouldProcess || shouldProcess(value))\n ) {\n Object.entries(\n flattenObject(value, {\n maxDepth: maxDepth - 1,\n omitKeys,\n separator,\n shouldProcess,\n }),\n ).forEach(([childKey, childValue]) => {\n result[`${key}${separator}${childKey}`] = childValue\n })\n } else {\n result[key] = value\n }\n\n return result\n }, {} as any) as Y\n}\n\nexport function objectFromEntries<Y extends Dict>(entries: any[][]): Y {\n return entries.reduce((result, [key, value]) => {\n result[key] = value\n\n return result\n }, {} as any) as Y\n}\n\nexport function keysFormObject<Y extends object>(obj: Y): (keyof Y)[] {\n return Object.keys(obj) as (keyof Y)[]\n}\n\nexport function replaceObject<Y = any>(\n objOrArray: Y,\n callBack: (value: any) => any,\n): Y {\n if (isArray(objOrArray)) {\n return objOrArray.map(callBack) as Y\n } else if (isObject(objOrArray)) {\n return Object.entries(objOrArray).reduce((obj, [key, value]) => {\n obj[key] = callBack(value)\n\n return obj\n }, {} as Dict) as Y\n } else {\n return callBack(objOrArray)\n }\n}\n\nexport function getObject(\n obj: Dict,\n path: string | number,\n fallback?: any,\n i?: number,\n) {\n const k = isString(path) ? path.split(/\\[(.*?)\\]|\\./).filter(Boolean) : [path]\n\n for (i = 0; i < k.length; i += 1) {\n if (!obj) break\n\n obj = obj[k[i]]\n }\n\n return obj === undefined ? fallback : obj\n}\n\nexport function memoizeObject(func: typeof getObject) {\n const cache = new WeakMap()\n\n function memoizedFunc<Y>(\n obj: Dict,\n path: string | number,\n fallback?: any,\n i?: number,\n ): Y {\n if (isUndefined(obj)) return func(obj, path, fallback)\n\n if (!cache.has(obj)) cache.set(obj, new Map())\n\n const map = cache.get(obj)\n\n if (map.has(path)) return map.get(path)\n\n const value = func(obj, path, fallback, i)\n\n map.set(path, value)\n\n return value as Y\n }\n\n return memoizedFunc\n}\n\nexport const getMemoizedObject = memoizeObject(getObject)\n\nexport function assignAfter(target: { [key: string]: any }, ...sources: any[]) {\n if (target == null)\n throw new TypeError(\"Cannot convert undefined or null to object\")\n\n const result: { [key: string]: unknown } = { ...target }\n\n for (const nextSource of sources) {\n if (nextSource == null) continue\n\n for (const nextKey in nextSource) {\n if (!Object.prototype.hasOwnProperty.call(nextSource, nextKey)) continue\n\n if (nextKey in result) delete result[nextKey]\n\n result[nextKey] = nextSource[nextKey]\n }\n }\n\n return result\n}\n","import type { Dict } from \"./index.types\"\n\nexport function is(x: any, y: any) {\n return (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y)\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === \"number\"\n}\n\nexport function isNotNumber(value: any): boolean {\n return (\n typeof value !== \"number\" || Number.isNaN(value) || !Number.isFinite(value)\n )\n}\n\nexport function isNumeric(value: any): boolean {\n return (\n !isNaN(parseFloat(String(value))) &&\n isFinite(Number(value)) &&\n /^-?\\d*\\.?\\d+$/.test(String(value))\n )\n}\n\nexport function isString(value: any): value is string {\n return Object.prototype.toString.call(value) === \"[object String]\"\n}\n\nexport function isBoolean(value: any): value is boolean {\n return typeof value === \"boolean\"\n}\n\nexport function isUndefined(value: any): value is undefined {\n return typeof value === \"undefined\" && value === undefined\n}\n\nexport function isNull(value: any): value is null {\n return value === null\n}\n\nexport function isObject<T extends Dict>(value: any): value is T {\n return (\n value !== null &&\n (typeof value === \"object\" || typeof value === \"function\") &&\n !isArray(value)\n )\n}\n\nexport function isArray<T extends any[]>(value: any): value is T {\n return Array.isArray(value)\n}\n\nexport function isEmpty(value: any): boolean {\n return !isArray(value) || !value.length || value.every((v) => v == null)\n}\n\nexport function isFunction<T extends Function = Function>(\n value: any,\n): value is T {\n return typeof value === \"function\"\n}\n\nexport function isUnit(value: any): boolean {\n return /[0-9].*(em|rem|ex|rex|cap|rcap|ch|rch|ic|ric|lh|rlh|vw|svw|lvw|dvw|vh|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax|cm|mm|Q|in|pc|pt|px|%|cqw|cqh|cqi|cqb|cqmin|cqmax)$/.test(\n value,\n )\n}\n\nexport function cast<T>(value: any) {\n return value as T\n}\n"],"mappings":"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","names":["prev","key"]}
|
package/dist/object.mjs
CHANGED
package/dist/react.d.mts
CHANGED
|
@@ -1,60 +1,50 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { MergeIfDefined } from './index.types.mjs';
|
|
3
2
|
|
|
4
|
-
type DOMElement = Element & HTMLOrSVGElement;
|
|
5
|
-
type DOMAttributes<Y = DOMElement> = React.HTMLAttributes<Y> & React.AriaAttributes & React.DOMAttributes<Y> & {
|
|
6
|
-
id?: string;
|
|
7
|
-
role?: React.AriaRole;
|
|
8
|
-
tabIndex?: number;
|
|
9
|
-
style?: React.CSSProperties;
|
|
10
|
-
};
|
|
11
|
-
type PropGetter<Y = undefined, M = DOMAttributes> = (props?: MergeIfDefined<DOMAttributes, Y>, ref?: React.Ref<any>) => M & React.RefAttributes<any>;
|
|
12
|
-
type RequiredPropGetter<Y = undefined, M = DOMAttributes> = (props: MergeIfDefined<DOMAttributes, Y>, ref?: React.Ref<any>) => M & React.RefAttributes<any>;
|
|
13
3
|
type MaybeRenderProp<Y> = React.ReactNode | ((props: Y) => React.ReactNode);
|
|
14
|
-
|
|
4
|
+
interface Options<ContextType extends any = any> {
|
|
15
5
|
strict?: boolean;
|
|
16
6
|
errorMessage?: string;
|
|
17
7
|
name?: string;
|
|
18
8
|
defaultValue?: ContextType;
|
|
19
|
-
}
|
|
9
|
+
}
|
|
20
10
|
type CreateContextReturn<T> = [React.Provider<T>, () => T, React.Context<T>];
|
|
21
|
-
declare
|
|
11
|
+
declare function createContext<ContextType extends any = any>({ strict, errorMessage, name, defaultValue, }?: Options<ContextType>): CreateContextReturn<ContextType>;
|
|
22
12
|
declare const useSafeLayoutEffect: typeof React.useLayoutEffect;
|
|
23
|
-
declare
|
|
24
|
-
|
|
13
|
+
declare function useUnmountEffect(callback: () => void): void;
|
|
14
|
+
interface UseIsMountedProps {
|
|
25
15
|
rerender?: boolean;
|
|
26
16
|
delay?: number;
|
|
27
|
-
}
|
|
28
|
-
declare
|
|
17
|
+
}
|
|
18
|
+
declare function useIsMounted({ rerender, delay, }?: UseIsMountedProps): [() => boolean, boolean];
|
|
29
19
|
type UseIsMountedReturn = ReturnType<typeof useIsMounted>;
|
|
30
|
-
declare
|
|
31
|
-
declare
|
|
32
|
-
declare
|
|
33
|
-
declare
|
|
34
|
-
declare
|
|
35
|
-
declare
|
|
36
|
-
declare
|
|
20
|
+
declare function getValidChildren(children: React.ReactNode): React.ReactElement[];
|
|
21
|
+
declare function isValidElement(child: any): child is React.ReactNode;
|
|
22
|
+
declare function findChildren(children: React.ReactElement[], ...types: (string | React.JSXElementConstructor<any>)[]): [React.ReactElement | undefined, ...React.ReactElement[]];
|
|
23
|
+
declare function includesChildren(children: React.ReactElement[], ...types: (string | React.JSXElementConstructor<any>)[]): boolean;
|
|
24
|
+
declare function omitChildren(children: React.ReactElement[], ...types: (string | React.JSXElementConstructor<any>)[]): React.ReactElement[];
|
|
25
|
+
declare function pickChildren(children: React.ReactElement[], ...types: (string | React.JSXElementConstructor<any>)[]): React.ReactElement[];
|
|
26
|
+
declare function cx(...classNames: (string | undefined)[]): string;
|
|
37
27
|
type ReactRef<T> = React.Ref<T> | React.MutableRefObject<T> | React.LegacyRef<T>;
|
|
38
|
-
declare
|
|
28
|
+
declare function isRefObject(val: any): val is {
|
|
39
29
|
current: any;
|
|
40
30
|
};
|
|
41
|
-
declare
|
|
42
|
-
declare
|
|
43
|
-
declare
|
|
44
|
-
declare
|
|
31
|
+
declare function assignRef<T extends any = any>(ref: ReactRef<T> | undefined, value: T): void;
|
|
32
|
+
declare function mergeRefs<T extends any = any>(...refs: (ReactRef<T> | null | undefined)[]): (node: T | null) => void;
|
|
33
|
+
declare function useMergeRefs<T extends any = any>(...refs: (ReactRef<T> | undefined)[]): (node: T | null) => void;
|
|
34
|
+
declare function useCallbackRef<T extends (...args: any[]) => any>(callback: T | undefined, deps?: React.DependencyList): T;
|
|
45
35
|
/**
|
|
46
36
|
* `useUpdateEffect` is a custom hook that skips side effects on the initial render, and only runs them when the dependency array changes.
|
|
47
37
|
*
|
|
48
38
|
* @see Docs https://yamada-ui.com/hooks/use-update-effect
|
|
49
39
|
*/
|
|
50
|
-
declare
|
|
40
|
+
declare function useUpdateEffect(callback: React.EffectCallback, deps: React.DependencyList): void;
|
|
51
41
|
type FunctionReturningPromise = (...args: any[]) => Promise<any>;
|
|
52
42
|
/**
|
|
53
43
|
* `useAsync` is a custom hook that executes an asynchronous function and tracks its state.
|
|
54
44
|
*
|
|
55
45
|
* @see Docs https://yamada-ui.com/hooks/use-async
|
|
56
46
|
*/
|
|
57
|
-
declare
|
|
47
|
+
declare function useAsync<T extends FunctionReturningPromise>(func: T, deps?: React.DependencyList): StateFromFunctionReturningPromise<T>;
|
|
58
48
|
type AsyncState<T> = {
|
|
59
49
|
loading: boolean;
|
|
60
50
|
error?: undefined;
|
|
@@ -75,11 +65,11 @@ type AsyncState<T> = {
|
|
|
75
65
|
type PromiseType<P extends Promise<any>> = P extends Promise<infer T> ? T : never;
|
|
76
66
|
type StateFromFunctionReturningPromise<T extends FunctionReturningPromise> = AsyncState<PromiseType<ReturnType<T>>>;
|
|
77
67
|
type AsyncFnReturn<T extends FunctionReturningPromise = FunctionReturningPromise> = [StateFromFunctionReturningPromise<T>, T];
|
|
78
|
-
declare
|
|
68
|
+
declare function useAsyncFunc<T extends FunctionReturningPromise>(func: T, deps?: React.DependencyList, initialState?: StateFromFunctionReturningPromise<T>): AsyncFnReturn<T>;
|
|
79
69
|
type AsyncStateRetry<T> = AsyncState<T> & {
|
|
80
70
|
retry(): void;
|
|
81
71
|
};
|
|
82
|
-
declare
|
|
72
|
+
declare function useAsyncRetry<T>(func: () => Promise<T>, deps?: React.DependencyList): {
|
|
83
73
|
retry: () => void;
|
|
84
74
|
loading: boolean;
|
|
85
75
|
error?: undefined;
|
|
@@ -100,6 +90,6 @@ declare const useAsyncRetry: <T>(func: () => Promise<T>, deps?: React.Dependency
|
|
|
100
90
|
error?: undefined;
|
|
101
91
|
value: T;
|
|
102
92
|
};
|
|
103
|
-
declare
|
|
93
|
+
declare function createId(prefix: string): string;
|
|
104
94
|
|
|
105
|
-
export { type AsyncFnReturn, type AsyncState, type AsyncStateRetry, type
|
|
95
|
+
export { type AsyncFnReturn, type AsyncState, type AsyncStateRetry, type FunctionReturningPromise, type MaybeRenderProp, type PromiseType, type UseIsMountedProps, type UseIsMountedReturn, assignRef, createContext, createId, cx, findChildren, getValidChildren, includesChildren, isRefObject, isValidElement, mergeRefs, omitChildren, pickChildren, useAsync, useAsyncFunc, useAsyncRetry, useCallbackRef, useIsMounted, useMergeRefs, useSafeLayoutEffect, useUnmountEffect, useUpdateEffect };
|
package/dist/react.d.ts
CHANGED
|
@@ -1,60 +1,50 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { MergeIfDefined } from './index.types.js';
|
|
3
2
|
|
|
4
|
-
type DOMElement = Element & HTMLOrSVGElement;
|
|
5
|
-
type DOMAttributes<Y = DOMElement> = React.HTMLAttributes<Y> & React.AriaAttributes & React.DOMAttributes<Y> & {
|
|
6
|
-
id?: string;
|
|
7
|
-
role?: React.AriaRole;
|
|
8
|
-
tabIndex?: number;
|
|
9
|
-
style?: React.CSSProperties;
|
|
10
|
-
};
|
|
11
|
-
type PropGetter<Y = undefined, M = DOMAttributes> = (props?: MergeIfDefined<DOMAttributes, Y>, ref?: React.Ref<any>) => M & React.RefAttributes<any>;
|
|
12
|
-
type RequiredPropGetter<Y = undefined, M = DOMAttributes> = (props: MergeIfDefined<DOMAttributes, Y>, ref?: React.Ref<any>) => M & React.RefAttributes<any>;
|
|
13
3
|
type MaybeRenderProp<Y> = React.ReactNode | ((props: Y) => React.ReactNode);
|
|
14
|
-
|
|
4
|
+
interface Options<ContextType extends any = any> {
|
|
15
5
|
strict?: boolean;
|
|
16
6
|
errorMessage?: string;
|
|
17
7
|
name?: string;
|
|
18
8
|
defaultValue?: ContextType;
|
|
19
|
-
}
|
|
9
|
+
}
|
|
20
10
|
type CreateContextReturn<T> = [React.Provider<T>, () => T, React.Context<T>];
|
|
21
|
-
declare
|
|
11
|
+
declare function createContext<ContextType extends any = any>({ strict, errorMessage, name, defaultValue, }?: Options<ContextType>): CreateContextReturn<ContextType>;
|
|
22
12
|
declare const useSafeLayoutEffect: typeof React.useLayoutEffect;
|
|
23
|
-
declare
|
|
24
|
-
|
|
13
|
+
declare function useUnmountEffect(callback: () => void): void;
|
|
14
|
+
interface UseIsMountedProps {
|
|
25
15
|
rerender?: boolean;
|
|
26
16
|
delay?: number;
|
|
27
|
-
}
|
|
28
|
-
declare
|
|
17
|
+
}
|
|
18
|
+
declare function useIsMounted({ rerender, delay, }?: UseIsMountedProps): [() => boolean, boolean];
|
|
29
19
|
type UseIsMountedReturn = ReturnType<typeof useIsMounted>;
|
|
30
|
-
declare
|
|
31
|
-
declare
|
|
32
|
-
declare
|
|
33
|
-
declare
|
|
34
|
-
declare
|
|
35
|
-
declare
|
|
36
|
-
declare
|
|
20
|
+
declare function getValidChildren(children: React.ReactNode): React.ReactElement[];
|
|
21
|
+
declare function isValidElement(child: any): child is React.ReactNode;
|
|
22
|
+
declare function findChildren(children: React.ReactElement[], ...types: (string | React.JSXElementConstructor<any>)[]): [React.ReactElement | undefined, ...React.ReactElement[]];
|
|
23
|
+
declare function includesChildren(children: React.ReactElement[], ...types: (string | React.JSXElementConstructor<any>)[]): boolean;
|
|
24
|
+
declare function omitChildren(children: React.ReactElement[], ...types: (string | React.JSXElementConstructor<any>)[]): React.ReactElement[];
|
|
25
|
+
declare function pickChildren(children: React.ReactElement[], ...types: (string | React.JSXElementConstructor<any>)[]): React.ReactElement[];
|
|
26
|
+
declare function cx(...classNames: (string | undefined)[]): string;
|
|
37
27
|
type ReactRef<T> = React.Ref<T> | React.MutableRefObject<T> | React.LegacyRef<T>;
|
|
38
|
-
declare
|
|
28
|
+
declare function isRefObject(val: any): val is {
|
|
39
29
|
current: any;
|
|
40
30
|
};
|
|
41
|
-
declare
|
|
42
|
-
declare
|
|
43
|
-
declare
|
|
44
|
-
declare
|
|
31
|
+
declare function assignRef<T extends any = any>(ref: ReactRef<T> | undefined, value: T): void;
|
|
32
|
+
declare function mergeRefs<T extends any = any>(...refs: (ReactRef<T> | null | undefined)[]): (node: T | null) => void;
|
|
33
|
+
declare function useMergeRefs<T extends any = any>(...refs: (ReactRef<T> | undefined)[]): (node: T | null) => void;
|
|
34
|
+
declare function useCallbackRef<T extends (...args: any[]) => any>(callback: T | undefined, deps?: React.DependencyList): T;
|
|
45
35
|
/**
|
|
46
36
|
* `useUpdateEffect` is a custom hook that skips side effects on the initial render, and only runs them when the dependency array changes.
|
|
47
37
|
*
|
|
48
38
|
* @see Docs https://yamada-ui.com/hooks/use-update-effect
|
|
49
39
|
*/
|
|
50
|
-
declare
|
|
40
|
+
declare function useUpdateEffect(callback: React.EffectCallback, deps: React.DependencyList): void;
|
|
51
41
|
type FunctionReturningPromise = (...args: any[]) => Promise<any>;
|
|
52
42
|
/**
|
|
53
43
|
* `useAsync` is a custom hook that executes an asynchronous function and tracks its state.
|
|
54
44
|
*
|
|
55
45
|
* @see Docs https://yamada-ui.com/hooks/use-async
|
|
56
46
|
*/
|
|
57
|
-
declare
|
|
47
|
+
declare function useAsync<T extends FunctionReturningPromise>(func: T, deps?: React.DependencyList): StateFromFunctionReturningPromise<T>;
|
|
58
48
|
type AsyncState<T> = {
|
|
59
49
|
loading: boolean;
|
|
60
50
|
error?: undefined;
|
|
@@ -75,11 +65,11 @@ type AsyncState<T> = {
|
|
|
75
65
|
type PromiseType<P extends Promise<any>> = P extends Promise<infer T> ? T : never;
|
|
76
66
|
type StateFromFunctionReturningPromise<T extends FunctionReturningPromise> = AsyncState<PromiseType<ReturnType<T>>>;
|
|
77
67
|
type AsyncFnReturn<T extends FunctionReturningPromise = FunctionReturningPromise> = [StateFromFunctionReturningPromise<T>, T];
|
|
78
|
-
declare
|
|
68
|
+
declare function useAsyncFunc<T extends FunctionReturningPromise>(func: T, deps?: React.DependencyList, initialState?: StateFromFunctionReturningPromise<T>): AsyncFnReturn<T>;
|
|
79
69
|
type AsyncStateRetry<T> = AsyncState<T> & {
|
|
80
70
|
retry(): void;
|
|
81
71
|
};
|
|
82
|
-
declare
|
|
72
|
+
declare function useAsyncRetry<T>(func: () => Promise<T>, deps?: React.DependencyList): {
|
|
83
73
|
retry: () => void;
|
|
84
74
|
loading: boolean;
|
|
85
75
|
error?: undefined;
|
|
@@ -100,6 +90,6 @@ declare const useAsyncRetry: <T>(func: () => Promise<T>, deps?: React.Dependency
|
|
|
100
90
|
error?: undefined;
|
|
101
91
|
value: T;
|
|
102
92
|
};
|
|
103
|
-
declare
|
|
93
|
+
declare function createId(prefix: string): string;
|
|
104
94
|
|
|
105
|
-
export { type AsyncFnReturn, type AsyncState, type AsyncStateRetry, type
|
|
95
|
+
export { type AsyncFnReturn, type AsyncState, type AsyncStateRetry, type FunctionReturningPromise, type MaybeRenderProp, type PromiseType, type UseIsMountedProps, type UseIsMountedReturn, assignRef, createContext, createId, cx, findChildren, getValidChildren, includesChildren, isRefObject, isValidElement, mergeRefs, omitChildren, pickChildren, useAsync, useAsyncFunc, useAsyncRetry, useCallbackRef, useIsMounted, useMergeRefs, useSafeLayoutEffect, useUnmountEffect, useUpdateEffect };
|