radashi 12.1.0 → 12.2.0-beta.0dc9c8a

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 (48) hide show
  1. package/LICENSE.md +2 -1
  2. package/README.md +124 -17
  3. package/dist/radashi.cjs +1589 -0
  4. package/dist/radashi.d.cts +1212 -0
  5. package/dist/radashi.d.ts +1212 -0
  6. package/dist/radashi.js +1452 -0
  7. package/package.json +51 -40
  8. package/dist/cjs/array.cjs +0 -281
  9. package/dist/cjs/array.cjs.map +0 -1
  10. package/dist/cjs/async.cjs +0 -169
  11. package/dist/cjs/async.cjs.map +0 -1
  12. package/dist/cjs/curry.cjs +0 -113
  13. package/dist/cjs/curry.cjs.map +0 -1
  14. package/dist/cjs/index.cjs +0 -109
  15. package/dist/cjs/index.cjs.map +0 -1
  16. package/dist/cjs/number.cjs +0 -34
  17. package/dist/cjs/number.cjs.map +0 -1
  18. package/dist/cjs/object.cjs +0 -204
  19. package/dist/cjs/object.cjs.map +0 -1
  20. package/dist/cjs/random.cjs +0 -34
  21. package/dist/cjs/random.cjs.map +0 -1
  22. package/dist/cjs/series.cjs +0 -62
  23. package/dist/cjs/series.cjs.map +0 -1
  24. package/dist/cjs/string.cjs +0 -72
  25. package/dist/cjs/string.cjs.map +0 -1
  26. package/dist/cjs/typed.cjs +0 -104
  27. package/dist/cjs/typed.cjs.map +0 -1
  28. package/dist/esm/array.mjs +0 -251
  29. package/dist/esm/array.mjs.map +0 -1
  30. package/dist/esm/async.mjs +0 -158
  31. package/dist/esm/async.mjs.map +0 -1
  32. package/dist/esm/curry.mjs +0 -103
  33. package/dist/esm/curry.mjs.map +0 -1
  34. package/dist/esm/index.mjs +0 -10
  35. package/dist/esm/index.mjs.map +0 -1
  36. package/dist/esm/number.mjs +0 -30
  37. package/dist/esm/number.mjs.map +0 -1
  38. package/dist/esm/object.mjs +0 -186
  39. package/dist/esm/object.mjs.map +0 -1
  40. package/dist/esm/random.mjs +0 -29
  41. package/dist/esm/random.mjs.map +0 -1
  42. package/dist/esm/series.mjs +0 -60
  43. package/dist/esm/series.mjs.map +0 -1
  44. package/dist/esm/string.mjs +0 -63
  45. package/dist/esm/string.mjs.map +0 -1
  46. package/dist/esm/typed.mjs +0 -90
  47. package/dist/esm/typed.mjs.map +0 -1
  48. package/dist/index.d.ts +0 -682
@@ -1,60 +0,0 @@
1
- import { list } from './array.mjs';
2
-
3
- const series = (items, toKey = (item) => `${item}`) => {
4
- const { indexesByKey, itemsByIndex } = items.reduce(
5
- (acc, item, idx) => ({
6
- indexesByKey: {
7
- ...acc.indexesByKey,
8
- [toKey(item)]: idx
9
- },
10
- itemsByIndex: {
11
- ...acc.itemsByIndex,
12
- [idx]: item
13
- }
14
- }),
15
- {
16
- indexesByKey: {},
17
- itemsByIndex: {}
18
- }
19
- );
20
- const min = (a, b) => {
21
- return indexesByKey[toKey(a)] < indexesByKey[toKey(b)] ? a : b;
22
- };
23
- const max = (a, b) => {
24
- return indexesByKey[toKey(a)] > indexesByKey[toKey(b)] ? a : b;
25
- };
26
- const first = () => {
27
- return itemsByIndex[0];
28
- };
29
- const last = () => {
30
- return itemsByIndex[items.length - 1];
31
- };
32
- const next = (current, defaultValue) => {
33
- return itemsByIndex[indexesByKey[toKey(current)] + 1] ?? defaultValue ?? first();
34
- };
35
- const previous = (current, defaultValue) => {
36
- return itemsByIndex[indexesByKey[toKey(current)] - 1] ?? defaultValue ?? last();
37
- };
38
- const spin = (current, num) => {
39
- if (num === 0)
40
- return current;
41
- const abs = Math.abs(num);
42
- const rel = abs > items.length ? abs % items.length : abs;
43
- return list(0, rel - 1).reduce(
44
- (acc) => num > 0 ? next(acc) : previous(acc),
45
- current
46
- );
47
- };
48
- return {
49
- min,
50
- max,
51
- first,
52
- last,
53
- next,
54
- previous,
55
- spin
56
- };
57
- };
58
-
59
- export { series };
60
- //# sourceMappingURL=series.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"series.mjs","sources":["../../src/series.ts"],"sourcesContent":["import { list } from './array'\n\n/**\n * Creates a series object around a list of values\n * that should be treated with order.\n */\nexport const series = <T>(\n items: T[],\n toKey: (item: T) => string | symbol = item => `${item}`\n) => {\n const { indexesByKey, itemsByIndex } = items.reduce(\n (acc, item, idx) => ({\n indexesByKey: {\n ...acc.indexesByKey,\n [toKey(item)]: idx\n },\n itemsByIndex: {\n ...acc.itemsByIndex,\n [idx]: item\n }\n }),\n {\n indexesByKey: {} as Record<string | symbol, number>,\n itemsByIndex: {} as Record<number, T>\n }\n )\n /**\n * Given two values in the series, returns the\n * value that occurs earlier in the series\n */\n const min = (a: T, b: T): T => {\n return indexesByKey[toKey(a)] < indexesByKey[toKey(b)] ? a : b\n }\n /**\n * Given two values in the series, returns the\n * value that occurs later in the series\n */\n const max = (a: T, b: T): T => {\n return indexesByKey[toKey(a)] > indexesByKey[toKey(b)] ? a : b\n }\n /**\n * Returns the first item from the series\n */\n const first = (): T => {\n return itemsByIndex[0]\n }\n /**\n * Returns the last item in the series\n */\n const last = (): T => {\n return itemsByIndex[items.length - 1]\n }\n /**\n * Given an item in the series returns the next item\n * in the series or default if the given value is\n * the last item in the series\n */\n const next = (current: T, defaultValue?: T): T => {\n return (\n itemsByIndex[indexesByKey[toKey(current)] + 1] ?? defaultValue ?? first()\n )\n }\n /**\n * Given an item in the series returns the previous item\n * in the series or default if the given value is\n * the first item in the series\n */\n const previous = (current: T, defaultValue?: T): T => {\n return (\n itemsByIndex[indexesByKey[toKey(current)] - 1] ?? defaultValue ?? last()\n )\n }\n /**\n * A more dynamic method than next and previous that\n * lets you move many times in either direction.\n * @example series(weekdays).spin('wednesday', 3) => 'monday'\n * @example series(weekdays).spin('wednesday', -3) => 'friday'\n */\n const spin = (current: T, num: number): T => {\n if (num === 0) return current\n const abs = Math.abs(num)\n const rel = abs > items.length ? abs % items.length : abs\n return list(0, rel - 1).reduce(\n acc => (num > 0 ? next(acc) : previous(acc)),\n current\n )\n }\n return {\n min,\n max,\n first,\n last,\n next,\n previous,\n spin\n }\n}\n"],"names":[],"mappings":";;AAMO,MAAM,SAAS,CACpB,KAAA,EACA,KAAsC,GAAA,CAAA,IAAA,KAAQ,GAAG,IAC9C,CAAA,CAAA,KAAA;AACH,EAAA,MAAM,EAAE,YAAA,EAAc,YAAa,EAAA,GAAI,KAAM,CAAA,MAAA;AAAA,IAC3C,CAAC,GAAK,EAAA,IAAA,EAAM,GAAS,MAAA;AAAA,MACnB,YAAc,EAAA;AAAA,QACZ,GAAG,GAAI,CAAA,YAAA;AAAA,QACP,CAAC,KAAA,CAAM,IAAI,CAAC,GAAG,GAAA;AAAA,OACjB;AAAA,MACA,YAAc,EAAA;AAAA,QACZ,GAAG,GAAI,CAAA,YAAA;AAAA,QACP,CAAC,GAAG,GAAG,IAAA;AAAA,OACT;AAAA,KACF,CAAA;AAAA,IACA;AAAA,MACE,cAAc,EAAC;AAAA,MACf,cAAc,EAAC;AAAA,KACjB;AAAA,GACF,CAAA;AAKA,EAAM,MAAA,GAAA,GAAM,CAAC,CAAA,EAAM,CAAY,KAAA;AAC7B,IAAO,OAAA,YAAA,CAAa,KAAM,CAAA,CAAC,CAAC,CAAA,GAAI,aAAa,KAAM,CAAA,CAAC,CAAC,CAAA,GAAI,CAAI,GAAA,CAAA,CAAA;AAAA,GAC/D,CAAA;AAKA,EAAM,MAAA,GAAA,GAAM,CAAC,CAAA,EAAM,CAAY,KAAA;AAC7B,IAAO,OAAA,YAAA,CAAa,KAAM,CAAA,CAAC,CAAC,CAAA,GAAI,aAAa,KAAM,CAAA,CAAC,CAAC,CAAA,GAAI,CAAI,GAAA,CAAA,CAAA;AAAA,GAC/D,CAAA;AAIA,EAAA,MAAM,QAAQ,MAAS;AACrB,IAAA,OAAO,aAAa,CAAC,CAAA,CAAA;AAAA,GACvB,CAAA;AAIA,EAAA,MAAM,OAAO,MAAS;AACpB,IAAO,OAAA,YAAA,CAAa,KAAM,CAAA,MAAA,GAAS,CAAC,CAAA,CAAA;AAAA,GACtC,CAAA;AAMA,EAAM,MAAA,IAAA,GAAO,CAAC,OAAA,EAAY,YAAwB,KAAA;AAChD,IACE,OAAA,YAAA,CAAa,aAAa,KAAM,CAAA,OAAO,CAAC,CAAI,GAAA,CAAC,CAAK,IAAA,YAAA,IAAgB,KAAM,EAAA,CAAA;AAAA,GAE5E,CAAA;AAMA,EAAM,MAAA,QAAA,GAAW,CAAC,OAAA,EAAY,YAAwB,KAAA;AACpD,IACE,OAAA,YAAA,CAAa,aAAa,KAAM,CAAA,OAAO,CAAC,CAAI,GAAA,CAAC,CAAK,IAAA,YAAA,IAAgB,IAAK,EAAA,CAAA;AAAA,GAE3E,CAAA;AAOA,EAAM,MAAA,IAAA,GAAO,CAAC,OAAA,EAAY,GAAmB,KAAA;AAC3C,IAAA,IAAI,GAAQ,KAAA,CAAA;AAAG,MAAO,OAAA,OAAA,CAAA;AACtB,IAAM,MAAA,GAAA,GAAM,IAAK,CAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AACxB,IAAA,MAAM,MAAM,GAAM,GAAA,KAAA,CAAM,MAAS,GAAA,GAAA,GAAM,MAAM,MAAS,GAAA,GAAA,CAAA;AACtD,IAAA,OAAO,IAAK,CAAA,CAAA,EAAG,GAAM,GAAA,CAAC,CAAE,CAAA,MAAA;AAAA,MACtB,SAAQ,GAAM,GAAA,CAAA,GAAI,KAAK,GAAG,CAAA,GAAI,SAAS,GAAG,CAAA;AAAA,MAC1C,OAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA;AAAA,IACL,GAAA;AAAA,IACA,GAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,GACF,CAAA;AACF;;;;"}
@@ -1,63 +0,0 @@
1
- const capitalize = (str) => {
2
- if (!str || str.length === 0)
3
- return "";
4
- const lower = str.toLowerCase();
5
- return lower.substring(0, 1).toUpperCase() + lower.substring(1, lower.length);
6
- };
7
- const camel = (str) => {
8
- const parts = str?.replace(/([A-Z])+/g, capitalize)?.split(/(?=[A-Z])|[\.\-\s_]/).map((x) => x.toLowerCase()) ?? [];
9
- if (parts.length === 0)
10
- return "";
11
- if (parts.length === 1)
12
- return parts[0];
13
- return parts.reduce((acc, part) => {
14
- return `${acc}${part.charAt(0).toUpperCase()}${part.slice(1)}`;
15
- });
16
- };
17
- const snake = (str, options) => {
18
- const parts = str?.replace(/([A-Z])+/g, capitalize).split(/(?=[A-Z])|[\.\-\s_]/).map((x) => x.toLowerCase()) ?? [];
19
- if (parts.length === 0)
20
- return "";
21
- if (parts.length === 1)
22
- return parts[0];
23
- const result = parts.reduce((acc, part) => {
24
- return `${acc}_${part.toLowerCase()}`;
25
- });
26
- return options?.splitOnNumber === false ? result : result.replace(/([A-Za-z]{1}[0-9]{1})/, (val) => `${val[0]}_${val[1]}`);
27
- };
28
- const dash = (str) => {
29
- const parts = str?.replace(/([A-Z])+/g, capitalize)?.split(/(?=[A-Z])|[\.\-\s_]/).map((x) => x.toLowerCase()) ?? [];
30
- if (parts.length === 0)
31
- return "";
32
- if (parts.length === 1)
33
- return parts[0];
34
- return parts.reduce((acc, part) => {
35
- return `${acc}-${part.toLowerCase()}`;
36
- });
37
- };
38
- const pascal = (str) => {
39
- const parts = str?.split(/[\.\-\s_]/).map((x) => x.toLowerCase()) ?? [];
40
- if (parts.length === 0)
41
- return "";
42
- return parts.map((str2) => str2.charAt(0).toUpperCase() + str2.slice(1)).join("");
43
- };
44
- const title = (str) => {
45
- if (!str)
46
- return "";
47
- return str.split(/(?=[A-Z])|[\.\-\s_]/).map((s) => s.trim()).filter((s) => !!s).map((s) => capitalize(s.toLowerCase())).join(" ");
48
- };
49
- const template = (str, data, regex = /\{\{(.+?)\}\}/g) => {
50
- return Array.from(str.matchAll(regex)).reduce((acc, match) => {
51
- return acc.replace(match[0], data[match[1]]);
52
- }, str);
53
- };
54
- const trim = (str, charsToTrim = " ") => {
55
- if (!str)
56
- return "";
57
- const toTrim = charsToTrim.replace(/[\W]{1}/g, "\\$&");
58
- const regex = new RegExp(`^[${toTrim}]+|[${toTrim}]+$`, "g");
59
- return str.replace(regex, "");
60
- };
61
-
62
- export { camel, capitalize, dash, pascal, snake, template, title, trim };
63
- //# sourceMappingURL=string.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string.mjs","sources":["../../src/string.ts"],"sourcesContent":["/**\n * Capitalize the first word of the string\n *\n * capitalize('hello') -> 'Hello'\n * capitalize('va va voom') -> 'Va va voom'\n */\nexport const capitalize = (str: string): string => {\n if (!str || str.length === 0) return ''\n const lower = str.toLowerCase()\n return lower.substring(0, 1).toUpperCase() + lower.substring(1, lower.length)\n}\n\n/**\n * Formats the given string in camel case fashion\n *\n * camel('hello world') -> 'helloWorld'\n * camel('va va-VOOM') -> 'vaVaVoom'\n * camel('helloWorld') -> 'helloWorld'\n */\nexport const camel = (str: string): string => {\n const parts =\n str\n ?.replace(/([A-Z])+/g, capitalize)\n ?.split(/(?=[A-Z])|[\\.\\-\\s_]/)\n .map(x => x.toLowerCase()) ?? []\n if (parts.length === 0) return ''\n if (parts.length === 1) return parts[0]\n return parts.reduce((acc, part) => {\n return `${acc}${part.charAt(0).toUpperCase()}${part.slice(1)}`\n })\n}\n\n/**\n * Formats the given string in snake case fashion\n *\n * snake('hello world') -> 'hello_world'\n * snake('va va-VOOM') -> 'va_va_voom'\n * snake('helloWord') -> 'hello_world'\n */\nexport const snake = (\n str: string,\n options?: {\n splitOnNumber?: boolean\n }\n): string => {\n const parts =\n str\n ?.replace(/([A-Z])+/g, capitalize)\n .split(/(?=[A-Z])|[\\.\\-\\s_]/)\n .map(x => x.toLowerCase()) ?? []\n if (parts.length === 0) return ''\n if (parts.length === 1) return parts[0]\n const result = parts.reduce((acc, part) => {\n return `${acc}_${part.toLowerCase()}`\n })\n return options?.splitOnNumber === false\n ? result\n : result.replace(/([A-Za-z]{1}[0-9]{1})/, val => `${val[0]!}_${val[1]!}`)\n}\n\n/**\n * Formats the given string in dash case fashion\n *\n * dash('hello world') -> 'hello-world'\n * dash('va va_VOOM') -> 'va-va-voom'\n * dash('helloWord') -> 'hello-word'\n */\nexport const dash = (str: string): string => {\n const parts =\n str\n ?.replace(/([A-Z])+/g, capitalize)\n ?.split(/(?=[A-Z])|[\\.\\-\\s_]/)\n .map(x => x.toLowerCase()) ?? []\n if (parts.length === 0) return ''\n if (parts.length === 1) return parts[0]\n return parts.reduce((acc, part) => {\n return `${acc}-${part.toLowerCase()}`\n })\n}\n\n/**\n * Formats the given string in pascal case fashion\n *\n * pascal('hello world') -> 'HelloWorld'\n * pascal('va va boom') -> 'VaVaBoom'\n */\nexport const pascal = (str: string): string => {\n const parts = str?.split(/[\\.\\-\\s_]/).map(x => x.toLowerCase()) ?? []\n if (parts.length === 0) return ''\n return parts.map(str => str.charAt(0).toUpperCase() + str.slice(1)).join('')\n}\n\n/**\n * Formats the given string in title case fashion\n *\n * title('hello world') -> 'Hello World'\n * title('va_va_boom') -> 'Va Va Boom'\n * title('root-hook') -> 'Root Hook'\n * title('queryItems') -> 'Query Items'\n */\nexport const title = (str: string | null | undefined): string => {\n if (!str) return ''\n return str\n .split(/(?=[A-Z])|[\\.\\-\\s_]/)\n .map(s => s.trim())\n .filter(s => !!s)\n .map(s => capitalize(s.toLowerCase()))\n .join(' ')\n}\n\n/**\n * template is used to replace data by name in template strings.\n * The default expression looks for {{name}} to identify names.\n *\n * Ex. template('Hello, {{name}}', { name: 'ray' })\n * Ex. template('Hello, <name>', { name: 'ray' }, /<(.+?)>/g)\n */\nexport const template = (\n str: string,\n data: Record<string, any>,\n regex = /\\{\\{(.+?)\\}\\}/g\n) => {\n return Array.from(str.matchAll(regex)).reduce((acc, match) => {\n return acc.replace(match[0], data[match[1]])\n }, str)\n}\n\n/**\n * Trims all prefix and suffix characters from the given\n * string. Like the builtin trim function but accepts\n * other characters you would like to trim and trims\n * multiple characters.\n *\n * ```typescript\n * trim(' hello ') // => 'hello'\n * trim('__hello__', '_') // => 'hello'\n * trim('/repos/:owner/:repo/', '/') // => 'repos/:owner/:repo'\n * trim('222222__hello__1111111', '12_') // => 'hello'\n * ```\n */\nexport const trim = (\n str: string | null | undefined,\n charsToTrim: string = ' '\n) => {\n if (!str) return ''\n const toTrim = charsToTrim.replace(/[\\W]{1}/g, '\\\\$&')\n const regex = new RegExp(`^[${toTrim}]+|[${toTrim}]+$`, 'g')\n return str.replace(regex, '')\n}\n"],"names":["str"],"mappings":"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"}
@@ -1,90 +0,0 @@
1
- const isSymbol = (value) => {
2
- return !!value && value.constructor === Symbol;
3
- };
4
- const isArray = Array.isArray;
5
- const isObject = (value) => {
6
- return !!value && value.constructor === Object;
7
- };
8
- const isPrimitive = (value) => {
9
- return value === void 0 || value === null || typeof value !== "object" && typeof value !== "function";
10
- };
11
- const isFunction = (value) => {
12
- return !!(value && value.constructor && value.call && value.apply);
13
- };
14
- const isString = (value) => {
15
- return typeof value === "string" || value instanceof String;
16
- };
17
- const isInt = (value) => {
18
- return isNumber(value) && value % 1 === 0;
19
- };
20
- const isFloat = (value) => {
21
- return isNumber(value) && value % 1 !== 0;
22
- };
23
- const isNumber = (value) => {
24
- try {
25
- return Number(value) === value;
26
- } catch {
27
- return false;
28
- }
29
- };
30
- const isDate = (value) => {
31
- return Object.prototype.toString.call(value) === "[object Date]";
32
- };
33
- const isPromise = (value) => {
34
- if (!value)
35
- return false;
36
- if (!value.then)
37
- return false;
38
- if (!isFunction(value.then))
39
- return false;
40
- return true;
41
- };
42
- const isEmpty = (value) => {
43
- if (value === true || value === false)
44
- return true;
45
- if (value === null || value === void 0)
46
- return true;
47
- if (isNumber(value))
48
- return value === 0;
49
- if (isDate(value))
50
- return isNaN(value.getTime());
51
- if (isFunction(value))
52
- return false;
53
- if (isSymbol(value))
54
- return false;
55
- const length = value.length;
56
- if (isNumber(length))
57
- return length === 0;
58
- const size = value.size;
59
- if (isNumber(size))
60
- return size === 0;
61
- const keys = Object.keys(value).length;
62
- return keys === 0;
63
- };
64
- const isEqual = (x, y) => {
65
- if (Object.is(x, y))
66
- return true;
67
- if (x instanceof Date && y instanceof Date) {
68
- return x.getTime() === y.getTime();
69
- }
70
- if (x instanceof RegExp && y instanceof RegExp) {
71
- return x.toString() === y.toString();
72
- }
73
- if (typeof x !== "object" || x === null || typeof y !== "object" || y === null) {
74
- return false;
75
- }
76
- const keysX = Reflect.ownKeys(x);
77
- const keysY = Reflect.ownKeys(y);
78
- if (keysX.length !== keysY.length)
79
- return false;
80
- for (let i = 0; i < keysX.length; i++) {
81
- if (!Reflect.has(y, keysX[i]))
82
- return false;
83
- if (!isEqual(x[keysX[i]], y[keysX[i]]))
84
- return false;
85
- }
86
- return true;
87
- };
88
-
89
- export { isArray, isDate, isEmpty, isEqual, isFloat, isFunction, isInt, isNumber, isObject, isPrimitive, isPromise, isString, isSymbol };
90
- //# sourceMappingURL=typed.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typed.mjs","sources":["../../src/typed.ts"],"sourcesContent":["export const isSymbol = (value: any): value is symbol => {\n return !!value && value.constructor === Symbol\n}\n\nexport const isArray = Array.isArray\n\nexport const isObject = (value: any): value is object => {\n return !!value && value.constructor === Object\n}\n\n/**\n * Checks if the given value is primitive.\n *\n * Primitive Types: number , string , boolean , symbol, bigint, undefined, null\n *\n * @param {*} value value to check\n * @returns {boolean} result\n */\nexport const isPrimitive = (value: any): boolean => {\n return (\n value === undefined ||\n value === null ||\n (typeof value !== 'object' && typeof value !== 'function')\n )\n}\n\nexport const isFunction = (value: any): value is Function => {\n return !!(value && value.constructor && value.call && value.apply)\n}\n\nexport const isString = (value: any): value is string => {\n return typeof value === 'string' || value instanceof String\n}\n\nexport const isInt = (value: any): value is number => {\n return isNumber(value) && value % 1 === 0\n}\n\nexport const isFloat = (value: any): value is number => {\n return isNumber(value) && value % 1 !== 0\n}\n\nexport const isNumber = (value: any): value is number => {\n try {\n return Number(value) === value\n } catch {\n return false\n }\n}\n\nexport const isDate = (value: any): value is Date => {\n return Object.prototype.toString.call(value) === '[object Date]'\n}\n\n/**\n * This is really a _best guess_ promise checking. You\n * should probably use Promise.resolve(value) to be 100%\n * sure you're handling it correctly.\n */\nexport const isPromise = (value: any): value is Promise<any> => {\n if (!value) return false\n if (!value.then) return false\n if (!isFunction(value.then)) return false\n return true\n}\n\nexport const isEmpty = (value: any) => {\n if (value === true || value === false) return true\n if (value === null || value === undefined) return true\n if (isNumber(value)) return value === 0\n if (isDate(value)) return isNaN(value.getTime())\n if (isFunction(value)) return false\n if (isSymbol(value)) return false\n const length = (value as any).length\n if (isNumber(length)) return length === 0\n const size = (value as any).size\n if (isNumber(size)) return size === 0\n const keys = Object.keys(value).length\n return keys === 0\n}\n\nexport const isEqual = <TType>(x: TType, y: TType): boolean => {\n if (Object.is(x, y)) return true\n if (x instanceof Date && y instanceof Date) {\n return x.getTime() === y.getTime()\n }\n if (x instanceof RegExp && y instanceof RegExp) {\n return x.toString() === y.toString()\n }\n if (\n typeof x !== 'object' ||\n x === null ||\n typeof y !== 'object' ||\n y === null\n ) {\n return false\n }\n const keysX = Reflect.ownKeys(x as unknown as object) as (keyof typeof x)[]\n const keysY = Reflect.ownKeys(y as unknown as object)\n if (keysX.length !== keysY.length) return false\n for (let i = 0; i < keysX.length; i++) {\n if (!Reflect.has(y as unknown as object, keysX[i])) return false\n if (!isEqual(x[keysX[i]], y[keysX[i]])) return false\n }\n return true\n}\n"],"names":[],"mappings":"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"}