@zenstackhq/common-helpers
Advanced tools
| //#region src/clone.d.ts | ||
| /** | ||
| * Clones the given object. Only arrays and plain objects are cloned. Other values are returned as is. | ||
| */ | ||
| declare function clone<T>(value: T): T; | ||
| //#endregion | ||
| //#region src/enumerable.d.ts | ||
| /** | ||
| * Array or scalar | ||
| */ | ||
| type Enumerable<T> = T | Array<T>; | ||
| /** | ||
| * Uniformly enumerates an array or scalar. | ||
| */ | ||
| declare function enumerate<T>(x: Enumerable<T>): T[]; | ||
| //#endregion | ||
| //#region src/is-plain-object.d.ts | ||
| declare function isPlainObject(o: unknown): boolean; | ||
| //#endregion | ||
| //#region src/lower-case-first.d.ts | ||
| declare function lowerCaseFirst(input: string): string; | ||
| //#endregion | ||
| //#region src/param-case.d.ts | ||
| declare function paramCase(input: string): string; | ||
| //#endregion | ||
| //#region src/safe-json-stringify.d.ts | ||
| /** | ||
| * A safe JSON stringify that handles bigint values. | ||
| */ | ||
| declare function safeJSONStringify(value: unknown): string; | ||
| //#endregion | ||
| //#region src/single-debounce.d.ts | ||
| declare function singleDebounce(cb: () => void | PromiseLike<void>, debounceMc: number, reRunOnInProgressCall?: boolean): () => void; | ||
| //#endregion | ||
| //#region src/sleep.d.ts | ||
| declare function sleep(timeout: number): Promise<void>; | ||
| //#endregion | ||
| //#region src/tiny-invariant.d.ts | ||
| declare function invariant(condition: unknown, message?: string): asserts condition; | ||
| //#endregion | ||
| //#region src/upper-case-first.d.ts | ||
| declare function upperCaseFirst(input: string): string; | ||
| //#endregion | ||
| //#region src/zip.d.ts | ||
| /** | ||
| * Zips two arrays into an array of tuples. | ||
| */ | ||
| declare function zip<T, U>(arr1: readonly T[], arr2: readonly U[]): Array<[T, U]>; | ||
| //#endregion | ||
| export { Enumerable, clone, enumerate, invariant, isPlainObject, lowerCaseFirst, paramCase, safeJSONStringify, singleDebounce, sleep, upperCaseFirst, zip }; | ||
| //# sourceMappingURL=index.d.mts.map |
+128
| //#region src/is-plain-object.ts | ||
| function isObject(o) { | ||
| return Object.prototype.toString.call(o) === "[object Object]"; | ||
| } | ||
| function isPlainObject(o) { | ||
| if (isObject(o) === false) return false; | ||
| const ctor = o.constructor; | ||
| if (ctor === void 0) return true; | ||
| const prot = ctor.prototype; | ||
| if (isObject(prot) === false) return false; | ||
| if (Object.prototype.hasOwnProperty.call(prot, "isPrototypeOf") === false) return false; | ||
| return true; | ||
| } | ||
| //#endregion | ||
| //#region src/clone.ts | ||
| /** | ||
| * Clones the given object. Only arrays and plain objects are cloned. Other values are returned as is. | ||
| */ | ||
| function clone(value) { | ||
| if (Array.isArray(value)) return value.map((v) => clone(v)); | ||
| if (typeof value === "object") { | ||
| if (!value || !isPlainObject(value)) return value; | ||
| const result = {}; | ||
| for (const key of Object.keys(value)) result[key] = clone(value[key]); | ||
| return result; | ||
| } | ||
| return value; | ||
| } | ||
| //#endregion | ||
| //#region src/enumerable.ts | ||
| /** | ||
| * Uniformly enumerates an array or scalar. | ||
| */ | ||
| function enumerate(x) { | ||
| if (x === null || x === void 0) return []; | ||
| else if (Array.isArray(x)) return x; | ||
| else return [x]; | ||
| } | ||
| //#endregion | ||
| //#region src/lower-case-first.ts | ||
| function lowerCaseFirst(input) { | ||
| return input.charAt(0).toLowerCase() + input.slice(1); | ||
| } | ||
| //#endregion | ||
| //#region src/param-case.ts | ||
| const DEFAULT_SPLIT_REGEXP_1 = /([a-z0-9])([A-Z])/g; | ||
| const DEFAULT_SPLIT_REGEXP_2 = /([A-Z])([A-Z][a-z])/g; | ||
| const DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi; | ||
| function paramCase(input) { | ||
| const result = input.replace(DEFAULT_SPLIT_REGEXP_1, "$1\0$2").replace(DEFAULT_SPLIT_REGEXP_2, "$1\0$2").replace(DEFAULT_STRIP_REGEXP, "\0"); | ||
| let start = 0; | ||
| let end = result.length; | ||
| while (result.charAt(start) === "\0") start++; | ||
| while (result.charAt(end - 1) === "\0") end--; | ||
| return result.slice(start, end).split("\0").map((str) => str.toLowerCase()).join("-"); | ||
| } | ||
| //#endregion | ||
| //#region src/safe-json-stringify.ts | ||
| /** | ||
| * A safe JSON stringify that handles bigint values. | ||
| */ | ||
| function safeJSONStringify(value) { | ||
| return JSON.stringify(value, (_, v) => { | ||
| if (typeof v === "bigint") return v.toString(); | ||
| else return v; | ||
| }); | ||
| } | ||
| //#endregion | ||
| //#region src/single-debounce.ts | ||
| function singleDebounce(cb, debounceMc, reRunOnInProgressCall = false) { | ||
| let timeout; | ||
| let inProgress = false; | ||
| let pendingInProgress = false; | ||
| const run = async () => { | ||
| if (inProgress) { | ||
| if (reRunOnInProgressCall) pendingInProgress = true; | ||
| return; | ||
| } | ||
| inProgress = true; | ||
| pendingInProgress = false; | ||
| try { | ||
| await cb(); | ||
| } finally { | ||
| inProgress = false; | ||
| if (pendingInProgress) await run(); | ||
| } | ||
| }; | ||
| return () => { | ||
| clearTimeout(timeout); | ||
| timeout = setTimeout(run, debounceMc); | ||
| }; | ||
| } | ||
| //#endregion | ||
| //#region src/sleep.ts | ||
| function sleep(timeout) { | ||
| return new Promise((resolve) => { | ||
| setTimeout(() => resolve(), timeout); | ||
| }); | ||
| } | ||
| //#endregion | ||
| //#region src/tiny-invariant.ts | ||
| const isProduction = typeof process !== "undefined" && process.env["NODE_ENV"] === "production"; | ||
| const prefix = "Invariant failed"; | ||
| function invariant(condition, message) { | ||
| if (condition) return; | ||
| if (isProduction) throw new Error(prefix); | ||
| throw new Error(message ? `${prefix}: ${message}` : prefix); | ||
| } | ||
| //#endregion | ||
| //#region src/upper-case-first.ts | ||
| function upperCaseFirst(input) { | ||
| return input.charAt(0).toUpperCase() + input.slice(1); | ||
| } | ||
| //#endregion | ||
| //#region src/zip.ts | ||
| /** | ||
| * Zips two arrays into an array of tuples. | ||
| */ | ||
| function zip(arr1, arr2) { | ||
| const length = Math.min(arr1.length, arr2.length); | ||
| const result = []; | ||
| for (let i = 0; i < length; i++) result.push([arr1[i], arr2[i]]); | ||
| return result; | ||
| } | ||
| //#endregion | ||
| export { clone, enumerate, invariant, isPlainObject, lowerCaseFirst, paramCase, safeJSONStringify, singleDebounce, sleep, upperCaseFirst, zip }; | ||
| //# sourceMappingURL=index.mjs.map |
| {"version":3,"file":"index.mjs","names":[],"sources":["../src/is-plain-object.ts","../src/clone.ts","../src/enumerable.ts","../src/lower-case-first.ts","../src/param-case.ts","../src/safe-json-stringify.ts","../src/single-debounce.ts","../src/sleep.ts","../src/tiny-invariant.ts","../src/upper-case-first.ts","../src/zip.ts"],"sourcesContent":["function isObject(o: unknown) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nexport function isPlainObject(o: unknown) {\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n const ctor = (o as { constructor: unknown }).constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n const prot = (ctor as { prototype: unknown }).prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (Object.prototype.hasOwnProperty.call(prot, 'isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n","import { isPlainObject } from './is-plain-object';\n\n/**\n * Clones the given object. Only arrays and plain objects are cloned. Other values are returned as is.\n */\nexport function clone<T>(value: T): T {\n if (Array.isArray(value)) {\n return value.map((v) => clone(v)) as T;\n }\n\n if (typeof value === 'object') {\n if (!value || !isPlainObject(value)) {\n return value;\n }\n\n const result: any = {};\n for (const key of Object.keys(value)) {\n result[key] = clone(value[key as keyof T]);\n }\n return result;\n }\n\n return value;\n}\n","/**\n * Array or scalar\n */\nexport type Enumerable<T> = T | Array<T>;\n\n/**\n * Uniformly enumerates an array or scalar.\n */\nexport function enumerate<T>(x: Enumerable<T>) {\n if (x === null || x === undefined) {\n return [];\n } else if (Array.isArray(x)) {\n return x;\n } else {\n return [x];\n }\n}\n","export function lowerCaseFirst(input: string) {\n return input.charAt(0).toLowerCase() + input.slice(1);\n}\n","const DEFAULT_SPLIT_REGEXP_1 = /([a-z0-9])([A-Z])/g;\nconst DEFAULT_SPLIT_REGEXP_2 = /([A-Z])([A-Z][a-z])/g;\nconst DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n\nexport function paramCase(input: string) {\n const result = input\n .replace(DEFAULT_SPLIT_REGEXP_1, '$1\\0$2')\n .replace(DEFAULT_SPLIT_REGEXP_2, '$1\\0$2')\n .replace(DEFAULT_STRIP_REGEXP, '\\0');\n\n let start = 0;\n let end = result.length;\n\n while (result.charAt(start) === '\\0') start++;\n while (result.charAt(end - 1) === '\\0') end--;\n\n return result\n .slice(start, end)\n .split('\\0')\n .map((str) => str.toLowerCase())\n .join('-');\n}\n","/**\n * A safe JSON stringify that handles bigint values.\n */\nexport function safeJSONStringify(value: unknown) {\n return JSON.stringify(value, (_, v) => {\n if (typeof v === 'bigint') {\n return v.toString();\n } else {\n return v;\n }\n });\n}\n","export function singleDebounce(cb: () => void | PromiseLike<void>, debounceMc: number, reRunOnInProgressCall: boolean = false) {\n let timeout: ReturnType<typeof setTimeout> | undefined;\n let inProgress = false;\n let pendingInProgress = false;\n\n const run = async () => {\n if (inProgress) {\n if (reRunOnInProgressCall) {\n pendingInProgress = true;\n }\n\n return;\n }\n\n inProgress = true;\n pendingInProgress = false;\n\n try {\n await cb();\n } finally {\n inProgress = false;\n\n if (pendingInProgress) {\n await run();\n }\n }\n };\n\n return () => {\n clearTimeout(timeout);\n\n timeout = setTimeout(run, debounceMc);\n }\n}\n","export function sleep(timeout: number) {\n return new Promise<void>((resolve) => {\n setTimeout(() => resolve(), timeout);\n });\n}\n","const isProduction = typeof process !== 'undefined' && process.env['NODE_ENV'] === 'production';\nconst prefix = 'Invariant failed';\n\nexport function invariant(condition: unknown, message?: string): asserts condition {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n }\n\n throw new Error(message ? `${prefix}: ${message}` : prefix);\n}\n","export function upperCaseFirst(input: string) {\n return input.charAt(0).toUpperCase() + input.slice(1);\n}\n","/**\n * Zips two arrays into an array of tuples.\n */\nexport function zip<T, U>(arr1: readonly T[], arr2: readonly U[]): Array<[T, U]> {\n const length = Math.min(arr1.length, arr2.length);\n const result: Array<[T, U]> = [];\n for (let i = 0; i < length; i++) {\n result.push([arr1[i]!, arr2[i]!]);\n }\n return result;\n}\n"],"mappings":"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"} |
+114
-181
@@ -1,206 +0,139 @@ | ||
| "use strict"; | ||
| var __defProp = Object.defineProperty; | ||
| var __getOwnPropDesc = Object.getOwnPropertyDescriptor; | ||
| var __getOwnPropNames = Object.getOwnPropertyNames; | ||
| var __hasOwnProp = Object.prototype.hasOwnProperty; | ||
| var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); | ||
| var __export = (target, all) => { | ||
| for (var name in all) | ||
| __defProp(target, name, { get: all[name], enumerable: true }); | ||
| }; | ||
| var __copyProps = (to, from, except, desc) => { | ||
| if (from && typeof from === "object" || typeof from === "function") { | ||
| for (let key of __getOwnPropNames(from)) | ||
| if (!__hasOwnProp.call(to, key) && key !== except) | ||
| __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); | ||
| } | ||
| return to; | ||
| }; | ||
| var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); | ||
| // src/index.ts | ||
| var src_exports = {}; | ||
| __export(src_exports, { | ||
| clone: () => clone, | ||
| enumerate: () => enumerate, | ||
| invariant: () => invariant, | ||
| isPlainObject: () => isPlainObject, | ||
| lowerCaseFirst: () => lowerCaseFirst, | ||
| paramCase: () => paramCase, | ||
| safeJSONStringify: () => safeJSONStringify, | ||
| singleDebounce: () => singleDebounce, | ||
| sleep: () => sleep, | ||
| upperCaseFirst: () => upperCaseFirst, | ||
| zip: () => zip | ||
| }); | ||
| module.exports = __toCommonJS(src_exports); | ||
| // src/is-plain-object.ts | ||
| Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); | ||
| //#region src/is-plain-object.ts | ||
| function isObject(o) { | ||
| return Object.prototype.toString.call(o) === "[object Object]"; | ||
| return Object.prototype.toString.call(o) === "[object Object]"; | ||
| } | ||
| __name(isObject, "isObject"); | ||
| function isPlainObject(o) { | ||
| if (isObject(o) === false) return false; | ||
| const ctor = o.constructor; | ||
| if (ctor === void 0) return true; | ||
| const prot = ctor.prototype; | ||
| if (isObject(prot) === false) return false; | ||
| if (Object.prototype.hasOwnProperty.call(prot, "isPrototypeOf") === false) { | ||
| return false; | ||
| } | ||
| return true; | ||
| if (isObject(o) === false) return false; | ||
| const ctor = o.constructor; | ||
| if (ctor === void 0) return true; | ||
| const prot = ctor.prototype; | ||
| if (isObject(prot) === false) return false; | ||
| if (Object.prototype.hasOwnProperty.call(prot, "isPrototypeOf") === false) return false; | ||
| return true; | ||
| } | ||
| __name(isPlainObject, "isPlainObject"); | ||
| // src/clone.ts | ||
| //#endregion | ||
| //#region src/clone.ts | ||
| /** | ||
| * Clones the given object. Only arrays and plain objects are cloned. Other values are returned as is. | ||
| */ | ||
| function clone(value) { | ||
| if (Array.isArray(value)) { | ||
| return value.map((v) => clone(v)); | ||
| } | ||
| if (typeof value === "object") { | ||
| if (!value || !isPlainObject(value)) { | ||
| return value; | ||
| } | ||
| const result = {}; | ||
| for (const key of Object.keys(value)) { | ||
| result[key] = clone(value[key]); | ||
| } | ||
| return result; | ||
| } | ||
| return value; | ||
| if (Array.isArray(value)) return value.map((v) => clone(v)); | ||
| if (typeof value === "object") { | ||
| if (!value || !isPlainObject(value)) return value; | ||
| const result = {}; | ||
| for (const key of Object.keys(value)) result[key] = clone(value[key]); | ||
| return result; | ||
| } | ||
| return value; | ||
| } | ||
| __name(clone, "clone"); | ||
| // src/enumerable.ts | ||
| //#endregion | ||
| //#region src/enumerable.ts | ||
| /** | ||
| * Uniformly enumerates an array or scalar. | ||
| */ | ||
| function enumerate(x) { | ||
| if (x === null || x === void 0) { | ||
| return []; | ||
| } else if (Array.isArray(x)) { | ||
| return x; | ||
| } else { | ||
| return [ | ||
| x | ||
| ]; | ||
| } | ||
| if (x === null || x === void 0) return []; | ||
| else if (Array.isArray(x)) return x; | ||
| else return [x]; | ||
| } | ||
| __name(enumerate, "enumerate"); | ||
| // src/lower-case-first.ts | ||
| //#endregion | ||
| //#region src/lower-case-first.ts | ||
| function lowerCaseFirst(input) { | ||
| return input.charAt(0).toLowerCase() + input.slice(1); | ||
| return input.charAt(0).toLowerCase() + input.slice(1); | ||
| } | ||
| __name(lowerCaseFirst, "lowerCaseFirst"); | ||
| // src/param-case.ts | ||
| var DEFAULT_SPLIT_REGEXP_1 = /([a-z0-9])([A-Z])/g; | ||
| var DEFAULT_SPLIT_REGEXP_2 = /([A-Z])([A-Z][a-z])/g; | ||
| var DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi; | ||
| //#endregion | ||
| //#region src/param-case.ts | ||
| const DEFAULT_SPLIT_REGEXP_1 = /([a-z0-9])([A-Z])/g; | ||
| const DEFAULT_SPLIT_REGEXP_2 = /([A-Z])([A-Z][a-z])/g; | ||
| const DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi; | ||
| function paramCase(input) { | ||
| const result = input.replace(DEFAULT_SPLIT_REGEXP_1, "$1\0$2").replace(DEFAULT_SPLIT_REGEXP_2, "$1\0$2").replace(DEFAULT_STRIP_REGEXP, "\0"); | ||
| let start = 0; | ||
| let end = result.length; | ||
| while (result.charAt(start) === "\0") start++; | ||
| while (result.charAt(end - 1) === "\0") end--; | ||
| return result.slice(start, end).split("\0").map((str) => str.toLowerCase()).join("-"); | ||
| const result = input.replace(DEFAULT_SPLIT_REGEXP_1, "$1\0$2").replace(DEFAULT_SPLIT_REGEXP_2, "$1\0$2").replace(DEFAULT_STRIP_REGEXP, "\0"); | ||
| let start = 0; | ||
| let end = result.length; | ||
| while (result.charAt(start) === "\0") start++; | ||
| while (result.charAt(end - 1) === "\0") end--; | ||
| return result.slice(start, end).split("\0").map((str) => str.toLowerCase()).join("-"); | ||
| } | ||
| __name(paramCase, "paramCase"); | ||
| // src/safe-json-stringify.ts | ||
| //#endregion | ||
| //#region src/safe-json-stringify.ts | ||
| /** | ||
| * A safe JSON stringify that handles bigint values. | ||
| */ | ||
| function safeJSONStringify(value) { | ||
| return JSON.stringify(value, (_, v) => { | ||
| if (typeof v === "bigint") { | ||
| return v.toString(); | ||
| } else { | ||
| return v; | ||
| } | ||
| }); | ||
| return JSON.stringify(value, (_, v) => { | ||
| if (typeof v === "bigint") return v.toString(); | ||
| else return v; | ||
| }); | ||
| } | ||
| __name(safeJSONStringify, "safeJSONStringify"); | ||
| // src/single-debounce.ts | ||
| //#endregion | ||
| //#region src/single-debounce.ts | ||
| function singleDebounce(cb, debounceMc, reRunOnInProgressCall = false) { | ||
| let timeout; | ||
| let inProgress = false; | ||
| let pendingInProgress = false; | ||
| const run = /* @__PURE__ */ __name(async () => { | ||
| if (inProgress) { | ||
| if (reRunOnInProgressCall) { | ||
| pendingInProgress = true; | ||
| } | ||
| return; | ||
| } | ||
| inProgress = true; | ||
| pendingInProgress = false; | ||
| try { | ||
| await cb(); | ||
| } finally { | ||
| inProgress = false; | ||
| if (pendingInProgress) { | ||
| await run(); | ||
| } | ||
| } | ||
| }, "run"); | ||
| return () => { | ||
| clearTimeout(timeout); | ||
| timeout = setTimeout(run, debounceMc); | ||
| }; | ||
| let timeout; | ||
| let inProgress = false; | ||
| let pendingInProgress = false; | ||
| const run = async () => { | ||
| if (inProgress) { | ||
| if (reRunOnInProgressCall) pendingInProgress = true; | ||
| return; | ||
| } | ||
| inProgress = true; | ||
| pendingInProgress = false; | ||
| try { | ||
| await cb(); | ||
| } finally { | ||
| inProgress = false; | ||
| if (pendingInProgress) await run(); | ||
| } | ||
| }; | ||
| return () => { | ||
| clearTimeout(timeout); | ||
| timeout = setTimeout(run, debounceMc); | ||
| }; | ||
| } | ||
| __name(singleDebounce, "singleDebounce"); | ||
| // src/sleep.ts | ||
| //#endregion | ||
| //#region src/sleep.ts | ||
| function sleep(timeout) { | ||
| return new Promise((resolve) => { | ||
| setTimeout(() => resolve(), timeout); | ||
| }); | ||
| return new Promise((resolve) => { | ||
| setTimeout(() => resolve(), timeout); | ||
| }); | ||
| } | ||
| __name(sleep, "sleep"); | ||
| // src/tiny-invariant.ts | ||
| var isProduction = typeof process !== "undefined" && process.env["NODE_ENV"] === "production"; | ||
| var prefix = "Invariant failed"; | ||
| //#endregion | ||
| //#region src/tiny-invariant.ts | ||
| const isProduction = typeof process !== "undefined" && process.env["NODE_ENV"] === "production"; | ||
| const prefix = "Invariant failed"; | ||
| function invariant(condition, message) { | ||
| if (condition) { | ||
| return; | ||
| } | ||
| if (isProduction) { | ||
| throw new Error(prefix); | ||
| } | ||
| throw new Error(message ? `${prefix}: ${message}` : prefix); | ||
| if (condition) return; | ||
| if (isProduction) throw new Error(prefix); | ||
| throw new Error(message ? `${prefix}: ${message}` : prefix); | ||
| } | ||
| __name(invariant, "invariant"); | ||
| // src/upper-case-first.ts | ||
| //#endregion | ||
| //#region src/upper-case-first.ts | ||
| function upperCaseFirst(input) { | ||
| return input.charAt(0).toUpperCase() + input.slice(1); | ||
| return input.charAt(0).toUpperCase() + input.slice(1); | ||
| } | ||
| __name(upperCaseFirst, "upperCaseFirst"); | ||
| // src/zip.ts | ||
| //#endregion | ||
| //#region src/zip.ts | ||
| /** | ||
| * Zips two arrays into an array of tuples. | ||
| */ | ||
| function zip(arr1, arr2) { | ||
| const length = Math.min(arr1.length, arr2.length); | ||
| const result = []; | ||
| for (let i = 0; i < length; i++) { | ||
| result.push([ | ||
| arr1[i], | ||
| arr2[i] | ||
| ]); | ||
| } | ||
| return result; | ||
| const length = Math.min(arr1.length, arr2.length); | ||
| const result = []; | ||
| for (let i = 0; i < length; i++) result.push([arr1[i], arr2[i]]); | ||
| return result; | ||
| } | ||
| __name(zip, "zip"); | ||
| // Annotate the CommonJS export names for ESM import in node: | ||
| 0 && (module.exports = { | ||
| clone, | ||
| enumerate, | ||
| invariant, | ||
| isPlainObject, | ||
| lowerCaseFirst, | ||
| paramCase, | ||
| safeJSONStringify, | ||
| singleDebounce, | ||
| sleep, | ||
| upperCaseFirst, | ||
| zip | ||
| }); | ||
| //#endregion | ||
| exports.clone = clone; | ||
| exports.enumerate = enumerate; | ||
| exports.invariant = invariant; | ||
| exports.isPlainObject = isPlainObject; | ||
| exports.lowerCaseFirst = lowerCaseFirst; | ||
| exports.paramCase = paramCase; | ||
| exports.safeJSONStringify = safeJSONStringify; | ||
| exports.singleDebounce = singleDebounce; | ||
| exports.sleep = sleep; | ||
| exports.upperCaseFirst = upperCaseFirst; | ||
| exports.zip = zip; | ||
| //# sourceMappingURL=index.cjs.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../src/index.ts","../src/is-plain-object.ts","../src/clone.ts","../src/enumerable.ts","../src/lower-case-first.ts","../src/param-case.ts","../src/safe-json-stringify.ts","../src/single-debounce.ts","../src/sleep.ts","../src/tiny-invariant.ts","../src/upper-case-first.ts","../src/zip.ts"],"sourcesContent":["export * from './clone';\nexport * from './enumerable';\nexport * from './is-plain-object';\nexport * from './lower-case-first';\nexport * from './param-case';\nexport * from './safe-json-stringify';\nexport * from './single-debounce';\nexport * from './sleep';\nexport * from './tiny-invariant';\nexport * from './upper-case-first';\nexport * from './zip';\n","function isObject(o: unknown) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nexport function isPlainObject(o: unknown) {\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n const ctor = (o as { constructor: unknown }).constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n const prot = (ctor as { prototype: unknown }).prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (Object.prototype.hasOwnProperty.call(prot, 'isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n","import { isPlainObject } from './is-plain-object';\n\n/**\n * Clones the given object. Only arrays and plain objects are cloned. Other values are returned as is.\n */\nexport function clone<T>(value: T): T {\n if (Array.isArray(value)) {\n return value.map((v) => clone(v)) as T;\n }\n\n if (typeof value === 'object') {\n if (!value || !isPlainObject(value)) {\n return value;\n }\n\n const result: any = {};\n for (const key of Object.keys(value)) {\n result[key] = clone(value[key as keyof T]);\n }\n return result;\n }\n\n return value;\n}\n","/**\n * Array or scalar\n */\nexport type Enumerable<T> = T | Array<T>;\n\n/**\n * Uniformly enumerates an array or scalar.\n */\nexport function enumerate<T>(x: Enumerable<T>) {\n if (x === null || x === undefined) {\n return [];\n } else if (Array.isArray(x)) {\n return x;\n } else {\n return [x];\n }\n}\n","export function lowerCaseFirst(input: string) {\n return input.charAt(0).toLowerCase() + input.slice(1);\n}\n","const DEFAULT_SPLIT_REGEXP_1 = /([a-z0-9])([A-Z])/g;\nconst DEFAULT_SPLIT_REGEXP_2 = /([A-Z])([A-Z][a-z])/g;\nconst DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n\nexport function paramCase(input: string) {\n const result = input\n .replace(DEFAULT_SPLIT_REGEXP_1, '$1\\0$2')\n .replace(DEFAULT_SPLIT_REGEXP_2, '$1\\0$2')\n .replace(DEFAULT_STRIP_REGEXP, '\\0');\n\n let start = 0;\n let end = result.length;\n\n while (result.charAt(start) === '\\0') start++;\n while (result.charAt(end - 1) === '\\0') end--;\n\n return result\n .slice(start, end)\n .split('\\0')\n .map((str) => str.toLowerCase())\n .join('-');\n}\n","/**\n * A safe JSON stringify that handles bigint values.\n */\nexport function safeJSONStringify(value: unknown) {\n return JSON.stringify(value, (_, v) => {\n if (typeof v === 'bigint') {\n return v.toString();\n } else {\n return v;\n }\n });\n}\n","export function singleDebounce(cb: () => void | PromiseLike<void>, debounceMc: number, reRunOnInProgressCall: boolean = false) {\n let timeout: ReturnType<typeof setTimeout> | undefined;\n let inProgress = false;\n let pendingInProgress = false;\n\n const run = async () => {\n if (inProgress) {\n if (reRunOnInProgressCall) {\n pendingInProgress = true;\n }\n\n return;\n }\n\n inProgress = true;\n pendingInProgress = false;\n\n try {\n await cb();\n } finally {\n inProgress = false;\n\n if (pendingInProgress) {\n await run();\n }\n }\n };\n\n return () => {\n clearTimeout(timeout);\n\n timeout = setTimeout(run, debounceMc);\n }\n}\n","export function sleep(timeout: number) {\n return new Promise<void>((resolve) => {\n setTimeout(() => resolve(), timeout);\n });\n}\n","const isProduction = typeof process !== 'undefined' && process.env['NODE_ENV'] === 'production';\nconst prefix = 'Invariant failed';\n\nexport function invariant(condition: unknown, message?: string): asserts condition {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n }\n\n throw new Error(message ? `${prefix}: ${message}` : prefix);\n}\n","export function upperCaseFirst(input: string) {\n return input.charAt(0).toUpperCase() + input.slice(1);\n}\n","/**\n * Zips two arrays into an array of tuples.\n */\nexport function zip<T, U>(arr1: readonly T[], arr2: readonly U[]): Array<[T, U]> {\n const length = Math.min(arr1.length, arr2.length);\n const result: Array<[T, U]> = [];\n for (let i = 0; i < length; i++) {\n result.push([arr1[i]!, arr2[i]!]);\n }\n return result;\n}\n"],"mappings":"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","names":["isObject","o","Object","prototype","toString","call","isPlainObject","ctor","undefined","prot","hasOwnProperty","clone","value","Array","isArray","map","v","isPlainObject","result","key","Object","keys","enumerate","x","undefined","Array","isArray","lowerCaseFirst","input","charAt","toLowerCase","slice","DEFAULT_SPLIT_REGEXP_1","DEFAULT_SPLIT_REGEXP_2","DEFAULT_STRIP_REGEXP","paramCase","input","result","replace","start","end","length","charAt","slice","split","map","str","toLowerCase","join","safeJSONStringify","value","JSON","stringify","_","v","toString","singleDebounce","cb","debounceMc","reRunOnInProgressCall","timeout","inProgress","pendingInProgress","run","clearTimeout","setTimeout","sleep","timeout","Promise","resolve","setTimeout","isProduction","process","env","prefix","invariant","condition","message","Error","upperCaseFirst","input","charAt","toUpperCase","slice","zip","arr1","arr2","length","Math","min","result","i","push"]} | ||
| {"version":3,"file":"index.cjs","names":[],"sources":["../src/is-plain-object.ts","../src/clone.ts","../src/enumerable.ts","../src/lower-case-first.ts","../src/param-case.ts","../src/safe-json-stringify.ts","../src/single-debounce.ts","../src/sleep.ts","../src/tiny-invariant.ts","../src/upper-case-first.ts","../src/zip.ts"],"sourcesContent":["function isObject(o: unknown) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nexport function isPlainObject(o: unknown) {\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n const ctor = (o as { constructor: unknown }).constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n const prot = (ctor as { prototype: unknown }).prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (Object.prototype.hasOwnProperty.call(prot, 'isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n","import { isPlainObject } from './is-plain-object';\n\n/**\n * Clones the given object. Only arrays and plain objects are cloned. Other values are returned as is.\n */\nexport function clone<T>(value: T): T {\n if (Array.isArray(value)) {\n return value.map((v) => clone(v)) as T;\n }\n\n if (typeof value === 'object') {\n if (!value || !isPlainObject(value)) {\n return value;\n }\n\n const result: any = {};\n for (const key of Object.keys(value)) {\n result[key] = clone(value[key as keyof T]);\n }\n return result;\n }\n\n return value;\n}\n","/**\n * Array or scalar\n */\nexport type Enumerable<T> = T | Array<T>;\n\n/**\n * Uniformly enumerates an array or scalar.\n */\nexport function enumerate<T>(x: Enumerable<T>) {\n if (x === null || x === undefined) {\n return [];\n } else if (Array.isArray(x)) {\n return x;\n } else {\n return [x];\n }\n}\n","export function lowerCaseFirst(input: string) {\n return input.charAt(0).toLowerCase() + input.slice(1);\n}\n","const DEFAULT_SPLIT_REGEXP_1 = /([a-z0-9])([A-Z])/g;\nconst DEFAULT_SPLIT_REGEXP_2 = /([A-Z])([A-Z][a-z])/g;\nconst DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n\nexport function paramCase(input: string) {\n const result = input\n .replace(DEFAULT_SPLIT_REGEXP_1, '$1\\0$2')\n .replace(DEFAULT_SPLIT_REGEXP_2, '$1\\0$2')\n .replace(DEFAULT_STRIP_REGEXP, '\\0');\n\n let start = 0;\n let end = result.length;\n\n while (result.charAt(start) === '\\0') start++;\n while (result.charAt(end - 1) === '\\0') end--;\n\n return result\n .slice(start, end)\n .split('\\0')\n .map((str) => str.toLowerCase())\n .join('-');\n}\n","/**\n * A safe JSON stringify that handles bigint values.\n */\nexport function safeJSONStringify(value: unknown) {\n return JSON.stringify(value, (_, v) => {\n if (typeof v === 'bigint') {\n return v.toString();\n } else {\n return v;\n }\n });\n}\n","export function singleDebounce(cb: () => void | PromiseLike<void>, debounceMc: number, reRunOnInProgressCall: boolean = false) {\n let timeout: ReturnType<typeof setTimeout> | undefined;\n let inProgress = false;\n let pendingInProgress = false;\n\n const run = async () => {\n if (inProgress) {\n if (reRunOnInProgressCall) {\n pendingInProgress = true;\n }\n\n return;\n }\n\n inProgress = true;\n pendingInProgress = false;\n\n try {\n await cb();\n } finally {\n inProgress = false;\n\n if (pendingInProgress) {\n await run();\n }\n }\n };\n\n return () => {\n clearTimeout(timeout);\n\n timeout = setTimeout(run, debounceMc);\n }\n}\n","export function sleep(timeout: number) {\n return new Promise<void>((resolve) => {\n setTimeout(() => resolve(), timeout);\n });\n}\n","const isProduction = typeof process !== 'undefined' && process.env['NODE_ENV'] === 'production';\nconst prefix = 'Invariant failed';\n\nexport function invariant(condition: unknown, message?: string): asserts condition {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n }\n\n throw new Error(message ? `${prefix}: ${message}` : prefix);\n}\n","export function upperCaseFirst(input: string) {\n return input.charAt(0).toUpperCase() + input.slice(1);\n}\n","/**\n * Zips two arrays into an array of tuples.\n */\nexport function zip<T, U>(arr1: readonly T[], arr2: readonly U[]): Array<[T, U]> {\n const length = Math.min(arr1.length, arr2.length);\n const result: Array<[T, U]> = [];\n for (let i = 0; i < length; i++) {\n result.push([arr1[i]!, arr2[i]!]);\n }\n return result;\n}\n"],"mappings":"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"} |
+24
-12
@@ -0,1 +1,2 @@ | ||
| //#region src/clone.d.ts | ||
| /** | ||
@@ -5,3 +6,4 @@ * Clones the given object. Only arrays and plain objects are cloned. Other values are returned as is. | ||
| declare function clone<T>(value: T): T; | ||
| //#endregion | ||
| //#region src/enumerable.d.ts | ||
| /** | ||
@@ -15,9 +17,13 @@ * Array or scalar | ||
| declare function enumerate<T>(x: Enumerable<T>): T[]; | ||
| //#endregion | ||
| //#region src/is-plain-object.d.ts | ||
| declare function isPlainObject(o: unknown): boolean; | ||
| //#endregion | ||
| //#region src/lower-case-first.d.ts | ||
| declare function lowerCaseFirst(input: string): string; | ||
| //#endregion | ||
| //#region src/param-case.d.ts | ||
| declare function paramCase(input: string): string; | ||
| //#endregion | ||
| //#region src/safe-json-stringify.d.ts | ||
| /** | ||
@@ -27,11 +33,16 @@ * A safe JSON stringify that handles bigint values. | ||
| declare function safeJSONStringify(value: unknown): string; | ||
| //#endregion | ||
| //#region src/single-debounce.d.ts | ||
| declare function singleDebounce(cb: () => void | PromiseLike<void>, debounceMc: number, reRunOnInProgressCall?: boolean): () => void; | ||
| //#endregion | ||
| //#region src/sleep.d.ts | ||
| declare function sleep(timeout: number): Promise<void>; | ||
| //#endregion | ||
| //#region src/tiny-invariant.d.ts | ||
| declare function invariant(condition: unknown, message?: string): asserts condition; | ||
| //#endregion | ||
| //#region src/upper-case-first.d.ts | ||
| declare function upperCaseFirst(input: string): string; | ||
| //#endregion | ||
| //#region src/zip.d.ts | ||
| /** | ||
@@ -41,3 +52,4 @@ * Zips two arrays into an array of tuples. | ||
| declare function zip<T, U>(arr1: readonly T[], arr2: readonly U[]): Array<[T, U]>; | ||
| export { type Enumerable, clone, enumerate, invariant, isPlainObject, lowerCaseFirst, paramCase, safeJSONStringify, singleDebounce, sleep, upperCaseFirst, zip }; | ||
| //#endregion | ||
| export { Enumerable, clone, enumerate, invariant, isPlainObject, lowerCaseFirst, paramCase, safeJSONStringify, singleDebounce, sleep, upperCaseFirst, zip }; | ||
| //# sourceMappingURL=index.d.cts.map |
+10
-8
@@ -5,3 +5,3 @@ { | ||
| "description": "ZenStack Common Helpers", | ||
| "version": "3.5.6", | ||
| "version": "3.6.0", | ||
| "type": "module", | ||
@@ -25,4 +25,4 @@ "author": { | ||
| "import": { | ||
| "types": "./dist/index.d.ts", | ||
| "default": "./dist/index.js" | ||
| "types": "./dist/index.d.mts", | ||
| "default": "./dist/index.mjs" | ||
| }, | ||
@@ -36,10 +36,12 @@ "require": { | ||
| "devDependencies": { | ||
| "@zenstackhq/typescript-config": "3.5.6", | ||
| "@zenstackhq/eslint-config": "3.5.6", | ||
| "@zenstackhq/vitest-config": "3.5.6" | ||
| "@types/node": "^20.19.0", | ||
| "@zenstackhq/eslint-config": "3.6.0", | ||
| "@zenstackhq/typescript-config": "3.6.0", | ||
| "@zenstackhq/tsdown-config": "3.6.0", | ||
| "@zenstackhq/vitest-config": "3.6.0" | ||
| }, | ||
| "funding": "https://github.com/sponsors/zenstackhq", | ||
| "scripts": { | ||
| "build": "tsc --noEmit && tsup-node", | ||
| "watch": "tsup-node --watch", | ||
| "build": "tsc --noEmit && tsdown", | ||
| "watch": "tsdown --watch", | ||
| "lint": "eslint src --ext ts", | ||
@@ -46,0 +48,0 @@ "test": "vitest run", |
| /** | ||
| * Clones the given object. Only arrays and plain objects are cloned. Other values are returned as is. | ||
| */ | ||
| declare function clone<T>(value: T): T; | ||
| /** | ||
| * Array or scalar | ||
| */ | ||
| type Enumerable<T> = T | Array<T>; | ||
| /** | ||
| * Uniformly enumerates an array or scalar. | ||
| */ | ||
| declare function enumerate<T>(x: Enumerable<T>): T[]; | ||
| declare function isPlainObject(o: unknown): boolean; | ||
| declare function lowerCaseFirst(input: string): string; | ||
| declare function paramCase(input: string): string; | ||
| /** | ||
| * A safe JSON stringify that handles bigint values. | ||
| */ | ||
| declare function safeJSONStringify(value: unknown): string; | ||
| declare function singleDebounce(cb: () => void | PromiseLike<void>, debounceMc: number, reRunOnInProgressCall?: boolean): () => void; | ||
| declare function sleep(timeout: number): Promise<void>; | ||
| declare function invariant(condition: unknown, message?: string): asserts condition; | ||
| declare function upperCaseFirst(input: string): string; | ||
| /** | ||
| * Zips two arrays into an array of tuples. | ||
| */ | ||
| declare function zip<T, U>(arr1: readonly T[], arr2: readonly U[]): Array<[T, U]>; | ||
| export { type Enumerable, clone, enumerate, invariant, isPlainObject, lowerCaseFirst, paramCase, safeJSONStringify, singleDebounce, sleep, upperCaseFirst, zip }; |
-171
| var __defProp = Object.defineProperty; | ||
| var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); | ||
| // src/is-plain-object.ts | ||
| function isObject(o) { | ||
| return Object.prototype.toString.call(o) === "[object Object]"; | ||
| } | ||
| __name(isObject, "isObject"); | ||
| function isPlainObject(o) { | ||
| if (isObject(o) === false) return false; | ||
| const ctor = o.constructor; | ||
| if (ctor === void 0) return true; | ||
| const prot = ctor.prototype; | ||
| if (isObject(prot) === false) return false; | ||
| if (Object.prototype.hasOwnProperty.call(prot, "isPrototypeOf") === false) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| __name(isPlainObject, "isPlainObject"); | ||
| // src/clone.ts | ||
| function clone(value) { | ||
| if (Array.isArray(value)) { | ||
| return value.map((v) => clone(v)); | ||
| } | ||
| if (typeof value === "object") { | ||
| if (!value || !isPlainObject(value)) { | ||
| return value; | ||
| } | ||
| const result = {}; | ||
| for (const key of Object.keys(value)) { | ||
| result[key] = clone(value[key]); | ||
| } | ||
| return result; | ||
| } | ||
| return value; | ||
| } | ||
| __name(clone, "clone"); | ||
| // src/enumerable.ts | ||
| function enumerate(x) { | ||
| if (x === null || x === void 0) { | ||
| return []; | ||
| } else if (Array.isArray(x)) { | ||
| return x; | ||
| } else { | ||
| return [ | ||
| x | ||
| ]; | ||
| } | ||
| } | ||
| __name(enumerate, "enumerate"); | ||
| // src/lower-case-first.ts | ||
| function lowerCaseFirst(input) { | ||
| return input.charAt(0).toLowerCase() + input.slice(1); | ||
| } | ||
| __name(lowerCaseFirst, "lowerCaseFirst"); | ||
| // src/param-case.ts | ||
| var DEFAULT_SPLIT_REGEXP_1 = /([a-z0-9])([A-Z])/g; | ||
| var DEFAULT_SPLIT_REGEXP_2 = /([A-Z])([A-Z][a-z])/g; | ||
| var DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi; | ||
| function paramCase(input) { | ||
| const result = input.replace(DEFAULT_SPLIT_REGEXP_1, "$1\0$2").replace(DEFAULT_SPLIT_REGEXP_2, "$1\0$2").replace(DEFAULT_STRIP_REGEXP, "\0"); | ||
| let start = 0; | ||
| let end = result.length; | ||
| while (result.charAt(start) === "\0") start++; | ||
| while (result.charAt(end - 1) === "\0") end--; | ||
| return result.slice(start, end).split("\0").map((str) => str.toLowerCase()).join("-"); | ||
| } | ||
| __name(paramCase, "paramCase"); | ||
| // src/safe-json-stringify.ts | ||
| function safeJSONStringify(value) { | ||
| return JSON.stringify(value, (_, v) => { | ||
| if (typeof v === "bigint") { | ||
| return v.toString(); | ||
| } else { | ||
| return v; | ||
| } | ||
| }); | ||
| } | ||
| __name(safeJSONStringify, "safeJSONStringify"); | ||
| // src/single-debounce.ts | ||
| function singleDebounce(cb, debounceMc, reRunOnInProgressCall = false) { | ||
| let timeout; | ||
| let inProgress = false; | ||
| let pendingInProgress = false; | ||
| const run = /* @__PURE__ */ __name(async () => { | ||
| if (inProgress) { | ||
| if (reRunOnInProgressCall) { | ||
| pendingInProgress = true; | ||
| } | ||
| return; | ||
| } | ||
| inProgress = true; | ||
| pendingInProgress = false; | ||
| try { | ||
| await cb(); | ||
| } finally { | ||
| inProgress = false; | ||
| if (pendingInProgress) { | ||
| await run(); | ||
| } | ||
| } | ||
| }, "run"); | ||
| return () => { | ||
| clearTimeout(timeout); | ||
| timeout = setTimeout(run, debounceMc); | ||
| }; | ||
| } | ||
| __name(singleDebounce, "singleDebounce"); | ||
| // src/sleep.ts | ||
| function sleep(timeout) { | ||
| return new Promise((resolve) => { | ||
| setTimeout(() => resolve(), timeout); | ||
| }); | ||
| } | ||
| __name(sleep, "sleep"); | ||
| // src/tiny-invariant.ts | ||
| var isProduction = typeof process !== "undefined" && process.env["NODE_ENV"] === "production"; | ||
| var prefix = "Invariant failed"; | ||
| function invariant(condition, message) { | ||
| if (condition) { | ||
| return; | ||
| } | ||
| if (isProduction) { | ||
| throw new Error(prefix); | ||
| } | ||
| throw new Error(message ? `${prefix}: ${message}` : prefix); | ||
| } | ||
| __name(invariant, "invariant"); | ||
| // src/upper-case-first.ts | ||
| function upperCaseFirst(input) { | ||
| return input.charAt(0).toUpperCase() + input.slice(1); | ||
| } | ||
| __name(upperCaseFirst, "upperCaseFirst"); | ||
| // src/zip.ts | ||
| function zip(arr1, arr2) { | ||
| const length = Math.min(arr1.length, arr2.length); | ||
| const result = []; | ||
| for (let i = 0; i < length; i++) { | ||
| result.push([ | ||
| arr1[i], | ||
| arr2[i] | ||
| ]); | ||
| } | ||
| return result; | ||
| } | ||
| __name(zip, "zip"); | ||
| export { | ||
| clone, | ||
| enumerate, | ||
| invariant, | ||
| isPlainObject, | ||
| lowerCaseFirst, | ||
| paramCase, | ||
| safeJSONStringify, | ||
| singleDebounce, | ||
| sleep, | ||
| upperCaseFirst, | ||
| zip | ||
| }; | ||
| //# sourceMappingURL=index.js.map |
| {"version":3,"sources":["../src/is-plain-object.ts","../src/clone.ts","../src/enumerable.ts","../src/lower-case-first.ts","../src/param-case.ts","../src/safe-json-stringify.ts","../src/single-debounce.ts","../src/sleep.ts","../src/tiny-invariant.ts","../src/upper-case-first.ts","../src/zip.ts"],"sourcesContent":["function isObject(o: unknown) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nexport function isPlainObject(o: unknown) {\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n const ctor = (o as { constructor: unknown }).constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n const prot = (ctor as { prototype: unknown }).prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (Object.prototype.hasOwnProperty.call(prot, 'isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n","import { isPlainObject } from './is-plain-object';\n\n/**\n * Clones the given object. Only arrays and plain objects are cloned. Other values are returned as is.\n */\nexport function clone<T>(value: T): T {\n if (Array.isArray(value)) {\n return value.map((v) => clone(v)) as T;\n }\n\n if (typeof value === 'object') {\n if (!value || !isPlainObject(value)) {\n return value;\n }\n\n const result: any = {};\n for (const key of Object.keys(value)) {\n result[key] = clone(value[key as keyof T]);\n }\n return result;\n }\n\n return value;\n}\n","/**\n * Array or scalar\n */\nexport type Enumerable<T> = T | Array<T>;\n\n/**\n * Uniformly enumerates an array or scalar.\n */\nexport function enumerate<T>(x: Enumerable<T>) {\n if (x === null || x === undefined) {\n return [];\n } else if (Array.isArray(x)) {\n return x;\n } else {\n return [x];\n }\n}\n","export function lowerCaseFirst(input: string) {\n return input.charAt(0).toLowerCase() + input.slice(1);\n}\n","const DEFAULT_SPLIT_REGEXP_1 = /([a-z0-9])([A-Z])/g;\nconst DEFAULT_SPLIT_REGEXP_2 = /([A-Z])([A-Z][a-z])/g;\nconst DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n\nexport function paramCase(input: string) {\n const result = input\n .replace(DEFAULT_SPLIT_REGEXP_1, '$1\\0$2')\n .replace(DEFAULT_SPLIT_REGEXP_2, '$1\\0$2')\n .replace(DEFAULT_STRIP_REGEXP, '\\0');\n\n let start = 0;\n let end = result.length;\n\n while (result.charAt(start) === '\\0') start++;\n while (result.charAt(end - 1) === '\\0') end--;\n\n return result\n .slice(start, end)\n .split('\\0')\n .map((str) => str.toLowerCase())\n .join('-');\n}\n","/**\n * A safe JSON stringify that handles bigint values.\n */\nexport function safeJSONStringify(value: unknown) {\n return JSON.stringify(value, (_, v) => {\n if (typeof v === 'bigint') {\n return v.toString();\n } else {\n return v;\n }\n });\n}\n","export function singleDebounce(cb: () => void | PromiseLike<void>, debounceMc: number, reRunOnInProgressCall: boolean = false) {\n let timeout: ReturnType<typeof setTimeout> | undefined;\n let inProgress = false;\n let pendingInProgress = false;\n\n const run = async () => {\n if (inProgress) {\n if (reRunOnInProgressCall) {\n pendingInProgress = true;\n }\n\n return;\n }\n\n inProgress = true;\n pendingInProgress = false;\n\n try {\n await cb();\n } finally {\n inProgress = false;\n\n if (pendingInProgress) {\n await run();\n }\n }\n };\n\n return () => {\n clearTimeout(timeout);\n\n timeout = setTimeout(run, debounceMc);\n }\n}\n","export function sleep(timeout: number) {\n return new Promise<void>((resolve) => {\n setTimeout(() => resolve(), timeout);\n });\n}\n","const isProduction = typeof process !== 'undefined' && process.env['NODE_ENV'] === 'production';\nconst prefix = 'Invariant failed';\n\nexport function invariant(condition: unknown, message?: string): asserts condition {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n }\n\n throw new Error(message ? `${prefix}: ${message}` : prefix);\n}\n","export function upperCaseFirst(input: string) {\n return input.charAt(0).toUpperCase() + input.slice(1);\n}\n","/**\n * Zips two arrays into an array of tuples.\n */\nexport function zip<T, U>(arr1: readonly T[], arr2: readonly U[]): Array<[T, U]> {\n const length = Math.min(arr1.length, arr2.length);\n const result: Array<[T, U]> = [];\n for (let i = 0; i < length; i++) {\n result.push([arr1[i]!, arr2[i]!]);\n }\n return result;\n}\n"],"mappings":"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","names":["isObject","o","Object","prototype","toString","call","isPlainObject","ctor","undefined","prot","hasOwnProperty","clone","value","Array","isArray","map","v","isPlainObject","result","key","Object","keys","enumerate","x","undefined","Array","isArray","lowerCaseFirst","input","charAt","toLowerCase","slice","DEFAULT_SPLIT_REGEXP_1","DEFAULT_SPLIT_REGEXP_2","DEFAULT_STRIP_REGEXP","paramCase","input","result","replace","start","end","length","charAt","slice","split","map","str","toLowerCase","join","safeJSONStringify","value","JSON","stringify","_","v","toString","singleDebounce","cb","debounceMc","reRunOnInProgressCall","timeout","inProgress","pendingInProgress","run","clearTimeout","setTimeout","sleep","timeout","Promise","resolve","setTimeout","isProduction","process","env","prefix","invariant","condition","message","Error","upperCaseFirst","input","charAt","toUpperCase","slice","zip","arr1","arr2","length","Math","min","result","i","push"]} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
27945
-12.66%5
66.67%263
-30.79%1
Infinity%