This package has been deprecated

Author message:

Just use https://npmjs.com/igogo

@es2/result-option
TypeScript icon, indicating that this package has built-in type declarations

0.2.0-beta.2 • Public • Published

@es2/result-option Maintainability Build Status Coverage Status

Readme

Read documentation

Installation

npm install @es2/result-option

Package written for ECMAScript v5+.

CommonJS

const { Option, Some, None, Result } = require('@es2/result-option')

Some.of(2)
Option.some(2)

ECMAScript Module

import { Option, Some, None, Result } from '@es2/result-option'

Some.of(2)
Option.some(2)

TypeScript

import { Ok, ResultClass } from '@es2/result-option'

const ResultClass<number, string> = Ok.of(12)

Examples

function divide(numerator, denominator) {
  return numerator === 0
    ? Option.zero()
    : Option.some(numerator / denominator)
}

const result = divide(12, 3)
  .extractOr(0)

assert(result, 4)
function checkOptional(optional: Option<number>) {
  if (optional.isSome()) {
    console.log(`has value ${optional.extractOr(null)}`)
  }
  else {
    console.log(`has no value`)
  }
}
let msg = Some.of('foo bar')

// Destroy option, extract string
let unwrappedMessage = msg.extractOr('default message')
// 'foo bar'
function getNumberOver5(): Option<number> {
  const number = Math.floor(Math.random() * 10)

  if (number > 5) {
    return Option.none()
  }

  return Some(number)
}

function printNumber(num: Option<number>) {
  console.log(`Generated number: ${num.extractOr(0)}`)
}

printNumber(getNumberOver5().or(Some(10)))
declare function getUser(id: number): Promise<Option<User>>

return (await getUser(1))
  .extractOrElse(() => User.default())

Package Sidebar

Install

npm i @es2/result-option

Weekly Downloads

0

Version

0.2.0-beta.2

License

MIT

Unpacked Size

66.9 kB

Total Files

21

Last publish

Collaborators

  • lestad