ts-data-forge
Version:
[](https://www.npmjs.com/package/ts-data-forge) [](https://www.npmjs.com/package/ts-data-forge) [ • 1.06 kB
JavaScript
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