UNPKG

ts-data-forge

Version:

[![npm version](https://img.shields.io/npm/v/ts-data-forge.svg)](https://www.npmjs.com/package/ts-data-forge) [![npm downloads](https://img.shields.io/npm/dm/ts-data-forge.svg)](https://www.npmjs.com/package/ts-data-forge) [![License](https://img.shields.

28 lines (26 loc) 789 B
import { hasKey, isRecord } from '../../../guard/index.mjs'; import { ErrTypeTagName, OkTypeTagName } from './tag.mjs'; /** * Checks whether the provided value is a {@link Result<S, E>}. * * @example * * ```ts * const okValue = Result.ok('success'); * * const errValue = Result.err(new Error('failure')); * * const notResult = { $$tag: 'ts-data-forge::Result.ok' }; * * assert.isTrue(Result.isResult(okValue)); * * assert.isTrue(Result.isResult(errValue)); * * assert.isFalse(Result.isResult(notResult)); * ``` */ export const isResult = (maybeResult: unknown): maybeResult is UnknownResult => isRecord(maybeResult) && hasKey(maybeResult, '$$tag') && hasKey(maybeResult, 'value') && (maybeResult.$$tag === ErrTypeTagName || maybeResult.$$tag === OkTypeTagName);