TypeScript maybe monad for reaching child fields inside complicated objects.
- Usage
- Documentation
- maybe function
- MaybeInstance class
npm install ts-maybe-monad
import { maybe } from 'ts-maybe-monad';const variable: number = 1;
maybe(variable, 0); //=> 1
const variable: number | undefined = undefined;
maybe(variable, 0); //=> 0const instance = {
numberField: 1,
undefinedField: undefined,
};
maybe(instance, x => x.numberField, 0); //=> 1
maybe(instance, x => x.undefinedField, 0); //=> 0const 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); //=> 0Overwrites:
instance: instance to dive in
Returns MaybeInstance object
instance: instance to dive indefaultValue: default value returns if instance isnullorundefined
Returns existed value or default one
instance: instance to dive inaccessors: array of accessors to dive into child field of parent instancedefaultValue: default value returns if last accessor returnsnullorundefined
Returns existed value or default one
Wrapper over instance in order to return it's value or child fild's value through accessor.
Methods:
Dives in child field
accessor: array of accessor to dive into child field of parent instance
Returns MaybeInstance object
defaultValue: default value returns if instance isnullorundefined
Returns existed value or default one
accessors: an accessors to dive into child field from wrapped instance
Returns existed value or undefined
accessor: an accessor to dive into child field from wrapped instancedefaultValue: default value returns if instance isnullorundefined
Returns existed value or default one
Do anything with child item if it's reachable
accessor: an accessor to dive into child field from wrapped instance
Returns none