@js-toolkit/utils
Advanced tools
Comparing version 1.51.1 to 1.52.0
@@ -1,1 +0,1 @@ | ||
function objectToString(t){const{message:r,cause:n}=t;if(r)return n?`${r} => cause: ${getErrorMessage(n)}`:r;const o=t.toString();if(o==={}.toString())try{return JSON.stringify(t)}catch(r){console.warn("Stringify object failed:",t)}return o}export function getErrorMessage(t){if("object"!=typeof t||null==t)return String(t);if(Object.hasOwn(t,"toString"))return t.toString();if(t.constructor==={}.constructor)return objectToString(t);const r=Object.getPrototypeOf(t);return r&&Object.hasOwn(r,"toString")?t.toString():t.constructor.name?`${t.constructor.name}: ${objectToString(t)}`:objectToString(t)} | ||
function objectToString(t){const{message:r,cause:o}=t;if(r)return o?`${r} => cause: ${getErrorMessage(o)}`:r;const e=t.toString();if(e==={}.toString())try{return JSON.stringify(t)}catch(r){console.warn("Stringify object failed:",t)}return e}export function getErrorMessage(t){if("object"!=typeof t||null==t)return String(t);const r=Object.getPrototypeOf(t);return t instanceof Error&&r===Error.prototype&&null!=t.cause?`${t.constructor.name}: ${t.message} => cause: ${getErrorMessage(t.cause)}`:Object.hasOwn(t,"toString")?t.toString():t.constructor==={}.constructor?objectToString(t):r&&Object.hasOwn(r,"toString")?t.toString():t.constructor.name?`${t.constructor.name}: ${objectToString(t)}`:objectToString(t)} |
{ | ||
"name": "@js-toolkit/utils", | ||
"version": "1.51.1", | ||
"version": "1.52.0", | ||
"description": "Typescript helper types and utils", | ||
@@ -5,0 +5,0 @@ "author": "VZH", |
@@ -113,2 +113,6 @@ type NonNullValue = {}; | ||
} : never; | ||
/** Get values of enum as union. */ | ||
type EnumToUnion<T extends Record<keyof T, string | number>> = Keys<{ | ||
[P in keyof T as `${T[P]}`]: P; | ||
}>; | ||
type LowercaseKeys<T extends AnyObject> = T extends T ? { | ||
@@ -155,3 +159,3 @@ [P in keyof T as P extends number ? P : Lowercase<Extract<P, string>>]: T[P]; | ||
type NonUnion<T> = [T] extends [UnionToIntersection<T>] ? T : never; | ||
type IfTuple<T, Then = T, Else = never> = T extends ArrayLike<any> ? number extends T['length'] ? Then : Else : Else; | ||
type IfTuple<T, Then = T, Else = never> = T extends ArrayLike<any> ? (number extends T['length'] ? Then : Else) : Else; | ||
/** Returns union of tuple indices. */ | ||
@@ -158,0 +162,0 @@ type TupleIndices<T extends readonly any[]> = T extends T ? Extract<keyof T, `${number}`> extends `${infer N extends number}` ? N : never : never; |
78498
103
1099