UNPKG

@metaplex-foundation/umi-options

Version:

A TypeScript implementation of Rust Options

1 lines 2.91 kB
{"version":3,"file":"unwrapOption.cjs","sources":["../../src/unwrapOption.ts"],"sourcesContent":["import { Nullable, Nullish, Option, isSome, none, some } from './common';\n\n/**\n * Unwraps the value of an {@link Option} of type `T`\n * or returns a fallback value that defaults to `null`.\n *\n * @category Utils — Options\n */\nexport function unwrapOption<T>(option: Option<T>): Nullable<T>;\nexport function unwrapOption<T, U>(option: Option<T>, fallback: () => U): T | U;\nexport function unwrapOption<T, U = null>(\n option: Option<T>,\n fallback?: () => U\n): T | U {\n if (isSome(option)) return option.value;\n return fallback ? fallback() : (null as U);\n}\n\n/**\n * Wraps a nullable value into an {@link Option}.\n *\n * @category Utils — Options\n */\nexport const wrapNullable = <T>(nullable: Nullable<T>): Option<T> =>\n nullable !== null ? some(nullable) : none<T>();\n\n/**\n * Wraps a nullish value into an {@link Option}.\n *\n * @category Utils — Options\n */\nexport const wrapNullish = <T>(nullish: Nullish<T>): Option<T> =>\n nullish !== null && nullish !== undefined ? some(nullish) : none<T>();\n\n/**\n * Unwraps the value of an {@link Option} of type `T`.\n * If the option is a {@link Some}, it returns its value,\n * Otherwise, it returns `null`.\n *\n * @category Utils — Options\n * @deprecated Use {@link unwrapOption} instead.\n */\nexport const unwrapSome = <T>(option: Option<T>): Nullable<T> =>\n isSome(option) ? option.value : null;\n\n/**\n * Unwraps the value of an {@link Option} of type `T`\n * or returns a custom fallback value.\n * If the option is a {@link Some}, it returns its value,\n * Otherwise, it returns the return value of the provided fallback callback.\n *\n * @category Utils — Options\n * @deprecated Use {@link unwrapOption} instead.\n */\nexport const unwrapSomeOrElse = <T, U>(\n option: Option<T>,\n fallback: () => U\n): T | U => (isSome(option) ? option.value : fallback());\n"],"names":["unwrapOption","option","fallback","isSome","value","wrapNullable","nullable","some","none","wrapNullish","nullish","undefined","unwrapSome","unwrapSomeOrElse"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAGO,SAASA,YAAY,CAC1BC,MAAiB,EACjBC,QAAkB,EACX;EACP,IAAIC,aAAM,CAACF,MAAM,CAAC,EAAE,OAAOA,MAAM,CAACG,KAAK,CAAA;AACvC,EAAA,OAAOF,QAAQ,GAAGA,QAAQ,EAAE,GAAI,IAAU,CAAA;AAC5C,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACaG,MAAAA,YAAY,GAAOC,QAAqB,IACnDA,QAAQ,KAAK,IAAI,GAAGC,WAAI,CAACD,QAAQ,CAAC,GAAGE,WAAI,GAAK;;AAEhD;AACA;AACA;AACA;AACA;MACaC,WAAW,GAAOC,OAAmB,IAChDA,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAKC,SAAS,GAAGJ,WAAI,CAACG,OAAO,CAAC,GAAGF,WAAI,GAAK;;AAEvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACaI,MAAAA,UAAU,GAAOX,MAAiB,IAC7CE,aAAM,CAACF,MAAM,CAAC,GAAGA,MAAM,CAACG,KAAK,GAAG,KAAI;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaS,gBAAgB,GAAG,CAC9BZ,MAAiB,EACjBC,QAAiB,KACNC,aAAM,CAACF,MAAM,CAAC,GAAGA,MAAM,CAACG,KAAK,GAAGF,QAAQ;;;;;;;;"}