@devp0nt/error0 1.0.0-next.10 → 1.0.0-next.12
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/cjs/index.d.cts +186 -186
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.d.ts +186 -186
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +102 -103
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import { Meta0, meta0PluginTag } from '@devp0nt/meta0'\nimport { type AxiosError, HttpStatusCode, isAxiosError } from 'axios'\nimport get from 'lodash/get.js'\nimport { ZodError } from 'zod'\n\n// TODO: Зод, аксиос, это всё плагины\n// TODO: В эррор0 добавить ориджинал\n// TODO: store tags as array from all causes\n// TODO: not use self stack if toError0\n// TODO: fix default message in extended error0, should be used in constuctor of Error0\n// TODO: remove defaults prop from getPropsFromUnknown\n// TODO: code has enum type, fn to check if code exists\n\nexport interface Error0Input {\n message?: string\n tag?: string\n code?: string\n httpStatus?: HttpStatusCode | HttpStatusCodeString\n expected?: boolean | ExpectedFn\n clientMessage?: string\n cause?: Error0Cause\n stack?: string\n meta?: Meta0.Meta0OrValueTypeNullish\n zodError?: ZodError\n axiosError?: AxiosError\n}\n\ninterface Error0GeneralProps {\n message: Error0Input['message']\n tag: Error0Input['tag']\n code: Error0Input['code']\n httpStatus: number | undefined\n expected: boolean | undefined\n clientMessage: Error0Input['clientMessage']\n anyMessage: string | undefined\n cause: Error0Input['cause']\n stack: Error['stack']\n meta: Meta0.ValueType\n zodError?: ZodError\n axiosError?: AxiosError\n}\n\ntype HttpStatusCodeString = keyof typeof HttpStatusCode\ntype Error0Cause = Error | Error0 | unknown\ntype ExpectedFn = (error: Error0GeneralProps) => boolean | undefined\n\nconst isFilled = <T>(value: T): value is NonNullable<T> => value !== null && value !== undefined && value !== ''\nconst toStringOrUndefined = (value: unknown): string | undefined => {\n return typeof value === 'string' ? value : undefined\n}\nconst toNumberOrUndefined = (value: unknown): number | undefined => {\n if (typeof value === 'number') {\n return value\n }\n const number = Number(value)\n if (typeof value === 'string' && !Number.isNaN(number)) {\n return number\n }\n return undefined\n}\nconst toBooleanOrUndefined = (value: unknown): boolean | undefined => {\n if (typeof value === 'boolean') {\n return value\n }\n return undefined\n}\n\nexport class Error0 extends Error {\n public readonly __I_AM_ERROR_0: true = true\n\n public readonly tag?: Error0GeneralProps['tag']\n public readonly code?: Error0GeneralProps['code']\n public readonly httpStatus?: Error0GeneralProps['httpStatus']\n public readonly expected?: Error0GeneralProps['expected']\n public readonly clientMessage?: Error0GeneralProps['clientMessage']\n public readonly anyMessage?: Error0GeneralProps['anyMessage']\n public override readonly cause?: Error0GeneralProps['cause']\n public readonly meta?: Meta0.Meta0OrValueTypeNullish\n public readonly zodError?: Error0GeneralProps['zodError']\n public readonly axiosError?: Error0GeneralProps['axiosError']\n\n static defaultMessage = 'Unknown error'\n static defaultCode?: Error0GeneralProps['code']\n static defaultHttpStatus?: Error0GeneralProps['httpStatus']\n static defaultExpected?: Error0GeneralProps['expected']\n static defaultClientMessage?: Error0GeneralProps['clientMessage']\n static defaultMeta?: Meta0.Meta0OrValueTypeNullish\n\n public readonly propsOriginal: Error0GeneralProps\n\n constructor(message: string)\n constructor(input: Error0Input)\n constructor(message: string, input: Error0Input)\n constructor(error: Error)\n constructor(error: Error, input: Error0Input)\n constructor(value: unknown)\n constructor(value: unknown, input: Error0Input)\n constructor(...args: unknown[]) {\n const input: Partial<Error0Input> = {}\n if (args[0] instanceof Error) {\n input.cause = args[0]\n } else if (typeof args[0] === 'object' && args[0] !== null) {\n Object.assign(input, args[0])\n } else if (typeof args[0] === 'string') {\n input.message = args[0]\n }\n if (typeof args[1] === 'object' && args[1] !== null) {\n Object.assign(input, args[1])\n }\n const safeInput = Error0._safeParseInput(input)\n\n const message = safeInput.message || Error0.defaultMessage\n super(message)\n Object.setPrototypeOf(this, (this.constructor as typeof Error0).prototype)\n this.name = 'Error0'\n\n this.propsOriginal = (this.constructor as typeof Error0)._getSelfGeneralProps({\n error0Input: safeInput,\n message,\n stack: safeInput.stack || this.stack,\n })\n const causesProps = (this.constructor as typeof Error0)._getCausesPropsFromError0Props(\n this.propsOriginal,\n (this.constructor as typeof Error0).defaultMaxLevel,\n )\n const propsFloated = (this.constructor as typeof Error0)._getSelfPropsFloated(causesProps)\n this.tag = propsFloated.tag\n this.code = propsFloated.code\n this.httpStatus = propsFloated.httpStatus\n this.expected = propsFloated.expected\n this.clientMessage = propsFloated.clientMessage\n this.cause = propsFloated.cause\n this.stack = propsFloated.stack\n this.meta = propsFloated.meta\n this.zodError = propsFloated.zodError\n this.axiosError = propsFloated.axiosError\n }\n\n // settings\n\n static defaultMaxLevel = 10\n\n // props\n\n public static _safeParseInput(error0Input: Record<string, unknown>): Error0Input {\n const result: Error0Input = {}\n result.message = typeof error0Input.message === 'string' ? error0Input.message : undefined\n result.tag = typeof error0Input.tag === 'string' ? error0Input.tag : undefined\n result.code = typeof error0Input.code === 'string' ? error0Input.code : undefined\n result.httpStatus =\n typeof error0Input.httpStatus === 'number' || typeof error0Input.httpStatus === 'string'\n ? (error0Input.httpStatus as never)\n : undefined\n result.expected =\n typeof error0Input.expected === 'function' || typeof error0Input.expected === 'boolean'\n ? (error0Input.expected as never)\n : undefined\n result.clientMessage = typeof error0Input.clientMessage === 'string' ? error0Input.clientMessage : undefined\n result.cause = error0Input.cause\n result.stack = typeof error0Input.stack === 'string' ? error0Input.stack : undefined\n // result.meta0 =\n // error0Input.meta0 instanceof Meta0 ? error0Input.meta0 : undefined\n // result.meta =\n // typeof error0Input.meta === \"object\" && error0Input.meta !== null\n // ? error0Input.meta\n // : undefined\n result.meta =\n error0Input.meta instanceof Meta0\n ? error0Input.meta\n : typeof error0Input.meta === 'object' && error0Input.meta !== null\n ? (error0Input.meta as Meta0.ValueType)\n : undefined\n result.zodError = error0Input.zodError instanceof ZodError ? error0Input.zodError : undefined\n result.axiosError = isAxiosError(error0Input.axiosError) ? error0Input.axiosError : undefined\n return result\n }\n\n public static _getSelfGeneralProps({\n error0Input,\n message,\n stack,\n }: {\n error0Input: Error0Input\n message: string\n stack: Error0GeneralProps['stack']\n }): Error0GeneralProps {\n // const meta = Meta0.merge(error0Input.meta0, error0Input.meta).value\n\n // const meta0 = Meta0.extend(error0Input.meta, this.defaultMeta)\n // const defaultMetaValue =\n // this.defaultMeta && typeof this.defaultMeta === 'object' && 'getValue' in this.defaultMeta\n // ? (this.defaultMeta as any).getValue()\n // : this.defaultMeta\n\n const meta0 = Meta0.extend(this.defaultMeta, error0Input.meta)\n const meta = meta0.getValue()\n const finalTag = meta0PluginTag.public.getFullTag(meta0, error0Input.tag)\n delete meta.tagPrefix\n const clientMessage = error0Input.clientMessage || this.defaultClientMessage\n const result: Error0GeneralProps = {\n message: error0Input.message || this.defaultMessage,\n tag: finalTag,\n code: error0Input.code || toStringOrUndefined(meta.code) || this.defaultCode,\n httpStatus:\n typeof error0Input.httpStatus === 'number'\n ? error0Input.httpStatus\n : error0Input.httpStatus &&\n typeof error0Input.httpStatus === 'string' &&\n error0Input.httpStatus in HttpStatusCode\n ? HttpStatusCode[error0Input.httpStatus]\n : toNumberOrUndefined(meta.httpStatus) || this.defaultHttpStatus,\n expected: undefined,\n clientMessage,\n anyMessage: clientMessage || message,\n cause: error0Input.cause,\n stack: undefined,\n meta,\n zodError: error0Input.zodError,\n axiosError: error0Input.axiosError,\n }\n result.expected = this._normalizeSelfExpected(\n result,\n typeof error0Input.expected === 'boolean' || typeof error0Input.expected === 'function'\n ? error0Input.expected\n : toBooleanOrUndefined(meta.expected) || this.defaultExpected,\n )\n result.stack = this._removeConstructorStackPart(stack)\n return result\n }\n\n public static _getSelfPropsFloated(causesProps: Error0GeneralProps[]): Error0GeneralProps {\n const cause = this._getClosestPropValue(causesProps, 'cause')\n const stack = this._mergeStack(causesProps[1]?.stack, causesProps[0]?.stack)\n const closestTag = this._getClosestPropValue(causesProps, 'tag')\n const meta = this._getMergedMetaValue(causesProps)\n const tag = meta0PluginTag.public.getFullTag(meta, closestTag)\n const propsFloated: Error0GeneralProps = {\n message: this._getClosestPropValue(causesProps, 'message'),\n tag,\n code: this._getClosestPropValue(causesProps, 'code'),\n httpStatus: this._getClosestPropValue(causesProps, 'httpStatus'),\n expected: this._isExpected(causesProps),\n clientMessage: this._getClosestPropValue(causesProps, 'clientMessage'),\n cause,\n stack,\n anyMessage: causesProps[0].anyMessage,\n meta,\n zodError: this._getClosestPropValue(causesProps, 'zodError'),\n axiosError: this._getClosestPropValue(causesProps, 'axiosError'),\n }\n return propsFloated\n }\n\n // sepcial\n\n public static _getExtraError0PropsByZodError(zodError: ZodError): Partial<Error0GeneralProps> {\n return {\n message: `Zod Validation Error: ${zodError.message}`,\n }\n }\n\n public static _getExtraError0PropsByAxiosError(axiosError: AxiosError): Partial<Error0GeneralProps> {\n return {\n message: 'Axios Error',\n meta: {\n axiosData: (() => {\n try {\n return JSON.stringify(axiosError.response?.data)\n } catch {\n return undefined\n }\n })(),\n axiosStatus: axiosError.response?.status,\n },\n }\n }\n\n public static _assignError0Props(\n error0Props: Error0GeneralProps,\n extraError0Props: Partial<Error0GeneralProps>,\n ): void {\n const metaValue = Meta0.mergeValues(error0Props.meta, extraError0Props.meta)\n Object.assign(error0Props, extraError0Props, { meta: metaValue })\n }\n\n // expected\n\n public static _normalizeSelfExpected(\n error0Props: Error0GeneralProps,\n expectedProvided: Error0Input['expected'],\n ): boolean | undefined {\n if (typeof expectedProvided === 'function') {\n return expectedProvided(error0Props)\n }\n return expectedProvided\n }\n\n public static _isExpected(causesProps: Error0GeneralProps[]): boolean {\n let hasExpectedTrue = false\n for (const causeProps of causesProps) {\n if (causeProps.expected === false) {\n return false\n }\n if (causeProps.expected === true) {\n hasExpectedTrue = true\n }\n }\n return hasExpectedTrue\n }\n\n // getters\n\n public static _getPropsFromUnknown(error: unknown, defaults?: Error0Input): Error0GeneralProps {\n if (typeof error !== 'object' || error === null) {\n return {\n message: undefined,\n tag: undefined,\n code: undefined,\n httpStatus: undefined,\n expected: undefined,\n clientMessage: undefined,\n anyMessage: this.defaultMessage,\n cause: undefined,\n stack: undefined,\n zodError: undefined,\n axiosError: undefined,\n meta: {},\n }\n }\n const message = 'message' in error && typeof error.message === 'string' ? error.message : undefined\n const clientMessage =\n 'clientMessage' in error && typeof error.clientMessage === 'string'\n ? error.clientMessage\n : defaults?.clientMessage || undefined\n const result: Error0GeneralProps = {\n message,\n code: 'code' in error && typeof error.code === 'string' ? error.code : defaults?.code || undefined,\n clientMessage,\n anyMessage: clientMessage || message || this.defaultMessage,\n expected: undefined,\n stack: 'stack' in error && typeof error.stack === 'string' ? error.stack : undefined,\n tag: 'tag' in error && typeof error.tag === 'string' ? error.tag : defaults?.tag || undefined,\n cause: 'cause' in error ? error.cause : defaults?.cause || undefined,\n meta:\n 'meta' in error && typeof error.meta === 'object' && error.meta !== null\n ? Meta0.getValue(error.meta as Meta0.ValueType)\n : Meta0.getValue(defaults?.meta) || {},\n httpStatus:\n 'httpStatus' in error && typeof error.httpStatus === 'number' && error.httpStatus in HttpStatusCode\n ? error.httpStatus\n : typeof defaults?.httpStatus === 'string'\n ? HttpStatusCode[defaults.httpStatus]\n : defaults?.httpStatus,\n zodError:\n 'zodError' in error && error.zodError instanceof ZodError\n ? error.zodError\n : error instanceof ZodError\n ? error\n : defaults?.zodError,\n axiosError:\n 'axiosError' in error && isAxiosError(error.axiosError)\n ? error.axiosError\n : isAxiosError(error)\n ? error\n : defaults?.axiosError,\n }\n result.expected = this._normalizeSelfExpected(\n result,\n 'expected' in error && (typeof error.expected === 'boolean' || typeof error.expected === 'function')\n ? (error.expected as ExpectedFn)\n : defaults?.expected || undefined,\n )\n if (result.zodError) {\n this._assignError0Props(result, this._getExtraError0PropsByZodError(result.zodError))\n }\n if (result.axiosError) {\n this._assignError0Props(result, this._getExtraError0PropsByAxiosError(result.axiosError))\n }\n return result\n }\n\n public static _getCausesPropsFromUnknown(error: unknown, maxLevel: number): Error0GeneralProps[] {\n if (!error) {\n return []\n }\n const causeProps = this._getPropsFromUnknown(error)\n const causesProps: Error0GeneralProps[] = [causeProps]\n if (!causeProps.cause) {\n return causesProps\n }\n if (maxLevel > 0) {\n causesProps.push(...this._getCausesPropsFromUnknown(this._getPropsFromUnknown(causeProps.cause), maxLevel - 1))\n }\n return causesProps\n }\n\n public static _getCausesPropsFromError0Props(\n error0Props: Error0GeneralProps,\n maxLevel: number,\n ): Error0GeneralProps[] {\n return [error0Props, ...this._getCausesPropsFromUnknown(error0Props.cause, maxLevel - 1)]\n }\n\n public static _getClosestPropValue<TPropKey extends keyof Error0GeneralProps>(\n causesProps: Error0GeneralProps[],\n propKey: TPropKey,\n ): NonNullable<Error0GeneralProps[TPropKey]> | undefined {\n for (const causeProps of causesProps) {\n const propValue = causeProps[propKey]\n if (isFilled(propValue)) {\n return propValue as NonNullable<Error0GeneralProps[TPropKey]>\n }\n }\n return undefined\n }\n\n // private static getClosestByGetter<TResult>(\n // causesProps: Error0GeneralProps[],\n // getter: (props: Error0GeneralProps) => TResult,\n // ): NonNullable<TResult> | undefined {\n // for (const causeProps of causesProps) {\n // const result = getter(causeProps)\n // if (isFilled(result)) {\n // return result\n // }\n // }\n // return undefined\n // }\n\n public static _getFilledPropValues<TPropKey extends keyof Error0Input>(\n causesProps: Error0GeneralProps[],\n propKey: TPropKey,\n ): NonNullable<Error0GeneralProps[TPropKey]>[] {\n const values: NonNullable<Error0GeneralProps[TPropKey]>[] = []\n for (const causeProps of causesProps) {\n const propValue = causeProps[propKey]\n if (isFilled(propValue)) {\n values.push(propValue as NonNullable<Error0GeneralProps[TPropKey]>)\n }\n }\n return values\n }\n\n public static _getMergedMetaValue(causesProps: Error0GeneralProps[]): Meta0.ValueType {\n const metas = this._getFilledPropValues(causesProps, 'meta')\n if (metas.length === 0) {\n return {}\n } else if (metas.length === 1) {\n return metas[0]\n } else {\n return Meta0.mergeValues(metas[0], ...metas.slice(1))\n }\n }\n\n // stack\n\n public static _removeConstructorStackPart(stack: Error0GeneralProps['stack']): Error0GeneralProps['stack'] {\n if (!stack) {\n return stack\n }\n let lines = stack.split('\\n')\n const removeAllLinesContains = (search: string) => {\n lines = lines.filter((line) => !line.includes(search))\n }\n removeAllLinesContains('at new Error0')\n removeAllLinesContains('at _toError0')\n removeAllLinesContains('at Error0.from')\n removeAllLinesContains('at Error0._toError0')\n return lines.join('\\n')\n }\n\n public static _mergeStack(\n prevStack: Error0GeneralProps['stack'],\n nextStack: Error0GeneralProps['stack'],\n ): Error0GeneralProps['stack'] {\n return [nextStack, prevStack].filter(Boolean).join('\\n\\n') || undefined\n }\n\n // transformations\n\n static isError0(error: unknown): error is Error0 {\n return error instanceof Error0\n }\n\n static isLikelyError0(error: unknown): error is Error0 {\n if (error instanceof Error0) {\n return true\n }\n\n if (typeof error === 'object' && error !== null) {\n if ('__I_AM_ERROR_0' in error && error.__I_AM_ERROR_0 === true) {\n return true\n }\n }\n\n return false\n }\n\n public static _toError0(error: unknown, inputOverride: Error0Input = {}): Error0 {\n if (error instanceof Error0) {\n return error\n }\n\n if (typeof error === 'string') {\n return new Error0(error, inputOverride)\n }\n\n if (typeof error !== 'object' || error === null) {\n return new Error0({\n message: this.defaultMessage,\n ...inputOverride,\n })\n }\n\n const inputFromData = get(error, 'data')\n if (inputFromData) {\n if (Error0.isLikelyError0(inputFromData)) {\n return this._toError0(inputFromData, inputOverride)\n }\n }\n\n const inputFromDataError0 = get(error, 'data.error0')\n if (inputFromDataError0) {\n if (Error0.isLikelyError0(inputFromDataError0)) {\n return this._toError0(inputFromDataError0, inputOverride)\n }\n }\n\n return new Error0(this._getPropsFromUnknown(error, inputOverride))\n }\n\n static from(error: unknown, inputOverride?: Error0Input): Error0 {\n return this._toError0(error, inputOverride)\n }\n\n static extend(props: {\n defaultMessage?: Error0GeneralProps['message']\n defaultCode?: Error0GeneralProps['code']\n defaultHttpStatus?: Error0GeneralProps['httpStatus']\n defaultExpected?: Error0GeneralProps['expected']\n defaultClientMessage?: Error0GeneralProps['clientMessage']\n defaultMeta?: Meta0.Meta0OrValueTypeNullish\n }) {\n const parent = this\n return class Error0 extends parent {\n static override defaultMessage = props.defaultMessage ?? parent.defaultMessage\n static override defaultCode = props.defaultCode ?? parent.defaultCode\n static override defaultHttpStatus = props.defaultHttpStatus ?? parent.defaultHttpStatus\n static override defaultExpected = props.defaultExpected ?? parent.defaultExpected\n static override defaultClientMessage = props.defaultClientMessage ?? parent.defaultClientMessage\n static override defaultMeta = Meta0.extend(parent.defaultMeta, props.defaultMeta)\n }\n }\n\n static extendCollection<T extends Record<string, typeof Error0>>(\n classes: T,\n props: {\n defaultMessage?: Error0GeneralProps['message']\n defaultCode?: Error0GeneralProps['code']\n defaultHttpStatus?: Error0GeneralProps['httpStatus']\n defaultExpected?: Error0GeneralProps['expected']\n defaultClientMessage?: Error0GeneralProps['clientMessage']\n defaultMeta?: Meta0.Meta0OrValueTypeNullish\n },\n ): T {\n return Object.fromEntries(Object.entries(classes).map(([name, Class]) => [name, Class.extend(props)])) as T\n }\n\n toJSON() {\n return {\n message: this.message,\n tag: this.tag,\n code: this.code,\n httpStatus: this.httpStatus,\n expected: this.expected,\n clientMessage: this.clientMessage,\n anyMessage: this.anyMessage,\n cause: this.cause,\n meta: Meta0.getValue(this.meta),\n stack: this.stack,\n __I_AM_ERROR_0: this.__I_AM_ERROR_0,\n }\n }\n static toJSON(error: unknown, inputOverride?: Error0Input) {\n const error0 = this.from(error, inputOverride)\n return error0.toJSON()\n }\n\n toResponse(data?: Record<string, unknown>) {\n return Response.json(\n {\n ...this.toJSON(),\n ...data,\n },\n {\n status: this.httpStatus,\n statusText: this.message,\n },\n )\n }\n}\n\nexport namespace Error0 {\n export type JSON = ReturnType<Error0['toJSON']>\n export type Collection = Record<string, typeof Error0>\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import { Meta0, meta0PluginTag } from '@devp0nt/meta0'\nimport { type AxiosError, HttpStatusCode, isAxiosError } from 'axios'\nimport get from 'lodash/get.js'\nimport { ZodError } from 'zod'\n\n// TODO: Зод, аксиос, это всё плагины\n// TODO: В эррор0 добавить ориджинал\n// TODO: store tags as array from all causes\n// TODO: not use self stack if toError0\n// TODO: fix default message in extended error0, should be used in constuctor of Error0\n// TODO: remove defaults prop from getPropsFromUnknown\n// TODO: code has enum type, fn to check if code exists\n\nconst isFilled = <T>(value: T): value is NonNullable<T> => value !== null && value !== undefined && value !== ''\nconst toStringOrUndefined = (value: unknown): string | undefined => {\n return typeof value === 'string' ? value : undefined\n}\nconst toNumberOrUndefined = (value: unknown): number | undefined => {\n if (typeof value === 'number') {\n return value\n }\n const number = Number(value)\n if (typeof value === 'string' && !Number.isNaN(number)) {\n return number\n }\n return undefined\n}\nconst toBooleanOrUndefined = (value: unknown): boolean | undefined => {\n if (typeof value === 'boolean') {\n return value\n }\n return undefined\n}\n\nexport class Error0 extends Error {\n public readonly __I_AM_ERROR_0: true = true\n\n public readonly tag?: Error0.GeneralProps['tag']\n public readonly code?: Error0.GeneralProps['code']\n public readonly httpStatus?: Error0.GeneralProps['httpStatus']\n public readonly expected?: Error0.GeneralProps['expected']\n public readonly clientMessage?: Error0.GeneralProps['clientMessage']\n public readonly anyMessage?: Error0.GeneralProps['anyMessage']\n public override readonly cause?: Error0.GeneralProps['cause']\n public readonly meta?: Meta0.Meta0OrValueTypeNullish\n public readonly zodError?: Error0.GeneralProps['zodError']\n public readonly axiosError?: Error0.GeneralProps['axiosError']\n\n static defaultMessage = 'Unknown error'\n static defaultCode?: Error0.GeneralProps['code']\n static defaultHttpStatus?: Error0.GeneralProps['httpStatus']\n static defaultExpected?: Error0.GeneralProps['expected']\n static defaultClientMessage?: Error0.GeneralProps['clientMessage']\n static defaultMeta?: Meta0.Meta0OrValueTypeNullish\n\n public readonly propsOriginal: Error0.GeneralProps\n\n constructor(message: string)\n constructor(input: Error0.Input)\n constructor(message: string, input: Error0.Input)\n constructor(error: Error)\n constructor(error: Error, input: Error0.Input)\n constructor(value: unknown)\n constructor(value: unknown, input: Error0.Input)\n constructor(...args: unknown[]) {\n const input: Partial<Error0.Input> = {}\n if (args[0] instanceof Error) {\n input.cause = args[0]\n } else if (typeof args[0] === 'object' && args[0] !== null) {\n Object.assign(input, args[0])\n } else if (typeof args[0] === 'string') {\n input.message = args[0]\n }\n if (typeof args[1] === 'object' && args[1] !== null) {\n Object.assign(input, args[1])\n }\n const safeInput = Error0._safeParseInput(input)\n\n const message = safeInput.message || Error0.defaultMessage\n super(message)\n Object.setPrototypeOf(this, (this.constructor as typeof Error0).prototype)\n this.name = 'Error0'\n\n this.propsOriginal = (this.constructor as typeof Error0)._getSelfGeneralProps({\n error0Input: safeInput,\n message,\n stack: safeInput.stack || this.stack,\n })\n const causesProps = (this.constructor as typeof Error0)._getCausesPropsFromError0Props(\n this.propsOriginal,\n (this.constructor as typeof Error0).defaultMaxLevel,\n )\n const propsFloated = (this.constructor as typeof Error0)._getSelfPropsFloated(causesProps)\n this.tag = propsFloated.tag\n this.code = propsFloated.code\n this.httpStatus = propsFloated.httpStatus\n this.expected = propsFloated.expected\n this.clientMessage = propsFloated.clientMessage\n this.cause = propsFloated.cause\n this.stack = propsFloated.stack\n this.meta = propsFloated.meta\n this.zodError = propsFloated.zodError\n this.axiosError = propsFloated.axiosError\n }\n\n // settings\n\n static defaultMaxLevel = 10\n\n // props\n\n public static _safeParseInput(error0Input: Record<string, unknown>): Error0.Input {\n const result: Error0.Input = {}\n result.message = typeof error0Input.message === 'string' ? error0Input.message : undefined\n result.tag = typeof error0Input.tag === 'string' ? error0Input.tag : undefined\n result.code = typeof error0Input.code === 'string' ? error0Input.code : undefined\n result.httpStatus =\n typeof error0Input.httpStatus === 'number' || typeof error0Input.httpStatus === 'string'\n ? (error0Input.httpStatus as never)\n : undefined\n result.expected =\n typeof error0Input.expected === 'function' || typeof error0Input.expected === 'boolean'\n ? (error0Input.expected as never)\n : undefined\n result.clientMessage = typeof error0Input.clientMessage === 'string' ? error0Input.clientMessage : undefined\n result.cause = error0Input.cause\n result.stack = typeof error0Input.stack === 'string' ? error0Input.stack : undefined\n // result.meta0 =\n // error0Input.meta0 instanceof Meta0 ? error0Input.meta0 : undefined\n // result.meta =\n // typeof error0Input.meta === \"object\" && error0Input.meta !== null\n // ? error0Input.meta\n // : undefined\n result.meta =\n error0Input.meta instanceof Meta0\n ? error0Input.meta\n : typeof error0Input.meta === 'object' && error0Input.meta !== null\n ? (error0Input.meta as Meta0.ValueType)\n : undefined\n result.zodError = error0Input.zodError instanceof ZodError ? error0Input.zodError : undefined\n result.axiosError = isAxiosError(error0Input.axiosError) ? error0Input.axiosError : undefined\n return result\n }\n\n public static _getSelfGeneralProps({\n error0Input,\n message,\n stack,\n }: {\n error0Input: Error0.Input\n message: string\n stack: Error0.GeneralProps['stack']\n }): Error0.GeneralProps {\n // const meta = Meta0.merge(error0Input.meta0, error0Input.meta).value\n\n // const meta0 = Meta0.extend(error0Input.meta, this.defaultMeta)\n // const defaultMetaValue =\n // this.defaultMeta && typeof this.defaultMeta === 'object' && 'getValue' in this.defaultMeta\n // ? (this.defaultMeta as any).getValue()\n // : this.defaultMeta\n\n const meta0 = Meta0.extend(this.defaultMeta, error0Input.meta)\n const meta = meta0.getValue()\n const finalTag = meta0PluginTag.public.getFullTag(meta0, error0Input.tag)\n delete meta.tagPrefix\n const clientMessage = error0Input.clientMessage || this.defaultClientMessage\n const result: Error0.GeneralProps = {\n message: error0Input.message || this.defaultMessage,\n tag: finalTag,\n code: error0Input.code || toStringOrUndefined(meta.code) || this.defaultCode,\n httpStatus:\n typeof error0Input.httpStatus === 'number'\n ? error0Input.httpStatus\n : error0Input.httpStatus &&\n typeof error0Input.httpStatus === 'string' &&\n error0Input.httpStatus in HttpStatusCode\n ? HttpStatusCode[error0Input.httpStatus]\n : toNumberOrUndefined(meta.httpStatus) || this.defaultHttpStatus,\n expected: undefined,\n clientMessage,\n anyMessage: clientMessage || message,\n cause: error0Input.cause,\n stack: undefined,\n meta,\n zodError: error0Input.zodError,\n axiosError: error0Input.axiosError,\n }\n result.expected = this._normalizeSelfExpected(\n result,\n typeof error0Input.expected === 'boolean' || typeof error0Input.expected === 'function'\n ? error0Input.expected\n : toBooleanOrUndefined(meta.expected) || this.defaultExpected,\n )\n result.stack = this._removeConstructorStackPart(stack)\n return result\n }\n\n public static _getSelfPropsFloated(causesProps: Error0.GeneralProps[]): Error0.GeneralProps {\n const cause = this._getClosestPropValue(causesProps, 'cause')\n const stack = this._mergeStack(causesProps[1]?.stack, causesProps[0]?.stack)\n const closestTag = this._getClosestPropValue(causesProps, 'tag')\n const meta = this._getMergedMetaValue(causesProps)\n const tag = meta0PluginTag.public.getFullTag(meta, closestTag)\n const propsFloated: Error0.GeneralProps = {\n message: this._getClosestPropValue(causesProps, 'message'),\n tag,\n code: this._getClosestPropValue(causesProps, 'code'),\n httpStatus: this._getClosestPropValue(causesProps, 'httpStatus'),\n expected: this._isExpected(causesProps),\n clientMessage: this._getClosestPropValue(causesProps, 'clientMessage'),\n cause,\n stack,\n anyMessage: causesProps[0].anyMessage,\n meta,\n zodError: this._getClosestPropValue(causesProps, 'zodError'),\n axiosError: this._getClosestPropValue(causesProps, 'axiosError'),\n }\n return propsFloated\n }\n\n // sepcial\n\n public static _getExtraError0PropsByZodError(zodError: ZodError): Partial<Error0.GeneralProps> {\n return {\n message: `Zod Validation Error: ${zodError.message}`,\n }\n }\n\n public static _getExtraError0PropsByAxiosError(axiosError: AxiosError): Partial<Error0.GeneralProps> {\n return {\n message: 'Axios Error',\n meta: {\n axiosData: (() => {\n try {\n return JSON.stringify(axiosError.response?.data)\n } catch {\n return undefined\n }\n })(),\n axiosStatus: axiosError.response?.status,\n },\n }\n }\n\n public static _assignError0Props(\n error0Props: Error0.GeneralProps,\n extraError0Props: Partial<Error0.GeneralProps>,\n ): void {\n const metaValue = Meta0.mergeValues(error0Props.meta, extraError0Props.meta)\n Object.assign(error0Props, extraError0Props, { meta: metaValue })\n }\n\n // expected\n\n public static _normalizeSelfExpected(\n error0Props: Error0.GeneralProps,\n expectedProvided: Error0.Input['expected'],\n ): boolean | undefined {\n if (typeof expectedProvided === 'function') {\n return expectedProvided(error0Props)\n }\n return expectedProvided\n }\n\n public static _isExpected(causesProps: Error0.GeneralProps[]): boolean {\n let hasExpectedTrue = false\n for (const causeProps of causesProps) {\n if (causeProps.expected === false) {\n return false\n }\n if (causeProps.expected === true) {\n hasExpectedTrue = true\n }\n }\n return hasExpectedTrue\n }\n\n // getters\n\n public static _getPropsFromUnknown(error: unknown, defaults?: Error0.Input): Error0.GeneralProps {\n if (typeof error !== 'object' || error === null) {\n return {\n message: undefined,\n tag: undefined,\n code: undefined,\n httpStatus: undefined,\n expected: undefined,\n clientMessage: undefined,\n anyMessage: this.defaultMessage,\n cause: undefined,\n stack: undefined,\n zodError: undefined,\n axiosError: undefined,\n meta: {},\n }\n }\n const message = 'message' in error && typeof error.message === 'string' ? error.message : undefined\n const clientMessage =\n 'clientMessage' in error && typeof error.clientMessage === 'string'\n ? error.clientMessage\n : defaults?.clientMessage || undefined\n const result: Error0.GeneralProps = {\n message,\n code: 'code' in error && typeof error.code === 'string' ? error.code : defaults?.code || undefined,\n clientMessage,\n anyMessage: clientMessage || message || this.defaultMessage,\n expected: undefined,\n stack: 'stack' in error && typeof error.stack === 'string' ? error.stack : undefined,\n tag: 'tag' in error && typeof error.tag === 'string' ? error.tag : defaults?.tag || undefined,\n cause: 'cause' in error ? error.cause : defaults?.cause || undefined,\n meta:\n 'meta' in error && typeof error.meta === 'object' && error.meta !== null\n ? Meta0.getValue(error.meta as Meta0.ValueType)\n : Meta0.getValue(defaults?.meta) || {},\n httpStatus:\n 'httpStatus' in error && typeof error.httpStatus === 'number' && error.httpStatus in HttpStatusCode\n ? error.httpStatus\n : typeof defaults?.httpStatus === 'string'\n ? HttpStatusCode[defaults.httpStatus]\n : defaults?.httpStatus,\n zodError:\n 'zodError' in error && error.zodError instanceof ZodError\n ? error.zodError\n : error instanceof ZodError\n ? error\n : defaults?.zodError,\n axiosError:\n 'axiosError' in error && isAxiosError(error.axiosError)\n ? error.axiosError\n : isAxiosError(error)\n ? error\n : defaults?.axiosError,\n }\n result.expected = this._normalizeSelfExpected(\n result,\n 'expected' in error && (typeof error.expected === 'boolean' || typeof error.expected === 'function')\n ? (error.expected as Error0.ExpectedFn)\n : defaults?.expected || undefined,\n )\n if (result.zodError) {\n this._assignError0Props(result, this._getExtraError0PropsByZodError(result.zodError))\n }\n if (result.axiosError) {\n this._assignError0Props(result, this._getExtraError0PropsByAxiosError(result.axiosError))\n }\n return result\n }\n\n public static _getCausesPropsFromUnknown(error: unknown, maxLevel: number): Error0.GeneralProps[] {\n if (!error) {\n return []\n }\n const causeProps = this._getPropsFromUnknown(error)\n const causesProps: Error0.GeneralProps[] = [causeProps]\n if (!causeProps.cause) {\n return causesProps\n }\n if (maxLevel > 0) {\n causesProps.push(...this._getCausesPropsFromUnknown(this._getPropsFromUnknown(causeProps.cause), maxLevel - 1))\n }\n return causesProps\n }\n\n public static _getCausesPropsFromError0Props(\n error0Props: Error0.GeneralProps,\n maxLevel: number,\n ): Error0.GeneralProps[] {\n return [error0Props, ...this._getCausesPropsFromUnknown(error0Props.cause, maxLevel - 1)]\n }\n\n public static _getClosestPropValue<TPropKey extends keyof Error0.GeneralProps>(\n causesProps: Error0.GeneralProps[],\n propKey: TPropKey,\n ): NonNullable<Error0.GeneralProps[TPropKey]> | undefined {\n for (const causeProps of causesProps) {\n const propValue = causeProps[propKey]\n if (isFilled(propValue)) {\n return propValue as NonNullable<Error0.GeneralProps[TPropKey]>\n }\n }\n return undefined\n }\n\n // private static getClosestByGetter<TResult>(\n // causesProps: Error0.GeneralProps[],\n // getter: (props: Error0.GeneralProps) => TResult,\n // ): NonNullable<TResult> | undefined {\n // for (const causeProps of causesProps) {\n // const result = getter(causeProps)\n // if (isFilled(result)) {\n // return result\n // }\n // }\n // return undefined\n // }\n\n public static _getFilledPropValues<TPropKey extends keyof Error0.Input>(\n causesProps: Error0.GeneralProps[],\n propKey: TPropKey,\n ): NonNullable<Error0.GeneralProps[TPropKey]>[] {\n const values: NonNullable<Error0.GeneralProps[TPropKey]>[] = []\n for (const causeProps of causesProps) {\n const propValue = causeProps[propKey]\n if (isFilled(propValue)) {\n values.push(propValue as NonNullable<Error0.GeneralProps[TPropKey]>)\n }\n }\n return values\n }\n\n public static _getMergedMetaValue(causesProps: Error0.GeneralProps[]): Meta0.ValueType {\n const metas = this._getFilledPropValues(causesProps, 'meta')\n if (metas.length === 0) {\n return {}\n } else if (metas.length === 1) {\n return metas[0]\n } else {\n return Meta0.mergeValues(metas[0], ...metas.slice(1))\n }\n }\n\n // stack\n\n public static _removeConstructorStackPart(stack: Error0.GeneralProps['stack']): Error0.GeneralProps['stack'] {\n if (!stack) {\n return stack\n }\n let lines = stack.split('\\n')\n const removeAllLinesContains = (search: string) => {\n lines = lines.filter((line) => !line.includes(search))\n }\n removeAllLinesContains('at new Error0')\n removeAllLinesContains('at _toError0')\n removeAllLinesContains('at Error0.from')\n removeAllLinesContains('at Error0._toError0')\n return lines.join('\\n')\n }\n\n public static _mergeStack(\n prevStack: Error0.GeneralProps['stack'],\n nextStack: Error0.GeneralProps['stack'],\n ): Error0.GeneralProps['stack'] {\n return [nextStack, prevStack].filter(Boolean).join('\\n\\n') || undefined\n }\n\n // transformations\n\n static isError0(error: unknown): error is Error0 {\n return error instanceof Error0\n }\n\n static isLikelyError0(error: unknown): error is Error0 {\n if (error instanceof Error0) {\n return true\n }\n\n if (typeof error === 'object' && error !== null) {\n if ('__I_AM_ERROR_0' in error && error.__I_AM_ERROR_0 === true) {\n return true\n }\n }\n\n return false\n }\n\n public static _toError0(error: unknown, inputOverride: Error0.Input = {}): Error0 {\n if (error instanceof Error0) {\n return error\n }\n\n if (typeof error === 'string') {\n return new Error0(error, inputOverride)\n }\n\n if (typeof error !== 'object' || error === null) {\n return new Error0({\n message: this.defaultMessage,\n ...inputOverride,\n })\n }\n\n const inputFromData = get(error, 'data')\n if (inputFromData) {\n if (Error0.isLikelyError0(inputFromData)) {\n return this._toError0(inputFromData, inputOverride)\n }\n }\n\n const inputFromDataError0 = get(error, 'data.error0')\n if (inputFromDataError0) {\n if (Error0.isLikelyError0(inputFromDataError0)) {\n return this._toError0(inputFromDataError0, inputOverride)\n }\n }\n\n return new Error0(this._getPropsFromUnknown(error, inputOverride))\n }\n\n static from(error: unknown, inputOverride?: Error0.Input): Error0 {\n return this._toError0(error, inputOverride)\n }\n\n static extend(props: {\n defaultMessage?: Error0.GeneralProps['message']\n defaultCode?: Error0.GeneralProps['code']\n defaultHttpStatus?: Error0.GeneralProps['httpStatus']\n defaultExpected?: Error0.GeneralProps['expected']\n defaultClientMessage?: Error0.GeneralProps['clientMessage']\n defaultMeta?: Meta0.Meta0OrValueTypeNullish\n }) {\n const parent = this\n return class Error0 extends parent {\n static override defaultMessage = props.defaultMessage ?? parent.defaultMessage\n static override defaultCode = props.defaultCode ?? parent.defaultCode\n static override defaultHttpStatus = props.defaultHttpStatus ?? parent.defaultHttpStatus\n static override defaultExpected = props.defaultExpected ?? parent.defaultExpected\n static override defaultClientMessage = props.defaultClientMessage ?? parent.defaultClientMessage\n static override defaultMeta = Meta0.extend(parent.defaultMeta, props.defaultMeta)\n }\n }\n\n static extendCollection<T extends Record<string, typeof Error0>>(\n classes: T,\n props: {\n defaultMessage?: Error0.GeneralProps['message']\n defaultCode?: Error0.GeneralProps['code']\n defaultHttpStatus?: Error0.GeneralProps['httpStatus']\n defaultExpected?: Error0.GeneralProps['expected']\n defaultClientMessage?: Error0.GeneralProps['clientMessage']\n defaultMeta?: Meta0.Meta0OrValueTypeNullish\n },\n ): T {\n return Object.fromEntries(Object.entries(classes).map(([name, Class]) => [name, Class.extend(props)])) as T\n }\n\n toJSON() {\n return {\n message: this.message,\n tag: this.tag,\n code: this.code,\n httpStatus: this.httpStatus,\n expected: this.expected,\n clientMessage: this.clientMessage,\n anyMessage: this.anyMessage,\n cause: this.cause,\n meta: Meta0.getValue(this.meta),\n stack: this.stack,\n __I_AM_ERROR_0: this.__I_AM_ERROR_0,\n }\n }\n static toJSON(error: unknown, inputOverride?: Error0.Input) {\n const error0 = this.from(error, inputOverride)\n return error0.toJSON()\n }\n\n toResponse(data?: Record<string, unknown>) {\n return Response.json(\n {\n ...this.toJSON(),\n ...data,\n },\n {\n status: this.httpStatus,\n statusText: this.message,\n },\n )\n }\n}\n\nexport namespace Error0 {\n export interface Input {\n message?: string\n tag?: string\n code?: string\n httpStatus?: HttpStatusCode | HttpStatusCodeString\n expected?: boolean | Error0.ExpectedFn\n clientMessage?: string\n cause?: Error0Cause\n stack?: string\n meta?: Meta0.Meta0OrValueTypeNullish\n zodError?: ZodError\n axiosError?: AxiosError\n }\n\n export interface GeneralProps {\n message: Input['message']\n tag: Input['tag']\n code: Input['code']\n httpStatus: number | undefined\n expected: boolean | undefined\n clientMessage: Input['clientMessage']\n anyMessage: string | undefined\n cause: Input['cause']\n stack: Error['stack']\n meta: Meta0.ValueType\n zodError?: ZodError\n axiosError?: AxiosError\n }\n\n export type HttpStatusCodeString = keyof typeof HttpStatusCode\n export type Error0Cause = Error | Error0 | unknown\n export type ExpectedFn = (error: GeneralProps) => boolean | undefined\n export type JSON = ReturnType<Error0['toJSON']>\n export type Collection = Record<string, typeof Error0>\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {},
|
|
68
68
|
"peerDependencies": {
|
|
69
|
-
"@devp0nt/meta0": "^1.0.0-next.
|
|
69
|
+
"@devp0nt/meta0": "^1.0.0-next.12",
|
|
70
70
|
"axios": "^1.12.2",
|
|
71
71
|
"zod": "^4.1.9"
|
|
72
72
|
},
|
|
@@ -95,5 +95,5 @@
|
|
|
95
95
|
"publishConfig": {
|
|
96
96
|
"access": "public"
|
|
97
97
|
},
|
|
98
|
-
"version": "1.0.0-next.
|
|
98
|
+
"version": "1.0.0-next.12"
|
|
99
99
|
}
|
package/src/index.ts
CHANGED
|
@@ -11,39 +11,6 @@ import { ZodError } from 'zod'
|
|
|
11
11
|
// TODO: remove defaults prop from getPropsFromUnknown
|
|
12
12
|
// TODO: code has enum type, fn to check if code exists
|
|
13
13
|
|
|
14
|
-
export interface Error0Input {
|
|
15
|
-
message?: string
|
|
16
|
-
tag?: string
|
|
17
|
-
code?: string
|
|
18
|
-
httpStatus?: HttpStatusCode | HttpStatusCodeString
|
|
19
|
-
expected?: boolean | ExpectedFn
|
|
20
|
-
clientMessage?: string
|
|
21
|
-
cause?: Error0Cause
|
|
22
|
-
stack?: string
|
|
23
|
-
meta?: Meta0.Meta0OrValueTypeNullish
|
|
24
|
-
zodError?: ZodError
|
|
25
|
-
axiosError?: AxiosError
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
interface Error0GeneralProps {
|
|
29
|
-
message: Error0Input['message']
|
|
30
|
-
tag: Error0Input['tag']
|
|
31
|
-
code: Error0Input['code']
|
|
32
|
-
httpStatus: number | undefined
|
|
33
|
-
expected: boolean | undefined
|
|
34
|
-
clientMessage: Error0Input['clientMessage']
|
|
35
|
-
anyMessage: string | undefined
|
|
36
|
-
cause: Error0Input['cause']
|
|
37
|
-
stack: Error['stack']
|
|
38
|
-
meta: Meta0.ValueType
|
|
39
|
-
zodError?: ZodError
|
|
40
|
-
axiosError?: AxiosError
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
type HttpStatusCodeString = keyof typeof HttpStatusCode
|
|
44
|
-
type Error0Cause = Error | Error0 | unknown
|
|
45
|
-
type ExpectedFn = (error: Error0GeneralProps) => boolean | undefined
|
|
46
|
-
|
|
47
14
|
const isFilled = <T>(value: T): value is NonNullable<T> => value !== null && value !== undefined && value !== ''
|
|
48
15
|
const toStringOrUndefined = (value: unknown): string | undefined => {
|
|
49
16
|
return typeof value === 'string' ? value : undefined
|
|
@@ -68,35 +35,35 @@ const toBooleanOrUndefined = (value: unknown): boolean | undefined => {
|
|
|
68
35
|
export class Error0 extends Error {
|
|
69
36
|
public readonly __I_AM_ERROR_0: true = true
|
|
70
37
|
|
|
71
|
-
public readonly tag?:
|
|
72
|
-
public readonly code?:
|
|
73
|
-
public readonly httpStatus?:
|
|
74
|
-
public readonly expected?:
|
|
75
|
-
public readonly clientMessage?:
|
|
76
|
-
public readonly anyMessage?:
|
|
77
|
-
public override readonly cause?:
|
|
38
|
+
public readonly tag?: Error0.GeneralProps['tag']
|
|
39
|
+
public readonly code?: Error0.GeneralProps['code']
|
|
40
|
+
public readonly httpStatus?: Error0.GeneralProps['httpStatus']
|
|
41
|
+
public readonly expected?: Error0.GeneralProps['expected']
|
|
42
|
+
public readonly clientMessage?: Error0.GeneralProps['clientMessage']
|
|
43
|
+
public readonly anyMessage?: Error0.GeneralProps['anyMessage']
|
|
44
|
+
public override readonly cause?: Error0.GeneralProps['cause']
|
|
78
45
|
public readonly meta?: Meta0.Meta0OrValueTypeNullish
|
|
79
|
-
public readonly zodError?:
|
|
80
|
-
public readonly axiosError?:
|
|
46
|
+
public readonly zodError?: Error0.GeneralProps['zodError']
|
|
47
|
+
public readonly axiosError?: Error0.GeneralProps['axiosError']
|
|
81
48
|
|
|
82
49
|
static defaultMessage = 'Unknown error'
|
|
83
|
-
static defaultCode?:
|
|
84
|
-
static defaultHttpStatus?:
|
|
85
|
-
static defaultExpected?:
|
|
86
|
-
static defaultClientMessage?:
|
|
50
|
+
static defaultCode?: Error0.GeneralProps['code']
|
|
51
|
+
static defaultHttpStatus?: Error0.GeneralProps['httpStatus']
|
|
52
|
+
static defaultExpected?: Error0.GeneralProps['expected']
|
|
53
|
+
static defaultClientMessage?: Error0.GeneralProps['clientMessage']
|
|
87
54
|
static defaultMeta?: Meta0.Meta0OrValueTypeNullish
|
|
88
55
|
|
|
89
|
-
public readonly propsOriginal:
|
|
56
|
+
public readonly propsOriginal: Error0.GeneralProps
|
|
90
57
|
|
|
91
58
|
constructor(message: string)
|
|
92
|
-
constructor(input:
|
|
93
|
-
constructor(message: string, input:
|
|
59
|
+
constructor(input: Error0.Input)
|
|
60
|
+
constructor(message: string, input: Error0.Input)
|
|
94
61
|
constructor(error: Error)
|
|
95
|
-
constructor(error: Error, input:
|
|
62
|
+
constructor(error: Error, input: Error0.Input)
|
|
96
63
|
constructor(value: unknown)
|
|
97
|
-
constructor(value: unknown, input:
|
|
64
|
+
constructor(value: unknown, input: Error0.Input)
|
|
98
65
|
constructor(...args: unknown[]) {
|
|
99
|
-
const input: Partial<
|
|
66
|
+
const input: Partial<Error0.Input> = {}
|
|
100
67
|
if (args[0] instanceof Error) {
|
|
101
68
|
input.cause = args[0]
|
|
102
69
|
} else if (typeof args[0] === 'object' && args[0] !== null) {
|
|
@@ -142,8 +109,8 @@ export class Error0 extends Error {
|
|
|
142
109
|
|
|
143
110
|
// props
|
|
144
111
|
|
|
145
|
-
public static _safeParseInput(error0Input: Record<string, unknown>):
|
|
146
|
-
const result:
|
|
112
|
+
public static _safeParseInput(error0Input: Record<string, unknown>): Error0.Input {
|
|
113
|
+
const result: Error0.Input = {}
|
|
147
114
|
result.message = typeof error0Input.message === 'string' ? error0Input.message : undefined
|
|
148
115
|
result.tag = typeof error0Input.tag === 'string' ? error0Input.tag : undefined
|
|
149
116
|
result.code = typeof error0Input.code === 'string' ? error0Input.code : undefined
|
|
@@ -180,10 +147,10 @@ export class Error0 extends Error {
|
|
|
180
147
|
message,
|
|
181
148
|
stack,
|
|
182
149
|
}: {
|
|
183
|
-
error0Input:
|
|
150
|
+
error0Input: Error0.Input
|
|
184
151
|
message: string
|
|
185
|
-
stack:
|
|
186
|
-
}):
|
|
152
|
+
stack: Error0.GeneralProps['stack']
|
|
153
|
+
}): Error0.GeneralProps {
|
|
187
154
|
// const meta = Meta0.merge(error0Input.meta0, error0Input.meta).value
|
|
188
155
|
|
|
189
156
|
// const meta0 = Meta0.extend(error0Input.meta, this.defaultMeta)
|
|
@@ -197,7 +164,7 @@ export class Error0 extends Error {
|
|
|
197
164
|
const finalTag = meta0PluginTag.public.getFullTag(meta0, error0Input.tag)
|
|
198
165
|
delete meta.tagPrefix
|
|
199
166
|
const clientMessage = error0Input.clientMessage || this.defaultClientMessage
|
|
200
|
-
const result:
|
|
167
|
+
const result: Error0.GeneralProps = {
|
|
201
168
|
message: error0Input.message || this.defaultMessage,
|
|
202
169
|
tag: finalTag,
|
|
203
170
|
code: error0Input.code || toStringOrUndefined(meta.code) || this.defaultCode,
|
|
@@ -228,13 +195,13 @@ export class Error0 extends Error {
|
|
|
228
195
|
return result
|
|
229
196
|
}
|
|
230
197
|
|
|
231
|
-
public static _getSelfPropsFloated(causesProps:
|
|
198
|
+
public static _getSelfPropsFloated(causesProps: Error0.GeneralProps[]): Error0.GeneralProps {
|
|
232
199
|
const cause = this._getClosestPropValue(causesProps, 'cause')
|
|
233
200
|
const stack = this._mergeStack(causesProps[1]?.stack, causesProps[0]?.stack)
|
|
234
201
|
const closestTag = this._getClosestPropValue(causesProps, 'tag')
|
|
235
202
|
const meta = this._getMergedMetaValue(causesProps)
|
|
236
203
|
const tag = meta0PluginTag.public.getFullTag(meta, closestTag)
|
|
237
|
-
const propsFloated:
|
|
204
|
+
const propsFloated: Error0.GeneralProps = {
|
|
238
205
|
message: this._getClosestPropValue(causesProps, 'message'),
|
|
239
206
|
tag,
|
|
240
207
|
code: this._getClosestPropValue(causesProps, 'code'),
|
|
@@ -253,13 +220,13 @@ export class Error0 extends Error {
|
|
|
253
220
|
|
|
254
221
|
// sepcial
|
|
255
222
|
|
|
256
|
-
public static _getExtraError0PropsByZodError(zodError: ZodError): Partial<
|
|
223
|
+
public static _getExtraError0PropsByZodError(zodError: ZodError): Partial<Error0.GeneralProps> {
|
|
257
224
|
return {
|
|
258
225
|
message: `Zod Validation Error: ${zodError.message}`,
|
|
259
226
|
}
|
|
260
227
|
}
|
|
261
228
|
|
|
262
|
-
public static _getExtraError0PropsByAxiosError(axiosError: AxiosError): Partial<
|
|
229
|
+
public static _getExtraError0PropsByAxiosError(axiosError: AxiosError): Partial<Error0.GeneralProps> {
|
|
263
230
|
return {
|
|
264
231
|
message: 'Axios Error',
|
|
265
232
|
meta: {
|
|
@@ -276,8 +243,8 @@ export class Error0 extends Error {
|
|
|
276
243
|
}
|
|
277
244
|
|
|
278
245
|
public static _assignError0Props(
|
|
279
|
-
error0Props:
|
|
280
|
-
extraError0Props: Partial<
|
|
246
|
+
error0Props: Error0.GeneralProps,
|
|
247
|
+
extraError0Props: Partial<Error0.GeneralProps>,
|
|
281
248
|
): void {
|
|
282
249
|
const metaValue = Meta0.mergeValues(error0Props.meta, extraError0Props.meta)
|
|
283
250
|
Object.assign(error0Props, extraError0Props, { meta: metaValue })
|
|
@@ -286,8 +253,8 @@ export class Error0 extends Error {
|
|
|
286
253
|
// expected
|
|
287
254
|
|
|
288
255
|
public static _normalizeSelfExpected(
|
|
289
|
-
error0Props:
|
|
290
|
-
expectedProvided:
|
|
256
|
+
error0Props: Error0.GeneralProps,
|
|
257
|
+
expectedProvided: Error0.Input['expected'],
|
|
291
258
|
): boolean | undefined {
|
|
292
259
|
if (typeof expectedProvided === 'function') {
|
|
293
260
|
return expectedProvided(error0Props)
|
|
@@ -295,7 +262,7 @@ export class Error0 extends Error {
|
|
|
295
262
|
return expectedProvided
|
|
296
263
|
}
|
|
297
264
|
|
|
298
|
-
public static _isExpected(causesProps:
|
|
265
|
+
public static _isExpected(causesProps: Error0.GeneralProps[]): boolean {
|
|
299
266
|
let hasExpectedTrue = false
|
|
300
267
|
for (const causeProps of causesProps) {
|
|
301
268
|
if (causeProps.expected === false) {
|
|
@@ -310,7 +277,7 @@ export class Error0 extends Error {
|
|
|
310
277
|
|
|
311
278
|
// getters
|
|
312
279
|
|
|
313
|
-
public static _getPropsFromUnknown(error: unknown, defaults?:
|
|
280
|
+
public static _getPropsFromUnknown(error: unknown, defaults?: Error0.Input): Error0.GeneralProps {
|
|
314
281
|
if (typeof error !== 'object' || error === null) {
|
|
315
282
|
return {
|
|
316
283
|
message: undefined,
|
|
@@ -332,7 +299,7 @@ export class Error0 extends Error {
|
|
|
332
299
|
'clientMessage' in error && typeof error.clientMessage === 'string'
|
|
333
300
|
? error.clientMessage
|
|
334
301
|
: defaults?.clientMessage || undefined
|
|
335
|
-
const result:
|
|
302
|
+
const result: Error0.GeneralProps = {
|
|
336
303
|
message,
|
|
337
304
|
code: 'code' in error && typeof error.code === 'string' ? error.code : defaults?.code || undefined,
|
|
338
305
|
clientMessage,
|
|
@@ -367,7 +334,7 @@ export class Error0 extends Error {
|
|
|
367
334
|
result.expected = this._normalizeSelfExpected(
|
|
368
335
|
result,
|
|
369
336
|
'expected' in error && (typeof error.expected === 'boolean' || typeof error.expected === 'function')
|
|
370
|
-
? (error.expected as ExpectedFn)
|
|
337
|
+
? (error.expected as Error0.ExpectedFn)
|
|
371
338
|
: defaults?.expected || undefined,
|
|
372
339
|
)
|
|
373
340
|
if (result.zodError) {
|
|
@@ -379,12 +346,12 @@ export class Error0 extends Error {
|
|
|
379
346
|
return result
|
|
380
347
|
}
|
|
381
348
|
|
|
382
|
-
public static _getCausesPropsFromUnknown(error: unknown, maxLevel: number):
|
|
349
|
+
public static _getCausesPropsFromUnknown(error: unknown, maxLevel: number): Error0.GeneralProps[] {
|
|
383
350
|
if (!error) {
|
|
384
351
|
return []
|
|
385
352
|
}
|
|
386
353
|
const causeProps = this._getPropsFromUnknown(error)
|
|
387
|
-
const causesProps:
|
|
354
|
+
const causesProps: Error0.GeneralProps[] = [causeProps]
|
|
388
355
|
if (!causeProps.cause) {
|
|
389
356
|
return causesProps
|
|
390
357
|
}
|
|
@@ -395,28 +362,28 @@ export class Error0 extends Error {
|
|
|
395
362
|
}
|
|
396
363
|
|
|
397
364
|
public static _getCausesPropsFromError0Props(
|
|
398
|
-
error0Props:
|
|
365
|
+
error0Props: Error0.GeneralProps,
|
|
399
366
|
maxLevel: number,
|
|
400
|
-
):
|
|
367
|
+
): Error0.GeneralProps[] {
|
|
401
368
|
return [error0Props, ...this._getCausesPropsFromUnknown(error0Props.cause, maxLevel - 1)]
|
|
402
369
|
}
|
|
403
370
|
|
|
404
|
-
public static _getClosestPropValue<TPropKey extends keyof
|
|
405
|
-
causesProps:
|
|
371
|
+
public static _getClosestPropValue<TPropKey extends keyof Error0.GeneralProps>(
|
|
372
|
+
causesProps: Error0.GeneralProps[],
|
|
406
373
|
propKey: TPropKey,
|
|
407
|
-
): NonNullable<
|
|
374
|
+
): NonNullable<Error0.GeneralProps[TPropKey]> | undefined {
|
|
408
375
|
for (const causeProps of causesProps) {
|
|
409
376
|
const propValue = causeProps[propKey]
|
|
410
377
|
if (isFilled(propValue)) {
|
|
411
|
-
return propValue as NonNullable<
|
|
378
|
+
return propValue as NonNullable<Error0.GeneralProps[TPropKey]>
|
|
412
379
|
}
|
|
413
380
|
}
|
|
414
381
|
return undefined
|
|
415
382
|
}
|
|
416
383
|
|
|
417
384
|
// private static getClosestByGetter<TResult>(
|
|
418
|
-
// causesProps:
|
|
419
|
-
// getter: (props:
|
|
385
|
+
// causesProps: Error0.GeneralProps[],
|
|
386
|
+
// getter: (props: Error0.GeneralProps) => TResult,
|
|
420
387
|
// ): NonNullable<TResult> | undefined {
|
|
421
388
|
// for (const causeProps of causesProps) {
|
|
422
389
|
// const result = getter(causeProps)
|
|
@@ -427,21 +394,21 @@ export class Error0 extends Error {
|
|
|
427
394
|
// return undefined
|
|
428
395
|
// }
|
|
429
396
|
|
|
430
|
-
public static _getFilledPropValues<TPropKey extends keyof
|
|
431
|
-
causesProps:
|
|
397
|
+
public static _getFilledPropValues<TPropKey extends keyof Error0.Input>(
|
|
398
|
+
causesProps: Error0.GeneralProps[],
|
|
432
399
|
propKey: TPropKey,
|
|
433
|
-
): NonNullable<
|
|
434
|
-
const values: NonNullable<
|
|
400
|
+
): NonNullable<Error0.GeneralProps[TPropKey]>[] {
|
|
401
|
+
const values: NonNullable<Error0.GeneralProps[TPropKey]>[] = []
|
|
435
402
|
for (const causeProps of causesProps) {
|
|
436
403
|
const propValue = causeProps[propKey]
|
|
437
404
|
if (isFilled(propValue)) {
|
|
438
|
-
values.push(propValue as NonNullable<
|
|
405
|
+
values.push(propValue as NonNullable<Error0.GeneralProps[TPropKey]>)
|
|
439
406
|
}
|
|
440
407
|
}
|
|
441
408
|
return values
|
|
442
409
|
}
|
|
443
410
|
|
|
444
|
-
public static _getMergedMetaValue(causesProps:
|
|
411
|
+
public static _getMergedMetaValue(causesProps: Error0.GeneralProps[]): Meta0.ValueType {
|
|
445
412
|
const metas = this._getFilledPropValues(causesProps, 'meta')
|
|
446
413
|
if (metas.length === 0) {
|
|
447
414
|
return {}
|
|
@@ -454,7 +421,7 @@ export class Error0 extends Error {
|
|
|
454
421
|
|
|
455
422
|
// stack
|
|
456
423
|
|
|
457
|
-
public static _removeConstructorStackPart(stack:
|
|
424
|
+
public static _removeConstructorStackPart(stack: Error0.GeneralProps['stack']): Error0.GeneralProps['stack'] {
|
|
458
425
|
if (!stack) {
|
|
459
426
|
return stack
|
|
460
427
|
}
|
|
@@ -470,9 +437,9 @@ export class Error0 extends Error {
|
|
|
470
437
|
}
|
|
471
438
|
|
|
472
439
|
public static _mergeStack(
|
|
473
|
-
prevStack:
|
|
474
|
-
nextStack:
|
|
475
|
-
):
|
|
440
|
+
prevStack: Error0.GeneralProps['stack'],
|
|
441
|
+
nextStack: Error0.GeneralProps['stack'],
|
|
442
|
+
): Error0.GeneralProps['stack'] {
|
|
476
443
|
return [nextStack, prevStack].filter(Boolean).join('\n\n') || undefined
|
|
477
444
|
}
|
|
478
445
|
|
|
@@ -496,7 +463,7 @@ export class Error0 extends Error {
|
|
|
496
463
|
return false
|
|
497
464
|
}
|
|
498
465
|
|
|
499
|
-
public static _toError0(error: unknown, inputOverride:
|
|
466
|
+
public static _toError0(error: unknown, inputOverride: Error0.Input = {}): Error0 {
|
|
500
467
|
if (error instanceof Error0) {
|
|
501
468
|
return error
|
|
502
469
|
}
|
|
@@ -529,16 +496,16 @@ export class Error0 extends Error {
|
|
|
529
496
|
return new Error0(this._getPropsFromUnknown(error, inputOverride))
|
|
530
497
|
}
|
|
531
498
|
|
|
532
|
-
static from(error: unknown, inputOverride?:
|
|
499
|
+
static from(error: unknown, inputOverride?: Error0.Input): Error0 {
|
|
533
500
|
return this._toError0(error, inputOverride)
|
|
534
501
|
}
|
|
535
502
|
|
|
536
503
|
static extend(props: {
|
|
537
|
-
defaultMessage?:
|
|
538
|
-
defaultCode?:
|
|
539
|
-
defaultHttpStatus?:
|
|
540
|
-
defaultExpected?:
|
|
541
|
-
defaultClientMessage?:
|
|
504
|
+
defaultMessage?: Error0.GeneralProps['message']
|
|
505
|
+
defaultCode?: Error0.GeneralProps['code']
|
|
506
|
+
defaultHttpStatus?: Error0.GeneralProps['httpStatus']
|
|
507
|
+
defaultExpected?: Error0.GeneralProps['expected']
|
|
508
|
+
defaultClientMessage?: Error0.GeneralProps['clientMessage']
|
|
542
509
|
defaultMeta?: Meta0.Meta0OrValueTypeNullish
|
|
543
510
|
}) {
|
|
544
511
|
const parent = this
|
|
@@ -555,11 +522,11 @@ export class Error0 extends Error {
|
|
|
555
522
|
static extendCollection<T extends Record<string, typeof Error0>>(
|
|
556
523
|
classes: T,
|
|
557
524
|
props: {
|
|
558
|
-
defaultMessage?:
|
|
559
|
-
defaultCode?:
|
|
560
|
-
defaultHttpStatus?:
|
|
561
|
-
defaultExpected?:
|
|
562
|
-
defaultClientMessage?:
|
|
525
|
+
defaultMessage?: Error0.GeneralProps['message']
|
|
526
|
+
defaultCode?: Error0.GeneralProps['code']
|
|
527
|
+
defaultHttpStatus?: Error0.GeneralProps['httpStatus']
|
|
528
|
+
defaultExpected?: Error0.GeneralProps['expected']
|
|
529
|
+
defaultClientMessage?: Error0.GeneralProps['clientMessage']
|
|
563
530
|
defaultMeta?: Meta0.Meta0OrValueTypeNullish
|
|
564
531
|
},
|
|
565
532
|
): T {
|
|
@@ -581,7 +548,7 @@ export class Error0 extends Error {
|
|
|
581
548
|
__I_AM_ERROR_0: this.__I_AM_ERROR_0,
|
|
582
549
|
}
|
|
583
550
|
}
|
|
584
|
-
static toJSON(error: unknown, inputOverride?:
|
|
551
|
+
static toJSON(error: unknown, inputOverride?: Error0.Input) {
|
|
585
552
|
const error0 = this.from(error, inputOverride)
|
|
586
553
|
return error0.toJSON()
|
|
587
554
|
}
|
|
@@ -601,6 +568,38 @@ export class Error0 extends Error {
|
|
|
601
568
|
}
|
|
602
569
|
|
|
603
570
|
export namespace Error0 {
|
|
571
|
+
export interface Input {
|
|
572
|
+
message?: string
|
|
573
|
+
tag?: string
|
|
574
|
+
code?: string
|
|
575
|
+
httpStatus?: HttpStatusCode | HttpStatusCodeString
|
|
576
|
+
expected?: boolean | Error0.ExpectedFn
|
|
577
|
+
clientMessage?: string
|
|
578
|
+
cause?: Error0Cause
|
|
579
|
+
stack?: string
|
|
580
|
+
meta?: Meta0.Meta0OrValueTypeNullish
|
|
581
|
+
zodError?: ZodError
|
|
582
|
+
axiosError?: AxiosError
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
export interface GeneralProps {
|
|
586
|
+
message: Input['message']
|
|
587
|
+
tag: Input['tag']
|
|
588
|
+
code: Input['code']
|
|
589
|
+
httpStatus: number | undefined
|
|
590
|
+
expected: boolean | undefined
|
|
591
|
+
clientMessage: Input['clientMessage']
|
|
592
|
+
anyMessage: string | undefined
|
|
593
|
+
cause: Input['cause']
|
|
594
|
+
stack: Error['stack']
|
|
595
|
+
meta: Meta0.ValueType
|
|
596
|
+
zodError?: ZodError
|
|
597
|
+
axiosError?: AxiosError
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
export type HttpStatusCodeString = keyof typeof HttpStatusCode
|
|
601
|
+
export type Error0Cause = Error | Error0 | unknown
|
|
602
|
+
export type ExpectedFn = (error: GeneralProps) => boolean | undefined
|
|
604
603
|
export type JSON = ReturnType<Error0['toJSON']>
|
|
605
604
|
export type Collection = Record<string, typeof Error0>
|
|
606
605
|
}
|