need-result 1.2.2 → 1.2.3
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.d.mts +2 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.d.mts
CHANGED
|
@@ -55,7 +55,8 @@ declare const TTY_COLORS: {
|
|
|
55
55
|
};
|
|
56
56
|
};
|
|
57
57
|
declare const logError: <ShouldReturn extends boolean = false>(error: ErrorT | Err<ErrorT>, shouldReturn?: ShouldReturn) => ShouldReturn extends true ? string : undefined;
|
|
58
|
-
declare
|
|
58
|
+
declare function throwOnError<E extends ErrorT | Err<ErrorT>>(error: E): never;
|
|
59
|
+
declare function throwOnError<E extends undefined | null>(error: E): void;
|
|
59
60
|
declare class ErrorT<Code extends LiteralString = LiteralString, Message extends LiteralString = LiteralString, Hint extends string = string, Data extends Record<string, unknown> = Record<string, unknown>, Cause extends Error | ErrorT | unknown = unknown> {
|
|
60
61
|
code: Uppercase<Code>;
|
|
61
62
|
data?: Data;
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/utility.types.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/utility.types.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -4,7 +4,7 @@ const e=e=>!!e&&(typeof e==`object`||typeof e==`function`)&&typeof e.then==`func
|
|
|
4
4
|
`).map(e=>`${f} ${e}`).join(`
|
|
5
5
|
`)}${o.reset}`:``,`${p} ${o.fg.black}${n(a,5).slice(3)}${o.reset}`].filter(e=>e!==``).map(e=>typeof e==`string`?n(e,2):e).join(`
|
|
6
6
|
`),h=[`${o.bright}${o.fg.red}Error:${o.reset}`,m,Object.keys(d).length>0?JSON.stringify(d,null,2):``,o.reset];if(t)return h.join(`
|
|
7
|
-
`);console.error(...h)}
|
|
7
|
+
`);console.error(...h)};function c(e){if(e)throw s(e)}var l=class e{code;data;cause;hint;message;name;stack;constructor(n){this.name=`ErrorT`,this.code=n.code?.toUpperCase()||`UNKNOWN_ERROR`,this.data=n.data,this.cause=n.cause,this.message=n.message||`Unknown error`,this.hint=n.hint;let r=t(n.stackSkip??e);r=r.replace(`Error`,``).split(`
|
|
8
8
|
`).map(e=>e.trimStart()).join(`
|
|
9
9
|
`).trim(),this.stack=r||`Unknown stack`}toString(){return s(this,!0)}};export{l as ErrorT,o as TTY_COLORS,i as err,s as logError,r as ok,c as throwOnError,a as trycatch};
|
|
10
10
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["target: { stack?: string }","padding"],"sources":["../src/utility.ts","../src/index.ts"],"sourcesContent":["export const isPromise = <T = any>(value: unknown): value is Promise<T> => {\n\treturn (\n\t\t!!value &&\n\t\t(typeof value === \"object\" || typeof value === \"function\") &&\n\t\ttypeof (value as any).then === \"function\"\n\t);\n};\n\nexport function capture(stackSkip?: Function) {\n\tconst target: { stack?: string } = {};\n\tif (\"captureStackTrace\" in Error) {\n\t\t(Error as any).captureStackTrace(target, stackSkip ?? capture);\n\t} else {\n\t\ttarget.stack = new Error().stack;\n\t}\n\treturn target.stack!;\n}\n\nexport function padding(text: string, spaces: number): string {\n\tconst padding = \" \".repeat(spaces);\n\treturn text\n\t\t.split(\"\\n\")\n\t\t.map((line) => padding + line)\n\t\t.join(\"\\n\");\n}\n","import type { Err, Ok, Result } from \"./types\";\nimport { capture, isPromise, padding } from \"./utility\";\nimport type { LiteralString } from \"./utility.types\";\n\nexport * from \"./types\";\n\nexport const ok = <T>(data: T): Ok<T> => [data, null];\n\nexport function err<E extends ErrorT>(error: E): Err<E>;\nexport function err(\n\terror: Error & { code?: never },\n): Err<ErrorT<\"UNKNOWN_ERROR\", string, string, Record<string, unknown>, Error>>;\nexport function err<\n\tCode extends LiteralString = LiteralString,\n\tMessage extends LiteralString = LiteralString,\n\tHint extends string = string,\n\tData extends Record<string, unknown> = Record<string, unknown>,\n\tCause extends Error | ErrorT | unknown = unknown,\n>(error: {\n\tcode: Code;\n\tmessage: Message;\n\thint?: Hint;\n\tdata?: Data;\n\tcause?: Cause;\n}): Err<ErrorT<Uppercase<Code>, Message, Hint, Data, Cause>>;\nexport function err(\n\terror: unknown,\n): Err<\n\tErrorT<\"UNKNOWN_ERROR\", string, string, Record<string, unknown>, unknown>\n>;\nexport function err(\n\terror:\n\t\t| Error\n\t\t| unknown\n\t\t| {\n\t\t\t\tcode: LiteralString;\n\t\t\t\tmessage: LiteralString;\n\t\t\t\thint?: string;\n\t\t\t\tdata?: Record<string, unknown>;\n\t\t\t\tcause?: Error | ErrorT | unknown;\n\t\t }\n\t\t| ErrorT,\n): Err<ErrorT> {\n\tif (error instanceof ErrorT) {\n\t\treturn [null, error] as Err<ErrorT>;\n\t}\n\n\tif (error instanceof Error) {\n\t\treturn [\n\t\t\tnull,\n\t\t\tnew ErrorT({\n\t\t\t\tcode: \"UNKNOWN_ERROR\",\n\t\t\t\tmessage: \"message\" in error ? error.message : String(error),\n\t\t\t\tcause: error ?? undefined,\n\t\t\t\tstackSkip: err,\n\t\t\t}),\n\t\t];\n\t}\n\n\tif (\n\t\ttypeof error === \"object\" &&\n\t\terror !== null &&\n\t\t\"code\" in error &&\n\t\t\"message\" in error\n\t) {\n\t\tconst errorObj = error as {\n\t\t\tcode: LiteralString;\n\t\t\tmessage: LiteralString;\n\t\t\thint?: string;\n\t\t\tdata?: Record<string, unknown>;\n\t\t\tcause?: Error | ErrorT | unknown;\n\t\t};\n\t\treturn [\n\t\t\tnull,\n\t\t\tnew ErrorT({\n\t\t\t\tcode: errorObj.code,\n\t\t\t\tmessage: errorObj.message,\n\t\t\t\thint: errorObj.hint,\n\t\t\t\tdata: errorObj.data,\n\t\t\t\tcause: errorObj.cause,\n\t\t\t\tstackSkip: err,\n\t\t\t}),\n\t\t];\n\t}\n\n\tconst unknownError = error as unknown;\n\n\tconst e = new ErrorT({\n\t\tcode: \"UNKNOWN_ERROR\",\n\t\tmessage:\n\t\t\ttypeof unknownError === \"object\" &&\n\t\t\tunknownError !== null &&\n\t\t\t\"message\" in unknownError &&\n\t\t\ttypeof unknownError.message === \"string\"\n\t\t\t\t? unknownError.message\n\t\t\t\t: String(error) || \"Unknown error\",\n\t\tcause: error ?? undefined,\n\t});\n\treturn [null, e];\n}\n\n//----------------------------------------------------\n// Some of the try-catch code was a copy from\n// https://gist.github.com/t3dotgg/a486c4ae66d32bf17c09c73609dacc5b\n//----------------------------------------------------\ntype Operation<T> = Promise<T> | (() => T) | (() => Promise<T>);\n\nexport function trycatch<T>(operation: Promise<T>): Promise<Result<T, ErrorT>>;\n\nexport function trycatch<T>(operation: () => never): Result<never, ErrorT>;\n\nexport function trycatch<T>(\n\toperation: () => Promise<T>,\n): Promise<Result<T, ErrorT>>;\n\nexport function trycatch<T>(operation: () => T): Result<T, ErrorT>;\n\nexport function trycatch<T>(\n\toperation: Operation<T>,\n): Result<T, ErrorT> | Promise<Result<T, ErrorT>> {\n\ttry {\n\t\tconst result = typeof operation === \"function\" ? operation() : operation;\n\n\t\tif (isPromise(result)) {\n\t\t\treturn Promise.resolve(result)\n\t\t\t\t.then((data) => ok(data))\n\t\t\t\t.catch((error) => err(error));\n\t\t}\n\n\t\treturn ok(result);\n\t} catch (error) {\n\t\treturn err(error);\n\t}\n}\n\n// ----------------------------------------------------\n\nexport const TTY_COLORS = {\n\treset: \"\\x1b[0m\",\n\tbright: \"\\x1b[1m\",\n\tdim: \"\\x1b[2m\",\n\tundim: \"\\x1b[22m\",\n\tunderscore: \"\\x1b[4m\",\n\tblink: \"\\x1b[5m\",\n\treverse: \"\\x1b[7m\",\n\thidden: \"\\x1b[8m\",\n\tfg: {\n\t\tblack: \"\\x1b[30m\",\n\t\tred: \"\\x1b[31m\",\n\t\tgreen: \"\\x1b[32m\",\n\t\tyellow: \"\\x1b[33m\",\n\t\tblue: \"\\x1b[34m\",\n\t\tmagenta: \"\\x1b[35m\",\n\t\tcyan: \"\\x1b[36m\",\n\t\twhite: \"\\x1b[37m\",\n\t},\n\tbg: {\n\t\tblack: \"\\x1b[40m\",\n\t\tred: \"\\x1b[41m\",\n\t\tgreen: \"\\x1b[42m\",\n\t\tyellow: \"\\x1b[43m\",\n\t\tblue: \"\\x1b[44m\",\n\t\tmagenta: \"\\x1b[45m\",\n\t\tcyan: \"\\x1b[46m\",\n\t\twhite: \"\\x1b[47m\",\n\t},\n} as const;\n\nexport const logError = <ShouldReturn extends boolean = false>(\n\terror: ErrorT | Err<ErrorT>,\n\tshouldReturn: ShouldReturn = false as ShouldReturn,\n): ShouldReturn extends true ? string : undefined => {\n\tconst { code, message, stack, name, cause, hint, data, ...rest } =\n\t\tArray.isArray(error) ? error[1] : error;\n\tfor (const [key, value] of Object.entries(rest)) {\n\t\t//@ts-expect-error - intentional\n\t\tif (typeof value === \"undefined\") delete rest[key];\n\t}\n\n\tconst l = `${TTY_COLORS.dim}│${TTY_COLORS.reset} `;\n\tconst cl = `${TTY_COLORS.dim}└${TTY_COLORS.reset} `;\n\n\tconst lines = [\n\t\t`\\n${l} ${TTY_COLORS.dim}Code:${TTY_COLORS.reset} ${TTY_COLORS.bright}${TTY_COLORS.fg.red}${code}${TTY_COLORS.reset}`,\n\t\t`${l} ${TTY_COLORS.dim}Message:${TTY_COLORS.reset} ${TTY_COLORS.fg.red}${message}${TTY_COLORS.reset}`,\n\t\thint\n\t\t\t? `${l} ${TTY_COLORS.dim}Hint:${TTY_COLORS.reset} ${hint}${TTY_COLORS.reset}`\n\t\t\t: \"\",\n\t\tcause ? `${l} ${TTY_COLORS.dim}Cause:${TTY_COLORS.reset} ${cause}` : \"\",\n\t\tdata\n\t\t\t? `${l} ${TTY_COLORS.dim}Data:${TTY_COLORS.reset}\\n${padding(\n\t\t\t\t\tJSON.stringify(data, null, 2),\n\t\t\t\t\t4,\n\t\t\t\t)\n\t\t\t\t\t.split(\"\\n\")\n\t\t\t\t\t.map((x) => `${l} ${x}`)\n\t\t\t\t\t.join(\"\\n\")}${TTY_COLORS.reset}`\n\t\t\t: \"\",\n\t\t`${cl} ${TTY_COLORS.fg.black}${padding(stack, 5).slice(3)}${TTY_COLORS.reset}`,\n\t]\n\t\t.filter((x) => x !== \"\")\n\t\t.map((x) => {\n\t\t\tif (typeof x === \"string\") {\n\t\t\t\treturn padding(x, 2);\n\t\t\t}\n\t\t\treturn x;\n\t\t})\n\t\t.join(\"\\n\");\n\n\tconst result = [\n\t\t`${TTY_COLORS.bright}${TTY_COLORS.fg.red}Error:${TTY_COLORS.reset}`,\n\t\tlines,\n\t\tObject.keys(rest).length > 0 ? JSON.stringify(rest, null, 2) : \"\",\n\t\tTTY_COLORS.reset,\n\t];\n\n\tif (shouldReturn) {\n\t\treturn result.join(\"\\n\") as any;\n\t}\n\tconsole.error(...result);\n\treturn undefined as any;\n};\n\nexport const throwOnError = (\n\terror: ErrorT | Err<ErrorT> | undefined | null,\n) => {\n\tif (error) throw logError(error);\n};\n\nexport class ErrorT<\n\tCode extends LiteralString = LiteralString,\n\tMessage extends LiteralString = LiteralString,\n\tHint extends string = string,\n\tData extends Record<string, unknown> = Record<string, unknown>,\n\tCause extends Error | ErrorT | unknown = unknown,\n> {\n\tcode: Uppercase<Code>;\n\tdata?: Data;\n\tcause?: Cause;\n\thint?: Hint;\n\tmessage: Message;\n\tname: string;\n\tstack: string;\n\tconstructor(error: {\n\t\tcode: Code;\n\t\tdata?: Data;\n\t\tcause?: Cause;\n\t\tmessage: Message;\n\t\thint?: Hint;\n\t\tstackSkip?: Function;\n\t}) {\n\t\tthis.name = \"ErrorT\";\n\t\t//@ts-expect-error - last resort\n\t\tthis.code =\n\t\t\t((error.code as string)?.toUpperCase() as Uppercase<Code>) ||\n\t\t\t\"UNKNOWN_ERROR\";\n\t\tthis.data = error.data;\n\t\tthis.cause = error.cause;\n\t\t//@ts-expect-error - last resort\n\t\tthis.message = error.message || \"Unknown error\";\n\t\tthis.hint = error.hint;\n\t\tlet stack = capture(error.stackSkip ?? ErrorT);\n\t\tstack = stack\n\t\t\t.replace(\"Error\", \"\")\n\t\t\t.split(\"\\n\")\n\t\t\t.map((x) => x.trimStart())\n\t\t\t.join(\"\\n\")\n\t\t\t.trim();\n\t\tthis.stack = stack || \"Unknown stack\";\n\t}\n\n\ttoString() {\n\t\treturn logError(this, true);\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["target: { stack?: string }","padding"],"sources":["../src/utility.ts","../src/index.ts"],"sourcesContent":["export const isPromise = <T = any>(value: unknown): value is Promise<T> => {\n\treturn (\n\t\t!!value &&\n\t\t(typeof value === \"object\" || typeof value === \"function\") &&\n\t\ttypeof (value as any).then === \"function\"\n\t);\n};\n\nexport function capture(stackSkip?: Function) {\n\tconst target: { stack?: string } = {};\n\tif (\"captureStackTrace\" in Error) {\n\t\t(Error as any).captureStackTrace(target, stackSkip ?? capture);\n\t} else {\n\t\ttarget.stack = new (Error as any)().stack;\n\t}\n\treturn target.stack!;\n}\n\nexport function padding(text: string, spaces: number): string {\n\tconst padding = \" \".repeat(spaces);\n\treturn text\n\t\t.split(\"\\n\")\n\t\t.map((line) => padding + line)\n\t\t.join(\"\\n\");\n}\n","import type { Err, Ok, Result } from \"./types\";\nimport { capture, isPromise, padding } from \"./utility\";\nimport type { LiteralString } from \"./utility.types\";\n\nexport * from \"./types\";\n\nexport const ok = <T>(data: T): Ok<T> => [data, null];\n\nexport function err<E extends ErrorT>(error: E): Err<E>;\nexport function err(\n\terror: Error & { code?: never },\n): Err<ErrorT<\"UNKNOWN_ERROR\", string, string, Record<string, unknown>, Error>>;\nexport function err<\n\tCode extends LiteralString = LiteralString,\n\tMessage extends LiteralString = LiteralString,\n\tHint extends string = string,\n\tData extends Record<string, unknown> = Record<string, unknown>,\n\tCause extends Error | ErrorT | unknown = unknown,\n>(error: {\n\tcode: Code;\n\tmessage: Message;\n\thint?: Hint;\n\tdata?: Data;\n\tcause?: Cause;\n}): Err<ErrorT<Uppercase<Code>, Message, Hint, Data, Cause>>;\nexport function err(\n\terror: unknown,\n): Err<\n\tErrorT<\"UNKNOWN_ERROR\", string, string, Record<string, unknown>, unknown>\n>;\nexport function err(\n\terror:\n\t\t| Error\n\t\t| unknown\n\t\t| {\n\t\t\t\tcode: LiteralString;\n\t\t\t\tmessage: LiteralString;\n\t\t\t\thint?: string;\n\t\t\t\tdata?: Record<string, unknown>;\n\t\t\t\tcause?: Error | ErrorT | unknown;\n\t\t }\n\t\t| ErrorT,\n): Err<ErrorT> {\n\tif (error instanceof ErrorT) {\n\t\treturn [null, error] as Err<ErrorT>;\n\t}\n\n\tif (error instanceof Error) {\n\t\treturn [\n\t\t\tnull,\n\t\t\tnew ErrorT({\n\t\t\t\tcode: \"UNKNOWN_ERROR\",\n\t\t\t\tmessage: \"message\" in error ? error.message : String(error),\n\t\t\t\tcause: error ?? undefined,\n\t\t\t\tstackSkip: err,\n\t\t\t}),\n\t\t];\n\t}\n\n\tif (\n\t\ttypeof error === \"object\" &&\n\t\terror !== null &&\n\t\t\"code\" in error &&\n\t\t\"message\" in error\n\t) {\n\t\tconst errorObj = error as {\n\t\t\tcode: LiteralString;\n\t\t\tmessage: LiteralString;\n\t\t\thint?: string;\n\t\t\tdata?: Record<string, unknown>;\n\t\t\tcause?: Error | ErrorT | unknown;\n\t\t};\n\t\treturn [\n\t\t\tnull,\n\t\t\tnew ErrorT({\n\t\t\t\tcode: errorObj.code,\n\t\t\t\tmessage: errorObj.message,\n\t\t\t\thint: errorObj.hint,\n\t\t\t\tdata: errorObj.data,\n\t\t\t\tcause: errorObj.cause,\n\t\t\t\tstackSkip: err,\n\t\t\t}),\n\t\t];\n\t}\n\n\tconst unknownError = error as unknown;\n\n\tconst e = new ErrorT({\n\t\tcode: \"UNKNOWN_ERROR\",\n\t\tmessage:\n\t\t\ttypeof unknownError === \"object\" &&\n\t\t\tunknownError !== null &&\n\t\t\t\"message\" in unknownError &&\n\t\t\ttypeof unknownError.message === \"string\"\n\t\t\t\t? unknownError.message\n\t\t\t\t: String(error) || \"Unknown error\",\n\t\tcause: error ?? undefined,\n\t});\n\treturn [null, e];\n}\n\n//----------------------------------------------------\n// Some of the try-catch code was a copy from\n// https://gist.github.com/t3dotgg/a486c4ae66d32bf17c09c73609dacc5b\n//----------------------------------------------------\ntype Operation<T> = Promise<T> | (() => T) | (() => Promise<T>);\n\nexport function trycatch<T>(operation: Promise<T>): Promise<Result<T, ErrorT>>;\n\nexport function trycatch<T>(operation: () => never): Result<never, ErrorT>;\n\nexport function trycatch<T>(\n\toperation: () => Promise<T>,\n): Promise<Result<T, ErrorT>>;\n\nexport function trycatch<T>(operation: () => T): Result<T, ErrorT>;\n\nexport function trycatch<T>(\n\toperation: Operation<T>,\n): Result<T, ErrorT> | Promise<Result<T, ErrorT>> {\n\ttry {\n\t\tconst result = typeof operation === \"function\" ? operation() : operation;\n\n\t\tif (isPromise(result)) {\n\t\t\treturn Promise.resolve(result)\n\t\t\t\t.then((data) => ok(data))\n\t\t\t\t.catch((error) => err(error));\n\t\t}\n\n\t\treturn ok(result);\n\t} catch (error) {\n\t\treturn err(error);\n\t}\n}\n\n// ----------------------------------------------------\n\nexport const TTY_COLORS = {\n\treset: \"\\x1b[0m\",\n\tbright: \"\\x1b[1m\",\n\tdim: \"\\x1b[2m\",\n\tundim: \"\\x1b[22m\",\n\tunderscore: \"\\x1b[4m\",\n\tblink: \"\\x1b[5m\",\n\treverse: \"\\x1b[7m\",\n\thidden: \"\\x1b[8m\",\n\tfg: {\n\t\tblack: \"\\x1b[30m\",\n\t\tred: \"\\x1b[31m\",\n\t\tgreen: \"\\x1b[32m\",\n\t\tyellow: \"\\x1b[33m\",\n\t\tblue: \"\\x1b[34m\",\n\t\tmagenta: \"\\x1b[35m\",\n\t\tcyan: \"\\x1b[36m\",\n\t\twhite: \"\\x1b[37m\",\n\t},\n\tbg: {\n\t\tblack: \"\\x1b[40m\",\n\t\tred: \"\\x1b[41m\",\n\t\tgreen: \"\\x1b[42m\",\n\t\tyellow: \"\\x1b[43m\",\n\t\tblue: \"\\x1b[44m\",\n\t\tmagenta: \"\\x1b[45m\",\n\t\tcyan: \"\\x1b[46m\",\n\t\twhite: \"\\x1b[47m\",\n\t},\n} as const;\n\nexport const logError = <ShouldReturn extends boolean = false>(\n\terror: ErrorT | Err<ErrorT>,\n\tshouldReturn: ShouldReturn = false as ShouldReturn,\n): ShouldReturn extends true ? string : undefined => {\n\tconst { code, message, stack, name, cause, hint, data, ...rest } =\n\t\tArray.isArray(error) ? error[1] : error;\n\tfor (const [key, value] of Object.entries(rest)) {\n\t\t//@ts-expect-error - intentional\n\t\tif (typeof value === \"undefined\") delete rest[key];\n\t}\n\n\tconst l = `${TTY_COLORS.dim}│${TTY_COLORS.reset} `;\n\tconst cl = `${TTY_COLORS.dim}└${TTY_COLORS.reset} `;\n\n\tconst lines = [\n\t\t`\\n${l} ${TTY_COLORS.dim}Code:${TTY_COLORS.reset} ${TTY_COLORS.bright}${TTY_COLORS.fg.red}${code}${TTY_COLORS.reset}`,\n\t\t`${l} ${TTY_COLORS.dim}Message:${TTY_COLORS.reset} ${TTY_COLORS.fg.red}${message}${TTY_COLORS.reset}`,\n\t\thint\n\t\t\t? `${l} ${TTY_COLORS.dim}Hint:${TTY_COLORS.reset} ${hint}${TTY_COLORS.reset}`\n\t\t\t: \"\",\n\t\tcause ? `${l} ${TTY_COLORS.dim}Cause:${TTY_COLORS.reset} ${cause}` : \"\",\n\t\tdata\n\t\t\t? `${l} ${TTY_COLORS.dim}Data:${TTY_COLORS.reset}\\n${padding(\n\t\t\t\t\tJSON.stringify(data, null, 2),\n\t\t\t\t\t4,\n\t\t\t\t)\n\t\t\t\t\t.split(\"\\n\")\n\t\t\t\t\t.map((x) => `${l} ${x}`)\n\t\t\t\t\t.join(\"\\n\")}${TTY_COLORS.reset}`\n\t\t\t: \"\",\n\t\t`${cl} ${TTY_COLORS.fg.black}${padding(stack, 5).slice(3)}${TTY_COLORS.reset}`,\n\t]\n\t\t.filter((x) => x !== \"\")\n\t\t.map((x) => {\n\t\t\tif (typeof x === \"string\") {\n\t\t\t\treturn padding(x, 2);\n\t\t\t}\n\t\t\treturn x;\n\t\t})\n\t\t.join(\"\\n\");\n\n\tconst result = [\n\t\t`${TTY_COLORS.bright}${TTY_COLORS.fg.red}Error:${TTY_COLORS.reset}`,\n\t\tlines,\n\t\tObject.keys(rest).length > 0 ? JSON.stringify(rest, null, 2) : \"\",\n\t\tTTY_COLORS.reset,\n\t];\n\n\tif (shouldReturn) {\n\t\treturn result.join(\"\\n\") as any;\n\t}\n\tconsole.error(...result);\n\treturn undefined as any;\n};\n\nexport function throwOnError<E extends ErrorT | Err<ErrorT>>(error: E): never;\nexport function throwOnError<E extends undefined | null>(error: E): void;\nexport function throwOnError<E extends ErrorT | Err<ErrorT> | undefined | null>(\n\terror: E,\n) {\n\tif (error) {\n\t\tthrow logError(error) as any;\n\t}\n}\n\nexport class ErrorT<\n\tCode extends LiteralString = LiteralString,\n\tMessage extends LiteralString = LiteralString,\n\tHint extends string = string,\n\tData extends Record<string, unknown> = Record<string, unknown>,\n\tCause extends Error | ErrorT | unknown = unknown,\n> {\n\tcode: Uppercase<Code>;\n\tdata?: Data;\n\tcause?: Cause;\n\thint?: Hint;\n\tmessage: Message;\n\tname: string;\n\tstack: string;\n\tconstructor(error: {\n\t\tcode: Code;\n\t\tdata?: Data;\n\t\tcause?: Cause;\n\t\tmessage: Message;\n\t\thint?: Hint;\n\t\tstackSkip?: Function;\n\t}) {\n\t\tthis.name = \"ErrorT\";\n\t\t//@ts-expect-error - last resort\n\t\tthis.code =\n\t\t\t((error.code as string)?.toUpperCase() as Uppercase<Code>) ||\n\t\t\t\"UNKNOWN_ERROR\";\n\t\tthis.data = error.data;\n\t\tthis.cause = error.cause;\n\t\t//@ts-expect-error - last resort\n\t\tthis.message = error.message || \"Unknown error\";\n\t\tthis.hint = error.hint;\n\t\tlet stack = capture(error.stackSkip ?? ErrorT);\n\t\tstack = stack\n\t\t\t.replace(\"Error\", \"\")\n\t\t\t.split(\"\\n\")\n\t\t\t.map((x) => x.trimStart())\n\t\t\t.join(\"\\n\")\n\t\t\t.trim();\n\t\tthis.stack = stack || \"Unknown stack\";\n\t}\n\n\ttoString() {\n\t\treturn logError(this, true);\n\t}\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "need-result",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"packageManager": "bun@1.3.5",
|
|
6
6
|
"license": "MIT",
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
"url": "https://github.com/ping-maxwell/need-result.git"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
32
|
+
"@biomejs/biome": "2.2.0",
|
|
33
|
+
"@types/node": "^25.0.3",
|
|
34
|
+
"tsdown": "^0.18.3"
|
|
35
35
|
},
|
|
36
36
|
"main": "./dist/index.mjs",
|
|
37
37
|
"module": "./dist/index.mjs",
|