@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.
Files changed (111) hide show
  1. package/dist/array.d.mts +1 -1
  2. package/dist/array.d.ts +1 -1
  3. package/dist/array.js +3 -1
  4. package/dist/array.js.map +1 -1
  5. package/dist/array.mjs +1 -1
  6. package/dist/assertion.d.mts +14 -14
  7. package/dist/assertion.d.ts +14 -14
  8. package/dist/assertion.js +44 -16
  9. package/dist/assertion.js.map +1 -1
  10. package/dist/assertion.mjs +1 -1
  11. package/dist/calc.d.mts +12 -7
  12. package/dist/calc.d.ts +12 -7
  13. package/dist/calc.js +17 -7
  14. package/dist/calc.js.map +1 -1
  15. package/dist/calc.mjs +1 -1
  16. package/dist/{chunk-ZFE4ZWCP.mjs → chunk-2AWPBKLQ.mjs} +68 -47
  17. package/dist/chunk-2AWPBKLQ.mjs.map +1 -0
  18. package/dist/chunk-5EG6NSMV.mjs +9 -0
  19. package/dist/chunk-5EG6NSMV.mjs.map +1 -0
  20. package/dist/{chunk-I5E5UXSE.mjs → chunk-7XL7BPER.mjs} +52 -44
  21. package/dist/chunk-7XL7BPER.mjs.map +1 -0
  22. package/dist/{chunk-KT4SLZO6.mjs → chunk-7XRVZGET.mjs} +18 -12
  23. package/dist/chunk-7XRVZGET.mjs.map +1 -0
  24. package/dist/{chunk-S35WPDIT.mjs → chunk-AF6MSVQN.mjs} +75 -41
  25. package/dist/chunk-AF6MSVQN.mjs.map +1 -0
  26. package/dist/chunk-APJY76CK.mjs +9 -0
  27. package/dist/chunk-APJY76CK.mjs.map +1 -0
  28. package/dist/{chunk-L56KWSQO.mjs → chunk-OM7WYVSS.mjs} +18 -8
  29. package/dist/chunk-OM7WYVSS.mjs.map +1 -0
  30. package/dist/chunk-QTCZ2LU5.mjs +65 -0
  31. package/dist/chunk-QTCZ2LU5.mjs.map +1 -0
  32. package/dist/chunk-RCW53QOG.mjs +31 -0
  33. package/dist/chunk-RCW53QOG.mjs.map +1 -0
  34. package/dist/chunk-TJ7CW2M5.mjs +365 -0
  35. package/dist/chunk-TJ7CW2M5.mjs.map +1 -0
  36. package/dist/{chunk-2AQWXBLU.mjs → chunk-WU6FTFUV.mjs} +15 -7
  37. package/dist/chunk-WU6FTFUV.mjs.map +1 -0
  38. package/dist/chunk-Z4AGSEWZ.mjs +63 -0
  39. package/dist/chunk-Z4AGSEWZ.mjs.map +1 -0
  40. package/dist/color.d.mts +24 -24
  41. package/dist/color.d.ts +24 -24
  42. package/dist/color.js +212 -158
  43. package/dist/color.js.map +1 -1
  44. package/dist/color.mjs +3 -3
  45. package/dist/dom.d.mts +29 -29
  46. package/dist/dom.d.ts +29 -29
  47. package/dist/dom.js +79 -41
  48. package/dist/dom.js.map +1 -1
  49. package/dist/dom.mjs +2 -2
  50. package/dist/event.d.mts +13 -13
  51. package/dist/event.d.ts +13 -13
  52. package/dist/event.js +37 -23
  53. package/dist/event.js.map +1 -1
  54. package/dist/event.mjs +1 -1
  55. package/dist/function.d.mts +3 -3
  56. package/dist/function.d.ts +3 -3
  57. package/dist/function.js +19 -9
  58. package/dist/function.js.map +1 -1
  59. package/dist/function.mjs +2 -2
  60. package/dist/index.d.mts +2 -2
  61. package/dist/index.d.ts +2 -2
  62. package/dist/index.js +531 -346
  63. package/dist/index.js.map +1 -1
  64. package/dist/index.mjs +12 -12
  65. package/dist/index.types.d.mts +8 -4
  66. package/dist/index.types.d.ts +8 -4
  67. package/dist/index.types.js.map +1 -1
  68. package/dist/module.d.mts +1 -1
  69. package/dist/module.d.ts +1 -1
  70. package/dist/module.js +3 -1
  71. package/dist/module.js.map +1 -1
  72. package/dist/module.mjs +1 -1
  73. package/dist/number.d.mts +7 -7
  74. package/dist/number.d.ts +7 -7
  75. package/dist/number.js +17 -11
  76. package/dist/number.js.map +1 -1
  77. package/dist/number.mjs +1 -1
  78. package/dist/object.d.mts +19 -15
  79. package/dist/object.d.ts +19 -15
  80. package/dist/object.js +65 -47
  81. package/dist/object.js.map +1 -1
  82. package/dist/object.mjs +2 -2
  83. package/dist/react.d.mts +25 -35
  84. package/dist/react.d.ts +25 -35
  85. package/dist/react.js +78 -49
  86. package/dist/react.js.map +1 -1
  87. package/dist/react.mjs +2 -2
  88. package/dist/string.d.mts +5 -5
  89. package/dist/string.d.ts +5 -5
  90. package/dist/string.js +14 -6
  91. package/dist/string.js.map +1 -1
  92. package/dist/string.mjs +1 -1
  93. package/package.json +1 -1
  94. package/dist/chunk-2AQWXBLU.mjs.map +0 -1
  95. package/dist/chunk-5OUUTZYQ.mjs +0 -7
  96. package/dist/chunk-5OUUTZYQ.mjs.map +0 -1
  97. package/dist/chunk-I5E5UXSE.mjs.map +0 -1
  98. package/dist/chunk-KT4SLZO6.mjs.map +0 -1
  99. package/dist/chunk-L56KWSQO.mjs.map +0 -1
  100. package/dist/chunk-MMZ4T26E.mjs +0 -51
  101. package/dist/chunk-MMZ4T26E.mjs.map +0 -1
  102. package/dist/chunk-NBL5H4TH.mjs +0 -35
  103. package/dist/chunk-NBL5H4TH.mjs.map +0 -1
  104. package/dist/chunk-S35WPDIT.mjs.map +0 -1
  105. package/dist/chunk-VRHGQ632.mjs +0 -23
  106. package/dist/chunk-VRHGQ632.mjs.map +0 -1
  107. package/dist/chunk-WV6P7ZCI.mjs +0 -7
  108. package/dist/chunk-WV6P7ZCI.mjs.map +0 -1
  109. package/dist/chunk-ZFE4ZWCP.mjs.map +0 -1
  110. package/dist/chunk-ZMR5WZIP.mjs +0 -321
  111. package/dist/chunk-ZMR5WZIP.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/number.ts"],"sourcesContent":["export const toNumber = (n: any): number => {\n const num = parseFloat(n)\n\n return typeof num !== \"number\" || Number.isNaN(num) ? 0 : num\n}\n\nexport const 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 const 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 const 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 const valueToPercent = (n: number, min: number, max: number): number =>\n ((n - min) * 100) / (max - min)\n\nexport const percentToValue = (n: number, min: number, max: number) =>\n (max - min) * n + min\n\nexport const clampNumber = (n: number, min: number, max: number): number =>\n Math.min(Math.max(n, min), max)\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAM,WAAW,CAAC,MAAmB;AAC1C,QAAM,MAAM,WAAW,CAAC;AAExB,SAAO,OAAO,QAAQ,YAAY,OAAO,MAAM,GAAG,IAAI,IAAI;AAC5D;AAEO,IAAM,cAAc,CAAC,GAAW,cAA+B;AACpE,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,IAAM,eAAe,CAAC,MAAsB;AACjD,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,IAAM,oBAAoB,CAAC,GAAW,MAAc,SAAiB;AAC1E,QAAM,YAAY,KAAK,OAAO,IAAI,QAAQ,IAAI,IAAI,OAAO;AAEzD,QAAM,YAAY,aAAa,IAAI;AAEnC,SAAO,YAAY,WAAW,SAAS;AACzC;AAEO,IAAM,iBAAiB,CAAC,GAAW,KAAa,SACnD,IAAI,OAAO,OAAQ,MAAM;AAEtB,IAAM,iBAAiB,CAAC,GAAW,KAAa,SACpD,MAAM,OAAO,IAAI;AAEb,IAAM,cAAc,CAAC,GAAW,KAAa,QAClD,KAAK,IAAI,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG;","names":[]}
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
@@ -6,7 +6,7 @@ import {
6
6
  toNumber,
7
7
  toPrecision,
8
8
  valueToPercent
9
- } from "./chunk-KT4SLZO6.mjs";
9
+ } from "./chunk-7XRVZGET.mjs";
10
10
  export {
11
11
  clampNumber,
12
12
  countDecimal,
package/dist/object.d.mts CHANGED
@@ -1,24 +1,28 @@
1
1
  import { Dict } from './index.types.mjs';
2
2
 
3
- declare const omitObject: <Y extends Dict, M extends keyof Y = keyof Y, D extends unknown = unknown>(obj: Y, keys: M[] | readonly M[]) => D extends unknown ? Omit<Y, M> : D;
4
- declare const pickObject: <Y extends Dict, M extends keyof Y = keyof Y, D extends unknown = unknown>(obj: Y, keys: M[] | readonly M[], fallbackValue?: string) => D extends unknown ? { [H in M]: Y[H]; } : D;
5
- declare const splitObject: <Y extends Dict, M extends keyof Y>(obj: Y, keys: M[] | readonly M[]) => [{ [P in M]: Y[P]; }, Omit<Y, M>];
6
- declare const filterObject: <Y extends Dict, M extends Dict>(obj: Y, func: (key: keyof Y, value: Y[keyof Y], obj: Y) => boolean) => M;
7
- declare const filterUndefined: <Y extends Dict>(obj: Y) => Y;
8
- declare const merge: <Y extends Dict>(target: any, source: any, mergeArray?: boolean) => Y;
9
- type FlattenObjectOptions = {
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 const omitObject: <Y extends Dict, M extends keyof Y = keyof Y, D extends unknown = unknown>(obj: Y, keys: M[] | readonly M[]) => D extends unknown ? Omit<Y, M> : D;
4
- declare const pickObject: <Y extends Dict, M extends keyof Y = keyof Y, D extends unknown = unknown>(obj: Y, keys: M[] | readonly M[], fallbackValue?: string) => D extends unknown ? { [H in M]: Y[H]; } : D;
5
- declare const splitObject: <Y extends Dict, M extends keyof Y>(obj: Y, keys: M[] | readonly M[]) => [{ [P in M]: Y[P]; }, Omit<Y, M>];
6
- declare const filterObject: <Y extends Dict, M extends Dict>(obj: Y, func: (key: keyof Y, value: Y[keyof Y], obj: Y) => boolean) => M;
7
- declare const filterUndefined: <Y extends Dict>(obj: Y) => Y;
8
- declare const merge: <Y extends Dict>(target: any, source: any, mergeArray?: boolean) => Y;
9
- type FlattenObjectOptions = {
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
- var isString = (value) => Object.prototype.toString.call(value) === "[object String]";
42
- var isUndefined = (value) => typeof value === "undefined" && value === void 0;
43
- var isObject = (value) => value !== null && (typeof value === "object" || typeof value === "function") && !isArray(value);
44
- var isArray = (value) => Array.isArray(value);
45
- var isFunction = (value) => typeof value === "function";
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
- var omitObjectHelper = (obj, path) => {
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
- var omitObject = (obj, keys) => {
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
- var pickObject = (obj, keys, fallbackValue = "__fallback") => keys.reduce((prev, key) => {
70
- const path = isString(key) ? key.split(".") : [];
71
- if (!path.length) return prev;
72
- const value = getMemoizedObject(obj, key, fallbackValue);
73
- if (value === fallbackValue) return prev;
74
- prev = merge(
75
- prev,
76
- path.reduceRight(
77
- (prev2, key2) => ({ [key2]: key2 === path.at(-1) ? value : prev2 }),
78
- {}
79
- )
80
- );
81
- return prev;
82
- }, {});
83
- var splitObject = (obj, keys) => {
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
- var filterObject = (obj, func) => {
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
- var filterUndefined = (obj) => filterObject(obj, (_, val) => val !== null && val !== void 0);
104
- var merge = (target, source, mergeArray = false) => {
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
- var flattenObject = (obj, { maxDepth, omitKeys, separator, shouldProcess } = {}) => {
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
- var objectFromEntries = (entries) => entries.reduce((result, [key, value]) => {
148
- result[key] = value;
149
- return result;
150
- }, {});
151
- var keysFormObject = (obj) => Object.keys(obj);
152
- var replaceObject = (objOrArray, callBack) => {
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
- var getObject = (obj, path, fallback, i) => {
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
- var memoizeObject = (func) => {
189
+ }
190
+ function memoizeObject(func) {
173
191
  const cache = /* @__PURE__ */ new WeakMap();
174
- const memoizedFunc = (obj, path, fallback, i) => {
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
- var assignAfter = (target, ...sources) => {
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,
@@ -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
@@ -13,8 +13,8 @@ import {
13
13
  pickObject,
14
14
  replaceObject,
15
15
  splitObject
16
- } from "./chunk-I5E5UXSE.mjs";
17
- import "./chunk-NBL5H4TH.mjs";
16
+ } from "./chunk-7XL7BPER.mjs";
17
+ import "./chunk-Z4AGSEWZ.mjs";
18
18
  export {
19
19
  assignAfter,
20
20
  filterObject,
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
- type Options<ContextType extends any = any> = {
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 const createContext: <ContextType extends unknown = any>({ strict, errorMessage, name, defaultValue, }?: Options<ContextType>) => CreateContextReturn<ContextType>;
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 const useUnmountEffect: (callback: () => void) => void;
24
- type UseIsMountedProps = {
13
+ declare function useUnmountEffect(callback: () => void): void;
14
+ interface UseIsMountedProps {
25
15
  rerender?: boolean;
26
16
  delay?: number;
27
- };
28
- declare const useIsMounted: ({ rerender, delay, }?: UseIsMountedProps) => [() => boolean, boolean];
17
+ }
18
+ declare function useIsMounted({ rerender, delay, }?: UseIsMountedProps): [() => boolean, boolean];
29
19
  type UseIsMountedReturn = ReturnType<typeof useIsMounted>;
30
- declare const getValidChildren: (children: React.ReactNode) => React.ReactElement[];
31
- declare const isValidElement: (child: any) => child is React.ReactNode;
32
- declare const findChildren: (children: React.ReactElement<any, string | React.JSXElementConstructor<any>>[], ...types: (string | React.JSXElementConstructor<any>)[]) => [React.ReactElement | undefined, ...React.ReactElement[]];
33
- declare const includesChildren: (children: React.ReactElement<any, string | React.JSXElementConstructor<any>>[], ...types: (string | React.JSXElementConstructor<any>)[]) => boolean;
34
- declare const omitChildren: (children: React.ReactElement<any, string | React.JSXElementConstructor<any>>[], ...types: (string | React.JSXElementConstructor<any>)[]) => React.ReactElement[];
35
- declare const pickChildren: (children: React.ReactElement<any, string | React.JSXElementConstructor<any>>[], ...types: (string | React.JSXElementConstructor<any>)[]) => React.ReactElement[];
36
- declare const cx: (...classNames: (string | undefined)[]) => string;
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 const isRefObject: (val: any) => val is {
28
+ declare function isRefObject(val: any): val is {
39
29
  current: any;
40
30
  };
41
- declare const assignRef: <T extends unknown = any>(ref: ReactRef<T> | undefined, value: T) => void;
42
- declare const mergeRefs: <T extends unknown = any>(...refs: (ReactRef<T> | null | undefined)[]) => (node: T | null) => void;
43
- declare const useMergeRefs: <T extends unknown = any>(...refs: (ReactRef<T> | undefined)[]) => (node: T | null) => void;
44
- declare const useCallbackRef: <T extends (...args: any[]) => any>(callback: T | undefined, deps?: React.DependencyList) => T;
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 const useUpdateEffect: (callback: React.EffectCallback, deps: React.DependencyList) => void;
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 const useAsync: <T extends FunctionReturningPromise>(func: T, deps?: React.DependencyList) => StateFromFunctionReturningPromise<T>;
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 const useAsyncFunc: <T extends FunctionReturningPromise>(func: T, deps?: React.DependencyList, initialState?: StateFromFunctionReturningPromise<T>) => AsyncFnReturn<T>;
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 const useAsyncRetry: <T>(func: () => Promise<T>, deps?: React.DependencyList) => {
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 const createId: (prefix: string) => string;
93
+ declare function createId(prefix: string): string;
104
94
 
105
- export { type AsyncFnReturn, type AsyncState, type AsyncStateRetry, type DOMAttributes, type FunctionReturningPromise, type MaybeRenderProp, type PromiseType, type PropGetter, type RequiredPropGetter, 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 };
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
- type Options<ContextType extends any = any> = {
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 const createContext: <ContextType extends unknown = any>({ strict, errorMessage, name, defaultValue, }?: Options<ContextType>) => CreateContextReturn<ContextType>;
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 const useUnmountEffect: (callback: () => void) => void;
24
- type UseIsMountedProps = {
13
+ declare function useUnmountEffect(callback: () => void): void;
14
+ interface UseIsMountedProps {
25
15
  rerender?: boolean;
26
16
  delay?: number;
27
- };
28
- declare const useIsMounted: ({ rerender, delay, }?: UseIsMountedProps) => [() => boolean, boolean];
17
+ }
18
+ declare function useIsMounted({ rerender, delay, }?: UseIsMountedProps): [() => boolean, boolean];
29
19
  type UseIsMountedReturn = ReturnType<typeof useIsMounted>;
30
- declare const getValidChildren: (children: React.ReactNode) => React.ReactElement[];
31
- declare const isValidElement: (child: any) => child is React.ReactNode;
32
- declare const findChildren: (children: React.ReactElement<any, string | React.JSXElementConstructor<any>>[], ...types: (string | React.JSXElementConstructor<any>)[]) => [React.ReactElement | undefined, ...React.ReactElement[]];
33
- declare const includesChildren: (children: React.ReactElement<any, string | React.JSXElementConstructor<any>>[], ...types: (string | React.JSXElementConstructor<any>)[]) => boolean;
34
- declare const omitChildren: (children: React.ReactElement<any, string | React.JSXElementConstructor<any>>[], ...types: (string | React.JSXElementConstructor<any>)[]) => React.ReactElement[];
35
- declare const pickChildren: (children: React.ReactElement<any, string | React.JSXElementConstructor<any>>[], ...types: (string | React.JSXElementConstructor<any>)[]) => React.ReactElement[];
36
- declare const cx: (...classNames: (string | undefined)[]) => string;
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 const isRefObject: (val: any) => val is {
28
+ declare function isRefObject(val: any): val is {
39
29
  current: any;
40
30
  };
41
- declare const assignRef: <T extends unknown = any>(ref: ReactRef<T> | undefined, value: T) => void;
42
- declare const mergeRefs: <T extends unknown = any>(...refs: (ReactRef<T> | null | undefined)[]) => (node: T | null) => void;
43
- declare const useMergeRefs: <T extends unknown = any>(...refs: (ReactRef<T> | undefined)[]) => (node: T | null) => void;
44
- declare const useCallbackRef: <T extends (...args: any[]) => any>(callback: T | undefined, deps?: React.DependencyList) => T;
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 const useUpdateEffect: (callback: React.EffectCallback, deps: React.DependencyList) => void;
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 const useAsync: <T extends FunctionReturningPromise>(func: T, deps?: React.DependencyList) => StateFromFunctionReturningPromise<T>;
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 const useAsyncFunc: <T extends FunctionReturningPromise>(func: T, deps?: React.DependencyList, initialState?: StateFromFunctionReturningPromise<T>) => AsyncFnReturn<T>;
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 const useAsyncRetry: <T>(func: () => Promise<T>, deps?: React.DependencyList) => {
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 const createId: (prefix: string) => string;
93
+ declare function createId(prefix: string): string;
104
94
 
105
- export { type AsyncFnReturn, type AsyncState, type AsyncStateRetry, type DOMAttributes, type FunctionReturningPromise, type MaybeRenderProp, type PromiseType, type PropGetter, type RequiredPropGetter, 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 };
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 };