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.

33 lines (30 loc) 1.06 kB
import { hasKey } from '../../../guard/has-key.mjs'; import { isRecord } from '../../../guard/is-record.mjs'; import { WarnTypeTagName, OkTypeTagName, ErrTypeTagName } from './tag.mjs'; /** * Checks whether the provided value is a {@link TernaryResult}. * * @example * * ```ts * const okValue = TernaryResult.ok('done'); * * const warnValue = TernaryResult.warn('done', 'retry later'); * * const notResult = { $$tag: 'ts-data-forge::Result.ok' }; * * assert.isTrue(TernaryResult.isTernaryResult(okValue)); * * assert.isTrue(TernaryResult.isTernaryResult(warnValue)); * * assert.isFalse(TernaryResult.isTernaryResult(notResult)); * ``` */ const isTernaryResult = (maybeResult) => isRecord(maybeResult) && hasKey(maybeResult, '$$tag') && hasKey(maybeResult, 'value') && ((maybeResult.$$tag === WarnTypeTagName && hasKey(maybeResult, 'warning')) || maybeResult.$$tag === OkTypeTagName || maybeResult.$$tag === ErrTypeTagName); export { isTernaryResult }; //# sourceMappingURL=ternary-result-is-ternary-result.mjs.map