@zag-js/utils 0.69.0 → 0.71.0
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/index.js +46 -116
- package/dist/index.mjs +2 -47
- package/package.json +2 -3
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/src/array.ts +0 -70
- package/src/equal.ts +0 -44
- package/src/functions.ts +0 -58
- package/src/guard.ts +0 -24
- package/src/index.ts +0 -7
- package/src/object.ts +0 -42
- package/src/split-props.ts +0 -24
- package/src/warning.ts +0 -19
package/dist/index.js
CHANGED
|
@@ -1,71 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/index.ts
|
|
21
|
-
var src_exports = {};
|
|
22
|
-
__export(src_exports, {
|
|
23
|
-
add: () => add,
|
|
24
|
-
addOrRemove: () => addOrRemove,
|
|
25
|
-
callAll: () => callAll,
|
|
26
|
-
cast: () => cast,
|
|
27
|
-
chunk: () => chunk,
|
|
28
|
-
clear: () => clear,
|
|
29
|
-
compact: () => compact,
|
|
30
|
-
createSplitProps: () => createSplitProps,
|
|
31
|
-
first: () => first,
|
|
32
|
-
fromLength: () => fromLength,
|
|
33
|
-
has: () => has,
|
|
34
|
-
hasProp: () => hasProp,
|
|
35
|
-
invariant: () => invariant,
|
|
36
|
-
isArray: () => isArray,
|
|
37
|
-
isBoolean: () => isBoolean,
|
|
38
|
-
isDev: () => isDev,
|
|
39
|
-
isEmpty: () => isEmpty,
|
|
40
|
-
isEqual: () => isEqual,
|
|
41
|
-
isFunction: () => isFunction,
|
|
42
|
-
isNull: () => isNull,
|
|
43
|
-
isNumber: () => isNumber,
|
|
44
|
-
isObject: () => isObject,
|
|
45
|
-
isObjectLike: () => isObjectLike,
|
|
46
|
-
isPlainObject: () => isPlainObject,
|
|
47
|
-
isString: () => isString,
|
|
48
|
-
json: () => json,
|
|
49
|
-
last: () => last,
|
|
50
|
-
match: () => match,
|
|
51
|
-
next: () => next,
|
|
52
|
-
nextIndex: () => nextIndex,
|
|
53
|
-
noop: () => noop,
|
|
54
|
-
omit: () => omit,
|
|
55
|
-
pick: () => pick,
|
|
56
|
-
prev: () => prev,
|
|
57
|
-
prevIndex: () => prevIndex,
|
|
58
|
-
remove: () => remove,
|
|
59
|
-
removeAt: () => removeAt,
|
|
60
|
-
runIfFn: () => runIfFn,
|
|
61
|
-
splitProps: () => splitProps,
|
|
62
|
-
toArray: () => toArray,
|
|
63
|
-
tryCatch: () => tryCatch,
|
|
64
|
-
uniq: () => uniq,
|
|
65
|
-
uuid: () => uuid,
|
|
66
|
-
warn: () => warn
|
|
67
|
-
});
|
|
68
|
-
module.exports = __toCommonJS(src_exports);
|
|
1
|
+
'use strict';
|
|
69
2
|
|
|
70
3
|
// src/array.ts
|
|
71
4
|
function toArray(v) {
|
|
@@ -285,51 +218,48 @@ function invariant(...a) {
|
|
|
285
218
|
throw new Error(m);
|
|
286
219
|
}
|
|
287
220
|
}
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
warn
|
|
334
|
-
});
|
|
335
|
-
//# sourceMappingURL=index.js.map
|
|
221
|
+
|
|
222
|
+
exports.add = add;
|
|
223
|
+
exports.addOrRemove = addOrRemove;
|
|
224
|
+
exports.callAll = callAll;
|
|
225
|
+
exports.cast = cast;
|
|
226
|
+
exports.chunk = chunk;
|
|
227
|
+
exports.clear = clear;
|
|
228
|
+
exports.compact = compact;
|
|
229
|
+
exports.createSplitProps = createSplitProps;
|
|
230
|
+
exports.first = first;
|
|
231
|
+
exports.fromLength = fromLength;
|
|
232
|
+
exports.has = has;
|
|
233
|
+
exports.hasProp = hasProp;
|
|
234
|
+
exports.invariant = invariant;
|
|
235
|
+
exports.isArray = isArray;
|
|
236
|
+
exports.isBoolean = isBoolean;
|
|
237
|
+
exports.isDev = isDev;
|
|
238
|
+
exports.isEmpty = isEmpty;
|
|
239
|
+
exports.isEqual = isEqual;
|
|
240
|
+
exports.isFunction = isFunction;
|
|
241
|
+
exports.isNull = isNull;
|
|
242
|
+
exports.isNumber = isNumber;
|
|
243
|
+
exports.isObject = isObject;
|
|
244
|
+
exports.isObjectLike = isObjectLike;
|
|
245
|
+
exports.isPlainObject = isPlainObject;
|
|
246
|
+
exports.isString = isString;
|
|
247
|
+
exports.json = json;
|
|
248
|
+
exports.last = last;
|
|
249
|
+
exports.match = match;
|
|
250
|
+
exports.next = next;
|
|
251
|
+
exports.nextIndex = nextIndex;
|
|
252
|
+
exports.noop = noop;
|
|
253
|
+
exports.omit = omit;
|
|
254
|
+
exports.pick = pick;
|
|
255
|
+
exports.prev = prev;
|
|
256
|
+
exports.prevIndex = prevIndex;
|
|
257
|
+
exports.remove = remove;
|
|
258
|
+
exports.removeAt = removeAt;
|
|
259
|
+
exports.runIfFn = runIfFn;
|
|
260
|
+
exports.splitProps = splitProps;
|
|
261
|
+
exports.toArray = toArray;
|
|
262
|
+
exports.tryCatch = tryCatch;
|
|
263
|
+
exports.uniq = uniq;
|
|
264
|
+
exports.uuid = uuid;
|
|
265
|
+
exports.warn = warn;
|
package/dist/index.mjs
CHANGED
|
@@ -216,50 +216,5 @@ function invariant(...a) {
|
|
|
216
216
|
throw new Error(m);
|
|
217
217
|
}
|
|
218
218
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
addOrRemove,
|
|
222
|
-
callAll,
|
|
223
|
-
cast,
|
|
224
|
-
chunk,
|
|
225
|
-
clear,
|
|
226
|
-
compact,
|
|
227
|
-
createSplitProps,
|
|
228
|
-
first,
|
|
229
|
-
fromLength,
|
|
230
|
-
has,
|
|
231
|
-
hasProp,
|
|
232
|
-
invariant,
|
|
233
|
-
isArray,
|
|
234
|
-
isBoolean,
|
|
235
|
-
isDev,
|
|
236
|
-
isEmpty,
|
|
237
|
-
isEqual,
|
|
238
|
-
isFunction,
|
|
239
|
-
isNull,
|
|
240
|
-
isNumber,
|
|
241
|
-
isObject,
|
|
242
|
-
isObjectLike,
|
|
243
|
-
isPlainObject,
|
|
244
|
-
isString,
|
|
245
|
-
json,
|
|
246
|
-
last,
|
|
247
|
-
match,
|
|
248
|
-
next,
|
|
249
|
-
nextIndex,
|
|
250
|
-
noop,
|
|
251
|
-
omit,
|
|
252
|
-
pick,
|
|
253
|
-
prev,
|
|
254
|
-
prevIndex,
|
|
255
|
-
remove,
|
|
256
|
-
removeAt,
|
|
257
|
-
runIfFn,
|
|
258
|
-
splitProps,
|
|
259
|
-
toArray,
|
|
260
|
-
tryCatch,
|
|
261
|
-
uniq,
|
|
262
|
-
uuid,
|
|
263
|
-
warn
|
|
264
|
-
};
|
|
265
|
-
//# sourceMappingURL=index.mjs.map
|
|
219
|
+
|
|
220
|
+
export { add, addOrRemove, callAll, cast, chunk, clear, compact, createSplitProps, first, fromLength, has, hasProp, invariant, isArray, isBoolean, isDev, isEmpty, isEqual, isFunction, isNull, isNumber, isObject, isObjectLike, isPlainObject, isString, json, last, match, next, nextIndex, noop, omit, pick, prev, prevIndex, remove, removeAt, runIfFn, splitProps, toArray, tryCatch, uniq, uuid, warn };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zag-js/utils",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.71.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"js",
|
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
"repository": "https://github.com/chakra-ui/zag/tree/main/packages/utilities/core",
|
|
14
14
|
"sideEffects": false,
|
|
15
15
|
"files": [
|
|
16
|
-
"dist"
|
|
17
|
-
"src"
|
|
16
|
+
"dist"
|
|
18
17
|
],
|
|
19
18
|
"publishConfig": {
|
|
20
19
|
"access": "public"
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/array.ts","../src/equal.ts","../src/functions.ts","../src/guard.ts","../src/split-props.ts","../src/object.ts","../src/warning.ts"],"sourcesContent":["export * from \"./array\"\nexport * from \"./equal\"\nexport * from \"./functions\"\nexport * from \"./guard\"\nexport * from \"./object\"\nexport * from \"./split-props\"\nexport * from \"./warning\"\n","export function toArray<T>(v: T | T[] | undefined | null): T[] {\n if (!v) return []\n return Array.isArray(v) ? v : [v]\n}\n\nexport const fromLength = (length: number) => Array.from(Array(length).keys())\n\nexport const first = <T>(v: T[]): T | undefined => v[0]\n\nexport const last = <T>(v: T[]): T | undefined => v[v.length - 1]\n\nexport const isEmpty = <T>(v: T[]): boolean => v.length === 0\n\nexport const has = <T>(v: T[], t: any): boolean => v.indexOf(t) !== -1\n\nexport const add = <T>(v: T[], ...items: T[]): T[] => v.concat(items)\n\nexport const remove = <T>(v: T[], item: T): T[] => v.filter((t) => t !== item)\n\nexport const removeAt = <T>(v: T[], i: number): T[] => v.filter((_, idx) => idx !== i)\n\nexport const uniq = <T>(v: T[]): T[] => Array.from(new Set(v))\n\nexport const addOrRemove = <T>(v: T[], item: T): T[] => {\n if (has(v, item)) return remove(v, item)\n return add(v, item)\n}\n\nexport function clear<T>(v: T[]): T[] {\n while (v.length > 0) v.pop()\n return v\n}\n\nexport type IndexOptions = {\n step?: number\n loop?: boolean\n}\n\nexport function nextIndex<T>(v: T[], idx: number, opts: IndexOptions = {}): number {\n const { step = 1, loop = true } = opts\n const next = idx + step\n const len = v.length\n const last = len - 1\n if (idx === -1) return step > 0 ? 0 : last\n if (next < 0) return loop ? last : 0\n if (next >= len) return loop ? 0 : idx > len ? len : idx\n return next\n}\n\nexport function next<T>(v: T[], idx: number, opts: IndexOptions = {}): T | undefined {\n return v[nextIndex(v, idx, opts)]\n}\n\nexport function prevIndex<T>(v: T[], idx: number, opts: IndexOptions = {}): number {\n const { step = 1, loop = true } = opts\n return nextIndex(v, idx, { step: -step, loop })\n}\n\nexport function prev<T>(v: T[], index: number, opts: IndexOptions = {}): T | undefined {\n return v[prevIndex(v, index, opts)]\n}\n\nexport const chunk = <T>(v: T[], size: number): T[][] => {\n const res: T[][] = []\n return v.reduce((rows, value, index) => {\n if (index % size === 0) rows.push([value])\n else last(rows)?.push(value)\n return rows\n }, res)\n}\n","const isArrayLike = (value: any) => value?.constructor.name === \"Array\"\n\nconst isArrayEqual = (a: any[], b: any[]): boolean => {\n if (a.length !== b.length) return false\n for (let i = 0; i < a.length; i++) {\n if (!isEqual(a[i], b[i])) return false\n }\n return true\n}\n\nexport const isEqual = (a: any, b: any): boolean => {\n if (Object.is(a, b)) return true\n\n if ((a == null && b != null) || (a != null && b == null)) return false\n\n if (typeof a?.isEqual === \"function\" && typeof b?.isEqual === \"function\") {\n return a.isEqual(b)\n }\n\n if (typeof a === \"function\" && typeof b === \"function\") {\n return a.toString() === b.toString()\n }\n\n if (isArrayLike(a) && isArrayLike(b)) {\n return isArrayEqual(Array.from(a), Array.from(b))\n }\n\n if (!(typeof a === \"object\") || !(typeof b === \"object\")) return false\n\n const keys = Object.keys(b ?? Object.create(null))\n const length = keys.length\n\n for (let i = 0; i < length; i++) {\n const hasKey = Reflect.has(a, keys[i])\n if (!hasKey) return false\n }\n\n for (let i = 0; i < length; i++) {\n const key = keys[i]\n if (!isEqual(a[key], b[key])) return false\n }\n\n return true\n}\n","export type MaybeFunction<T> = T | (() => T)\n\nexport type Nullable<T> = T | null | undefined\n\nexport const runIfFn = <T>(\n v: T | undefined,\n ...a: T extends (...a: any[]) => void ? Parameters<T> : never\n): T extends (...a: any[]) => void ? NonNullable<ReturnType<T>> : NonNullable<T> => {\n const res = typeof v === \"function\" ? v(...a) : v\n return res ?? undefined\n}\n\nexport const cast = <T>(v: unknown): T => v as T\n\nexport const noop = () => {}\n\nexport const callAll =\n <T extends (...a: any[]) => void>(...fns: (T | undefined)[]) =>\n (...a: Parameters<T>) => {\n fns.forEach(function (fn) {\n fn?.(...a)\n })\n }\n\nexport const uuid = /*#__PURE__*/ (() => {\n let id = 0\n return () => {\n id++\n return id.toString(36)\n }\n})()\n\nexport function match<V extends string | number = string, R = unknown>(\n key: V,\n record: Record<V, R | ((...args: any[]) => R)>,\n ...args: any[]\n): R {\n if (key in record) {\n const fn = record[key]\n return typeof fn === \"function\" ? fn(...args) : fn\n }\n\n const error = new Error(`No matching key: ${JSON.stringify(key)} in ${JSON.stringify(Object.keys(record))}`)\n Error.captureStackTrace?.(error, match)\n\n throw error\n}\n\nexport const tryCatch = <R>(fn: () => R, fallback: () => R) => {\n try {\n return fn()\n } catch (error) {\n if (error instanceof Error) {\n Error.captureStackTrace?.(error, tryCatch)\n }\n return fallback?.()\n }\n}\n","export const isDev = () => process.env.NODE_ENV !== \"production\"\nexport const isArray = (v: any): v is any[] => Array.isArray(v)\nexport const isBoolean = (v: any): v is boolean => v === true || v === false\nexport const isObjectLike = (v: any): v is Record<string, any> => v != null && typeof v === \"object\"\nexport const isObject = (v: any): v is Record<string, any> => isObjectLike(v) && !isArray(v)\nexport const isNumber = (v: any): v is number => typeof v === \"number\" && !Number.isNaN(v)\nexport const isString = (v: any): v is string => typeof v === \"string\"\nexport const isFunction = (v: any): v is Function => typeof v === \"function\"\nexport const isNull = (v: any): v is null | undefined => v == null\n\nexport const hasProp = <T extends string>(obj: any, prop: T): obj is Record<T, any> =>\n Object.prototype.hasOwnProperty.call(obj, prop)\n\nconst baseGetTag = (v: any) => Object.prototype.toString.call(v)\nconst fnToString = Function.prototype.toString\nconst objectCtorString = fnToString.call(Object)\n\nexport const isPlainObject = (v: any) => {\n if (!isObjectLike(v) || baseGetTag(v) != \"[object Object]\") return false\n const proto = Object.getPrototypeOf(v)\n if (proto === null) return true\n const Ctor = hasProp(proto, \"constructor\") && proto.constructor\n return typeof Ctor == \"function\" && Ctor instanceof Ctor && fnToString.call(Ctor) == objectCtorString\n}\n","type Dict = Record<string, any>\n\nexport function splitProps<T extends Dict>(props: T, keys: (keyof T)[]) {\n const rest: Dict = {}\n const result: Dict = {}\n\n const keySet = new Set(keys)\n\n for (const key in props) {\n if (keySet.has(key)) {\n result[key] = props[key]\n } else {\n rest[key] = props[key]\n }\n }\n\n return [result, rest]\n}\n\nexport const createSplitProps = <T extends Dict>(keys: (keyof T)[]) => {\n return function split<Props extends T>(props: Props) {\n return splitProps(props, keys) as [T, Omit<Props, keyof T>]\n }\n}\n","import { createSplitProps } from \"./split-props\"\n\nexport function compact<T extends Record<string, unknown> | undefined>(obj: T): T {\n if (!isPlainObject(obj) || obj === undefined) {\n return obj\n }\n\n const keys = Reflect.ownKeys(obj).filter((key) => typeof key === \"string\")\n const filtered: Partial<T> = {}\n for (const key of keys) {\n const value = (obj as any)[key]\n if (value !== undefined) {\n filtered[key as keyof T] = compact(value)\n }\n }\n return filtered as T\n}\n\nexport function json(value: any) {\n return JSON.parse(JSON.stringify(value))\n}\n\nconst isPlainObject = (value: any) => {\n return value && typeof value === \"object\" && value.constructor === Object\n}\n\nexport function pick<T extends Record<string, any>, K extends keyof T>(obj: T, keys: K[]): Pick<T, K> {\n const filtered: Partial<T> = {}\n\n for (const key of keys) {\n const value = obj[key]\n if (value !== undefined) {\n filtered[key] = value\n }\n }\n\n return filtered as any\n}\n\nexport function omit<T extends Record<string, any>>(obj: T, keys: string[]) {\n return createSplitProps(keys)(obj)[1]\n}\n","export function warn(m: string): void\nexport function warn(c: boolean, m: string): void\nexport function warn(...a: any[]): void {\n const m = a.length === 1 ? a[0] : a[1]\n const c = a.length === 2 ? a[0] : true\n if (c && process.env.NODE_ENV !== \"production\") {\n console.warn(m)\n }\n}\n\nexport function invariant(m: string): void\nexport function invariant(c: boolean, m: string): void\nexport function invariant(...a: any[]): void {\n const m = a.length === 1 ? a[0] : a[1]\n const c = a.length === 2 ? a[0] : true\n if (c && process.env.NODE_ENV !== \"production\") {\n throw new Error(m)\n }\n}\n"],"mappings":"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","names":["next","last","isPlainObject"]}
|
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/array.ts","../src/equal.ts","../src/functions.ts","../src/guard.ts","../src/split-props.ts","../src/object.ts","../src/warning.ts"],"sourcesContent":["export function toArray<T>(v: T | T[] | undefined | null): T[] {\n if (!v) return []\n return Array.isArray(v) ? v : [v]\n}\n\nexport const fromLength = (length: number) => Array.from(Array(length).keys())\n\nexport const first = <T>(v: T[]): T | undefined => v[0]\n\nexport const last = <T>(v: T[]): T | undefined => v[v.length - 1]\n\nexport const isEmpty = <T>(v: T[]): boolean => v.length === 0\n\nexport const has = <T>(v: T[], t: any): boolean => v.indexOf(t) !== -1\n\nexport const add = <T>(v: T[], ...items: T[]): T[] => v.concat(items)\n\nexport const remove = <T>(v: T[], item: T): T[] => v.filter((t) => t !== item)\n\nexport const removeAt = <T>(v: T[], i: number): T[] => v.filter((_, idx) => idx !== i)\n\nexport const uniq = <T>(v: T[]): T[] => Array.from(new Set(v))\n\nexport const addOrRemove = <T>(v: T[], item: T): T[] => {\n if (has(v, item)) return remove(v, item)\n return add(v, item)\n}\n\nexport function clear<T>(v: T[]): T[] {\n while (v.length > 0) v.pop()\n return v\n}\n\nexport type IndexOptions = {\n step?: number\n loop?: boolean\n}\n\nexport function nextIndex<T>(v: T[], idx: number, opts: IndexOptions = {}): number {\n const { step = 1, loop = true } = opts\n const next = idx + step\n const len = v.length\n const last = len - 1\n if (idx === -1) return step > 0 ? 0 : last\n if (next < 0) return loop ? last : 0\n if (next >= len) return loop ? 0 : idx > len ? len : idx\n return next\n}\n\nexport function next<T>(v: T[], idx: number, opts: IndexOptions = {}): T | undefined {\n return v[nextIndex(v, idx, opts)]\n}\n\nexport function prevIndex<T>(v: T[], idx: number, opts: IndexOptions = {}): number {\n const { step = 1, loop = true } = opts\n return nextIndex(v, idx, { step: -step, loop })\n}\n\nexport function prev<T>(v: T[], index: number, opts: IndexOptions = {}): T | undefined {\n return v[prevIndex(v, index, opts)]\n}\n\nexport const chunk = <T>(v: T[], size: number): T[][] => {\n const res: T[][] = []\n return v.reduce((rows, value, index) => {\n if (index % size === 0) rows.push([value])\n else last(rows)?.push(value)\n return rows\n }, res)\n}\n","const isArrayLike = (value: any) => value?.constructor.name === \"Array\"\n\nconst isArrayEqual = (a: any[], b: any[]): boolean => {\n if (a.length !== b.length) return false\n for (let i = 0; i < a.length; i++) {\n if (!isEqual(a[i], b[i])) return false\n }\n return true\n}\n\nexport const isEqual = (a: any, b: any): boolean => {\n if (Object.is(a, b)) return true\n\n if ((a == null && b != null) || (a != null && b == null)) return false\n\n if (typeof a?.isEqual === \"function\" && typeof b?.isEqual === \"function\") {\n return a.isEqual(b)\n }\n\n if (typeof a === \"function\" && typeof b === \"function\") {\n return a.toString() === b.toString()\n }\n\n if (isArrayLike(a) && isArrayLike(b)) {\n return isArrayEqual(Array.from(a), Array.from(b))\n }\n\n if (!(typeof a === \"object\") || !(typeof b === \"object\")) return false\n\n const keys = Object.keys(b ?? Object.create(null))\n const length = keys.length\n\n for (let i = 0; i < length; i++) {\n const hasKey = Reflect.has(a, keys[i])\n if (!hasKey) return false\n }\n\n for (let i = 0; i < length; i++) {\n const key = keys[i]\n if (!isEqual(a[key], b[key])) return false\n }\n\n return true\n}\n","export type MaybeFunction<T> = T | (() => T)\n\nexport type Nullable<T> = T | null | undefined\n\nexport const runIfFn = <T>(\n v: T | undefined,\n ...a: T extends (...a: any[]) => void ? Parameters<T> : never\n): T extends (...a: any[]) => void ? NonNullable<ReturnType<T>> : NonNullable<T> => {\n const res = typeof v === \"function\" ? v(...a) : v\n return res ?? undefined\n}\n\nexport const cast = <T>(v: unknown): T => v as T\n\nexport const noop = () => {}\n\nexport const callAll =\n <T extends (...a: any[]) => void>(...fns: (T | undefined)[]) =>\n (...a: Parameters<T>) => {\n fns.forEach(function (fn) {\n fn?.(...a)\n })\n }\n\nexport const uuid = /*#__PURE__*/ (() => {\n let id = 0\n return () => {\n id++\n return id.toString(36)\n }\n})()\n\nexport function match<V extends string | number = string, R = unknown>(\n key: V,\n record: Record<V, R | ((...args: any[]) => R)>,\n ...args: any[]\n): R {\n if (key in record) {\n const fn = record[key]\n return typeof fn === \"function\" ? fn(...args) : fn\n }\n\n const error = new Error(`No matching key: ${JSON.stringify(key)} in ${JSON.stringify(Object.keys(record))}`)\n Error.captureStackTrace?.(error, match)\n\n throw error\n}\n\nexport const tryCatch = <R>(fn: () => R, fallback: () => R) => {\n try {\n return fn()\n } catch (error) {\n if (error instanceof Error) {\n Error.captureStackTrace?.(error, tryCatch)\n }\n return fallback?.()\n }\n}\n","export const isDev = () => process.env.NODE_ENV !== \"production\"\nexport const isArray = (v: any): v is any[] => Array.isArray(v)\nexport const isBoolean = (v: any): v is boolean => v === true || v === false\nexport const isObjectLike = (v: any): v is Record<string, any> => v != null && typeof v === \"object\"\nexport const isObject = (v: any): v is Record<string, any> => isObjectLike(v) && !isArray(v)\nexport const isNumber = (v: any): v is number => typeof v === \"number\" && !Number.isNaN(v)\nexport const isString = (v: any): v is string => typeof v === \"string\"\nexport const isFunction = (v: any): v is Function => typeof v === \"function\"\nexport const isNull = (v: any): v is null | undefined => v == null\n\nexport const hasProp = <T extends string>(obj: any, prop: T): obj is Record<T, any> =>\n Object.prototype.hasOwnProperty.call(obj, prop)\n\nconst baseGetTag = (v: any) => Object.prototype.toString.call(v)\nconst fnToString = Function.prototype.toString\nconst objectCtorString = fnToString.call(Object)\n\nexport const isPlainObject = (v: any) => {\n if (!isObjectLike(v) || baseGetTag(v) != \"[object Object]\") return false\n const proto = Object.getPrototypeOf(v)\n if (proto === null) return true\n const Ctor = hasProp(proto, \"constructor\") && proto.constructor\n return typeof Ctor == \"function\" && Ctor instanceof Ctor && fnToString.call(Ctor) == objectCtorString\n}\n","type Dict = Record<string, any>\n\nexport function splitProps<T extends Dict>(props: T, keys: (keyof T)[]) {\n const rest: Dict = {}\n const result: Dict = {}\n\n const keySet = new Set(keys)\n\n for (const key in props) {\n if (keySet.has(key)) {\n result[key] = props[key]\n } else {\n rest[key] = props[key]\n }\n }\n\n return [result, rest]\n}\n\nexport const createSplitProps = <T extends Dict>(keys: (keyof T)[]) => {\n return function split<Props extends T>(props: Props) {\n return splitProps(props, keys) as [T, Omit<Props, keyof T>]\n }\n}\n","import { createSplitProps } from \"./split-props\"\n\nexport function compact<T extends Record<string, unknown> | undefined>(obj: T): T {\n if (!isPlainObject(obj) || obj === undefined) {\n return obj\n }\n\n const keys = Reflect.ownKeys(obj).filter((key) => typeof key === \"string\")\n const filtered: Partial<T> = {}\n for (const key of keys) {\n const value = (obj as any)[key]\n if (value !== undefined) {\n filtered[key as keyof T] = compact(value)\n }\n }\n return filtered as T\n}\n\nexport function json(value: any) {\n return JSON.parse(JSON.stringify(value))\n}\n\nconst isPlainObject = (value: any) => {\n return value && typeof value === \"object\" && value.constructor === Object\n}\n\nexport function pick<T extends Record<string, any>, K extends keyof T>(obj: T, keys: K[]): Pick<T, K> {\n const filtered: Partial<T> = {}\n\n for (const key of keys) {\n const value = obj[key]\n if (value !== undefined) {\n filtered[key] = value\n }\n }\n\n return filtered as any\n}\n\nexport function omit<T extends Record<string, any>>(obj: T, keys: string[]) {\n return createSplitProps(keys)(obj)[1]\n}\n","export function warn(m: string): void\nexport function warn(c: boolean, m: string): void\nexport function warn(...a: any[]): void {\n const m = a.length === 1 ? a[0] : a[1]\n const c = a.length === 2 ? a[0] : true\n if (c && process.env.NODE_ENV !== \"production\") {\n console.warn(m)\n }\n}\n\nexport function invariant(m: string): void\nexport function invariant(c: boolean, m: string): void\nexport function invariant(...a: any[]): void {\n const m = a.length === 1 ? a[0] : a[1]\n const c = a.length === 2 ? a[0] : true\n if (c && process.env.NODE_ENV !== \"production\") {\n throw new Error(m)\n }\n}\n"],"mappings":"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","names":["next","last","isPlainObject"]}
|
package/src/array.ts
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
export function toArray<T>(v: T | T[] | undefined | null): T[] {
|
|
2
|
-
if (!v) return []
|
|
3
|
-
return Array.isArray(v) ? v : [v]
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
export const fromLength = (length: number) => Array.from(Array(length).keys())
|
|
7
|
-
|
|
8
|
-
export const first = <T>(v: T[]): T | undefined => v[0]
|
|
9
|
-
|
|
10
|
-
export const last = <T>(v: T[]): T | undefined => v[v.length - 1]
|
|
11
|
-
|
|
12
|
-
export const isEmpty = <T>(v: T[]): boolean => v.length === 0
|
|
13
|
-
|
|
14
|
-
export const has = <T>(v: T[], t: any): boolean => v.indexOf(t) !== -1
|
|
15
|
-
|
|
16
|
-
export const add = <T>(v: T[], ...items: T[]): T[] => v.concat(items)
|
|
17
|
-
|
|
18
|
-
export const remove = <T>(v: T[], item: T): T[] => v.filter((t) => t !== item)
|
|
19
|
-
|
|
20
|
-
export const removeAt = <T>(v: T[], i: number): T[] => v.filter((_, idx) => idx !== i)
|
|
21
|
-
|
|
22
|
-
export const uniq = <T>(v: T[]): T[] => Array.from(new Set(v))
|
|
23
|
-
|
|
24
|
-
export const addOrRemove = <T>(v: T[], item: T): T[] => {
|
|
25
|
-
if (has(v, item)) return remove(v, item)
|
|
26
|
-
return add(v, item)
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export function clear<T>(v: T[]): T[] {
|
|
30
|
-
while (v.length > 0) v.pop()
|
|
31
|
-
return v
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export type IndexOptions = {
|
|
35
|
-
step?: number
|
|
36
|
-
loop?: boolean
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export function nextIndex<T>(v: T[], idx: number, opts: IndexOptions = {}): number {
|
|
40
|
-
const { step = 1, loop = true } = opts
|
|
41
|
-
const next = idx + step
|
|
42
|
-
const len = v.length
|
|
43
|
-
const last = len - 1
|
|
44
|
-
if (idx === -1) return step > 0 ? 0 : last
|
|
45
|
-
if (next < 0) return loop ? last : 0
|
|
46
|
-
if (next >= len) return loop ? 0 : idx > len ? len : idx
|
|
47
|
-
return next
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export function next<T>(v: T[], idx: number, opts: IndexOptions = {}): T | undefined {
|
|
51
|
-
return v[nextIndex(v, idx, opts)]
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export function prevIndex<T>(v: T[], idx: number, opts: IndexOptions = {}): number {
|
|
55
|
-
const { step = 1, loop = true } = opts
|
|
56
|
-
return nextIndex(v, idx, { step: -step, loop })
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export function prev<T>(v: T[], index: number, opts: IndexOptions = {}): T | undefined {
|
|
60
|
-
return v[prevIndex(v, index, opts)]
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
export const chunk = <T>(v: T[], size: number): T[][] => {
|
|
64
|
-
const res: T[][] = []
|
|
65
|
-
return v.reduce((rows, value, index) => {
|
|
66
|
-
if (index % size === 0) rows.push([value])
|
|
67
|
-
else last(rows)?.push(value)
|
|
68
|
-
return rows
|
|
69
|
-
}, res)
|
|
70
|
-
}
|
package/src/equal.ts
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
const isArrayLike = (value: any) => value?.constructor.name === "Array"
|
|
2
|
-
|
|
3
|
-
const isArrayEqual = (a: any[], b: any[]): boolean => {
|
|
4
|
-
if (a.length !== b.length) return false
|
|
5
|
-
for (let i = 0; i < a.length; i++) {
|
|
6
|
-
if (!isEqual(a[i], b[i])) return false
|
|
7
|
-
}
|
|
8
|
-
return true
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export const isEqual = (a: any, b: any): boolean => {
|
|
12
|
-
if (Object.is(a, b)) return true
|
|
13
|
-
|
|
14
|
-
if ((a == null && b != null) || (a != null && b == null)) return false
|
|
15
|
-
|
|
16
|
-
if (typeof a?.isEqual === "function" && typeof b?.isEqual === "function") {
|
|
17
|
-
return a.isEqual(b)
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
if (typeof a === "function" && typeof b === "function") {
|
|
21
|
-
return a.toString() === b.toString()
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
if (isArrayLike(a) && isArrayLike(b)) {
|
|
25
|
-
return isArrayEqual(Array.from(a), Array.from(b))
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
if (!(typeof a === "object") || !(typeof b === "object")) return false
|
|
29
|
-
|
|
30
|
-
const keys = Object.keys(b ?? Object.create(null))
|
|
31
|
-
const length = keys.length
|
|
32
|
-
|
|
33
|
-
for (let i = 0; i < length; i++) {
|
|
34
|
-
const hasKey = Reflect.has(a, keys[i])
|
|
35
|
-
if (!hasKey) return false
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
for (let i = 0; i < length; i++) {
|
|
39
|
-
const key = keys[i]
|
|
40
|
-
if (!isEqual(a[key], b[key])) return false
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return true
|
|
44
|
-
}
|
package/src/functions.ts
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
export type MaybeFunction<T> = T | (() => T)
|
|
2
|
-
|
|
3
|
-
export type Nullable<T> = T | null | undefined
|
|
4
|
-
|
|
5
|
-
export const runIfFn = <T>(
|
|
6
|
-
v: T | undefined,
|
|
7
|
-
...a: T extends (...a: any[]) => void ? Parameters<T> : never
|
|
8
|
-
): T extends (...a: any[]) => void ? NonNullable<ReturnType<T>> : NonNullable<T> => {
|
|
9
|
-
const res = typeof v === "function" ? v(...a) : v
|
|
10
|
-
return res ?? undefined
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export const cast = <T>(v: unknown): T => v as T
|
|
14
|
-
|
|
15
|
-
export const noop = () => {}
|
|
16
|
-
|
|
17
|
-
export const callAll =
|
|
18
|
-
<T extends (...a: any[]) => void>(...fns: (T | undefined)[]) =>
|
|
19
|
-
(...a: Parameters<T>) => {
|
|
20
|
-
fns.forEach(function (fn) {
|
|
21
|
-
fn?.(...a)
|
|
22
|
-
})
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export const uuid = /*#__PURE__*/ (() => {
|
|
26
|
-
let id = 0
|
|
27
|
-
return () => {
|
|
28
|
-
id++
|
|
29
|
-
return id.toString(36)
|
|
30
|
-
}
|
|
31
|
-
})()
|
|
32
|
-
|
|
33
|
-
export function match<V extends string | number = string, R = unknown>(
|
|
34
|
-
key: V,
|
|
35
|
-
record: Record<V, R | ((...args: any[]) => R)>,
|
|
36
|
-
...args: any[]
|
|
37
|
-
): R {
|
|
38
|
-
if (key in record) {
|
|
39
|
-
const fn = record[key]
|
|
40
|
-
return typeof fn === "function" ? fn(...args) : fn
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const error = new Error(`No matching key: ${JSON.stringify(key)} in ${JSON.stringify(Object.keys(record))}`)
|
|
44
|
-
Error.captureStackTrace?.(error, match)
|
|
45
|
-
|
|
46
|
-
throw error
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export const tryCatch = <R>(fn: () => R, fallback: () => R) => {
|
|
50
|
-
try {
|
|
51
|
-
return fn()
|
|
52
|
-
} catch (error) {
|
|
53
|
-
if (error instanceof Error) {
|
|
54
|
-
Error.captureStackTrace?.(error, tryCatch)
|
|
55
|
-
}
|
|
56
|
-
return fallback?.()
|
|
57
|
-
}
|
|
58
|
-
}
|
package/src/guard.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export const isDev = () => process.env.NODE_ENV !== "production"
|
|
2
|
-
export const isArray = (v: any): v is any[] => Array.isArray(v)
|
|
3
|
-
export const isBoolean = (v: any): v is boolean => v === true || v === false
|
|
4
|
-
export const isObjectLike = (v: any): v is Record<string, any> => v != null && typeof v === "object"
|
|
5
|
-
export const isObject = (v: any): v is Record<string, any> => isObjectLike(v) && !isArray(v)
|
|
6
|
-
export const isNumber = (v: any): v is number => typeof v === "number" && !Number.isNaN(v)
|
|
7
|
-
export const isString = (v: any): v is string => typeof v === "string"
|
|
8
|
-
export const isFunction = (v: any): v is Function => typeof v === "function"
|
|
9
|
-
export const isNull = (v: any): v is null | undefined => v == null
|
|
10
|
-
|
|
11
|
-
export const hasProp = <T extends string>(obj: any, prop: T): obj is Record<T, any> =>
|
|
12
|
-
Object.prototype.hasOwnProperty.call(obj, prop)
|
|
13
|
-
|
|
14
|
-
const baseGetTag = (v: any) => Object.prototype.toString.call(v)
|
|
15
|
-
const fnToString = Function.prototype.toString
|
|
16
|
-
const objectCtorString = fnToString.call(Object)
|
|
17
|
-
|
|
18
|
-
export const isPlainObject = (v: any) => {
|
|
19
|
-
if (!isObjectLike(v) || baseGetTag(v) != "[object Object]") return false
|
|
20
|
-
const proto = Object.getPrototypeOf(v)
|
|
21
|
-
if (proto === null) return true
|
|
22
|
-
const Ctor = hasProp(proto, "constructor") && proto.constructor
|
|
23
|
-
return typeof Ctor == "function" && Ctor instanceof Ctor && fnToString.call(Ctor) == objectCtorString
|
|
24
|
-
}
|
package/src/index.ts
DELETED
package/src/object.ts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { createSplitProps } from "./split-props"
|
|
2
|
-
|
|
3
|
-
export function compact<T extends Record<string, unknown> | undefined>(obj: T): T {
|
|
4
|
-
if (!isPlainObject(obj) || obj === undefined) {
|
|
5
|
-
return obj
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
const keys = Reflect.ownKeys(obj).filter((key) => typeof key === "string")
|
|
9
|
-
const filtered: Partial<T> = {}
|
|
10
|
-
for (const key of keys) {
|
|
11
|
-
const value = (obj as any)[key]
|
|
12
|
-
if (value !== undefined) {
|
|
13
|
-
filtered[key as keyof T] = compact(value)
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return filtered as T
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export function json(value: any) {
|
|
20
|
-
return JSON.parse(JSON.stringify(value))
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const isPlainObject = (value: any) => {
|
|
24
|
-
return value && typeof value === "object" && value.constructor === Object
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export function pick<T extends Record<string, any>, K extends keyof T>(obj: T, keys: K[]): Pick<T, K> {
|
|
28
|
-
const filtered: Partial<T> = {}
|
|
29
|
-
|
|
30
|
-
for (const key of keys) {
|
|
31
|
-
const value = obj[key]
|
|
32
|
-
if (value !== undefined) {
|
|
33
|
-
filtered[key] = value
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return filtered as any
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export function omit<T extends Record<string, any>>(obj: T, keys: string[]) {
|
|
41
|
-
return createSplitProps(keys)(obj)[1]
|
|
42
|
-
}
|
package/src/split-props.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
type Dict = Record<string, any>
|
|
2
|
-
|
|
3
|
-
export function splitProps<T extends Dict>(props: T, keys: (keyof T)[]) {
|
|
4
|
-
const rest: Dict = {}
|
|
5
|
-
const result: Dict = {}
|
|
6
|
-
|
|
7
|
-
const keySet = new Set(keys)
|
|
8
|
-
|
|
9
|
-
for (const key in props) {
|
|
10
|
-
if (keySet.has(key)) {
|
|
11
|
-
result[key] = props[key]
|
|
12
|
-
} else {
|
|
13
|
-
rest[key] = props[key]
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
return [result, rest]
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export const createSplitProps = <T extends Dict>(keys: (keyof T)[]) => {
|
|
21
|
-
return function split<Props extends T>(props: Props) {
|
|
22
|
-
return splitProps(props, keys) as [T, Omit<Props, keyof T>]
|
|
23
|
-
}
|
|
24
|
-
}
|
package/src/warning.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export function warn(m: string): void
|
|
2
|
-
export function warn(c: boolean, m: string): void
|
|
3
|
-
export function warn(...a: any[]): void {
|
|
4
|
-
const m = a.length === 1 ? a[0] : a[1]
|
|
5
|
-
const c = a.length === 2 ? a[0] : true
|
|
6
|
-
if (c && process.env.NODE_ENV !== "production") {
|
|
7
|
-
console.warn(m)
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export function invariant(m: string): void
|
|
12
|
-
export function invariant(c: boolean, m: string): void
|
|
13
|
-
export function invariant(...a: any[]): void {
|
|
14
|
-
const m = a.length === 1 ? a[0] : a[1]
|
|
15
|
-
const c = a.length === 2 ? a[0] : true
|
|
16
|
-
if (c && process.env.NODE_ENV !== "production") {
|
|
17
|
-
throw new Error(m)
|
|
18
|
-
}
|
|
19
|
-
}
|