value-getter

npm install --save value-getter

Usage no npm install needed!

<script type="module">
  import valueGetter from 'https://cdn.skypack.dev/value-getter';
</script>

README

value-getter

Install

npm install --save value-getter
# or
yarn add value-getter

Usage

import { ValueGetter } from 'value-getter'

const getNodeEnv =
  env('NODE_ENV')
    .required()
    .get()

function env(name: string): ValueGetter<string | undefined> {
  return new ValueGetter(name, () => process.env[name])
}

API

class ValueGetter<T> {
  new (name: string, get: Getter<T>) => ValueGetter<T>
  new (get: Getter<T>) => ValueGetter<T>

  default<U>(val: U): IValueGetter<AddDefault<T, U>>
  assert<U extends T = T>(assert: (val: T) => unknown): IValueGetter<U>
  required(): IValueGetter<NonNullable<T>>
  memoize(cache: WeakMap<Getter<T>, T>): IValueGetter<T>
  memoize(cacheGetter: Getter<WeakMap<Getter<T>, T>>): IValueGetter<T>
  convert<U>(convert: (val: T) => U): IValueGetter<U>
  tap(sideEffect: (val: T) => void): IValueGetter<T>
  get(): Getter<T>
  value(): T
}