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.

30 lines (27 loc) 907 B
import { isRecord } from '../../../guard/is-record.mjs'; import { SomeTypeTagName, NoneTypeTagName } from './tag.mjs'; /** * Checks if the given value is an {@link Optional}. * * @example * * ```ts * const maybeOptional = Optional.some('value'); * * const notOptional = { $$tag: 'ts-data-forge::Optional.some' }; * * assert.isTrue(Optional.isOptional(maybeOptional)); * * assert.isFalse(Optional.isOptional(notOptional)); * ``` * * @param maybeOptional The value to check. * @returns `true` if the value is an {@link Optional}, otherwise `false`. */ const isOptional = (maybeOptional) => isRecord(maybeOptional) && Object.hasOwn(maybeOptional, '$$tag') && ((maybeOptional['$$tag'] === SomeTypeTagName && Object.hasOwn(maybeOptional, 'value')) || maybeOptional['$$tag'] === NoneTypeTagName); export { isOptional }; //# sourceMappingURL=optional-is-optional.mjs.map