Skip to content

unwrapByInformationOrThrow

Unwraps an Either payload when one literal information or one of multiple literal informations matches, otherwise throws a HasNotInformationError.

Interactive example

Syntax

Classic signature

typescript
function unwrapByInformationOrThrow<
  GenericInput extends unknown,
  GenericInformation extends (
    GenericInput extends Either
      ? ReturnType<typeof informationKind.getValue<GenericInput>>
      : never
  ),
>(
  input: GenericInput,
  information: GenericInformation | GenericInformation[],
): Unwrap<
  Extract<
    GenericInput,
    Kind<typeof informationKind.definition, GenericInformation>
  >
>

Curried signature

typescript
function unwrapByInformationOrThrow<
  GenericInput extends unknown,
  const GenericInformation extends (
    GenericInput extends Either
      ? ReturnType<typeof informationKind.getValue<GenericInput>>
      : never
  ),
>(
  information: GenericInformation | GenericInformation[],
): (
  input: GenericInput,
) => Unwrap<
  Extract<
    GenericInput,
    Kind<typeof informationKind.definition, GenericInformation>
  >
>

Parameters

  • information: Expected literal information, or an array of literal informations.
  • input: Either value to unwrap immediately, or later through the curried form.

Return value

Returns the unwrapped payload when one information matches. Otherwise, the function throws E.HasNotInformationError.

See also

Released under the MIT license.