From 762b1d0bd1613af07d8320fc4f01f508561b3ecb Mon Sep 17 00:00:00 2001 From: Alex Shelkovskiy Date: Mon, 24 Jan 2022 02:29:48 +0600 Subject: [PATCH] Better isErr function --- package.json | 2 +- src/checks.ts | 6 +++++- src/index.ts | 2 +- src/utils.ts | 11 +++++++++-- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 2b6434c..987768c 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "error", "error-handling" ], - "version": "1.0.20", + "version": "1.0.21", "author": "Alex Shelkovskiy ", "repository": "https://github.com/alexshelkov/result", "license": "MIT", diff --git a/src/checks.ts b/src/checks.ts index 3a2d14f..9b2a3db 100644 --- a/src/checks.ts +++ b/src/checks.ts @@ -1,10 +1,14 @@ import { Err } from './err'; import { Failure, Success } from './result'; -export const isErr = (input: unknown): input is Err => { +export const isUnknownErr = (input: unknown): input is Err => { return typeof input === 'object' && input !== null && 'type' in input; }; +export const isErr = (input: Error): input is Error extends Err ? Error : never => { + return isUnknownErr(input); +}; + export const isErrType = < Type extends string, Fail, diff --git a/src/index.ts b/src/index.ts index 3786ecc..861c6e6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,7 +2,7 @@ export { ErrUtil as Err, Err as ErrInfo, ErrLevel, Errs } from './err'; export { Success, Failure, Result, Response } from './result'; -export { isErr, isErrType, isSuccessLike, isFailureLike } from './checks'; +export { isUnknownErr, isErr, isErrType, isSuccessLike, isFailureLike } from './checks'; export { ok, diff --git a/src/utils.ts b/src/utils.ts index 7361d29..3e59223 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -9,7 +9,14 @@ import { Response, } from './result'; -import { isPromise, isHaveStatus, isSuccessLike, isFailureLike, isErr } from './checks'; +import { + isPromise, + isHaveStatus, + isSuccessLike, + isFailureLike, + isErr, + isUnknownErr, +} from './checks'; import { Err, ErrUtil } from './err'; @@ -56,7 +63,7 @@ const maybeFailToResult = ( prevResult.message, prevResult.code ); - } else if (isErr(result)) { + } else if (isUnknownErr(result)) { exception = new FailureException( result.type, result as unknown as Fail,