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.

34 lines (31 loc) 1.05 kB
import { unknownToString } from '../../../others/unknown-to-string.mjs'; import { isWarn } from './ternary-result-is-warn.mjs'; import { variantName } from './variant-name.mjs'; /** * Returns the Warn value or throws if the result is not Warn. * * @example * * ```ts * const warnValue = TernaryResult.warn('pending', 'check logs'); * * assert.strictEqual(TernaryResult.unwrapWarnThrow(warnValue), 'check logs'); * * assert.throws( * () => TernaryResult.unwrapWarnThrow(TernaryResult.err('err')), * /Expected Warn/u, * ); * ``` */ const unwrapWarnThrow = (result, toStr = unknownToString) => { if (isWarn(result)) { // eslint-disable-next-line total-functions/no-unsafe-type-assertion return result.warning; } const variant = variantName(result.$$tag); throw new Error(`Expected Warn but got ${variant}: ${toStr( // eslint-disable-next-line total-functions/no-unsafe-type-assertion result.value)}`); }; export { unwrapWarnThrow }; //# sourceMappingURL=ternary-result-unwrap-warn-throw.mjs.map