ts-maybe-monad
TypeScript icon, indicating that this package has built-in type declarations

1.2.2 • Public • Published

ts-maybe-monad

TypeScript maybe monad for reaching child fields inside complicated objects.

Glossary

Usage

Installation:

npm install ts-maybe-monad

Import

import { maybe } from 'ts-maybe-monad';

Simple variable

const variable: number = 1;
maybe(variable, 0); //=> 1
 
const variable: number | undefined = undefined;
maybe(variable, 0); //=> 0

Depth 1: get inner field

const instance = {
    numberField: 1,
    undefinedField: undefined,
};
 
maybe(instance, x => x.numberField, 0); //=> 1
maybe(instance, x => x.undefinedField, 0); //=> 0

Depth 2: get inner field

const instance = {
    child: {
        numberField: 1,
        undefinedField: undefined,
    },
};
 
maybe(instance, x => x.child, x => x.numberField, 0); //=> 1
maybe(instance, x => x.child, x => x.undefinedField, 0); //=> 0

Documantation

maybe function

Overwrites:

maybe(instance): MaybeInstance

  • instance: instance to dive in

Returns MaybeInstance object

maybe(instance, defaultValue)

  • instance: instance to dive in
  • defaultValue: default value returns if instance is null or undefined

Returns existed value or default one

maybe(instance, ...accessors[], defaultValue)

  • instance: instance to dive in
  • accessors: array of accessors to dive into child field of parent instance
  • defaultValue: default value returns if last accessor returns null or undefined

Returns existed value or default one

MaybeInstance class

Wrapper over instance in order to return it's value or child fild's value through accessor.

Methods:

with(accessor): MaybeInstance

Dives in child field

  • accessor: array of accessor to dive into child field of parent instance

Returns MaybeInstance object

return(defaultValue)

  • defaultValue: default value returns if instance is null or undefined

Returns existed value or default one

return(accessor)

  • accessors: an accessors to dive into child field from wrapped instance

Returns existed value or undefined

return(accessor, defaultValue)

  • accessor: an accessor to dive into child field from wrapped instance
  • defaultValue: default value returns if instance is null or undefined

Returns existed value or default one

do(accessor)

Do anything with child item if it's reachable

  • accessor: an accessor to dive into child field from wrapped instance

Returns none

Dependents (1)

Package Sidebar

Install

npm i ts-maybe-monad

Weekly Downloads

2

Version

1.2.2

License

MIT

Unpacked Size

17.9 kB

Total Files

15

Last publish

Collaborators

  • vimbat