# value-getter

> ```sh npm install --save value-getter # or yarn add value-getter ```

Latest version **0.3.5** (published 2026-08-15) · MIT license · 0 weekly downloads

## Install

```sh
npm install value-getter
pnpm add value-getter
yarn add value-getter
bun add value-getter
```

## Health

**Score 70/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; recently updated; high maintenance score; high quality score.

Warnings: low downloads; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.3.5 |
| Published | 2026-08-15 |
| First published | 2020-12-26 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 4 |
| Unpacked size | 12.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | BlackGlory |
| Maintainers | black_glory |

## Links

- npm: https://www.npmjs.com/package/value-getter
- Repository: https://github.com/BlackGlory/value-getter
- Homepage: https://github.com/BlackGlory/value-getter#readme
- Issues: https://github.com/BlackGlory/value-getter/issues
- npm.io page: https://npm.io/package/value-getter

## Dependencies (4)

- [hotypes](https://npm.io/package/hotypes.md) ^0.6.1
- [justypes](https://npm.io/package/justypes.md) ^4.2.0
- [extra-utils](https://npm.io/package/extra-utils.md) ^5.1.1
- [@blackglory/errors](https://npm.io/package/@blackglory/errors.md) ^3.1.0

## Recent versions

- 0.3.5 (latest) — 2026-08-15
- 0.3.4 — 2026-04-20
- 0.3.3 — 2023-11-27
- 0.3.2 — 2023-06-11
- 0.3.1 — 2023-04-07
- 0.3.0 — 2023-01-22
- 0.2.4 — 2022-05-15
- 0.2.3 — 2022-03-20
- 0.2.2 — 2022-01-05
- 0.2.1 — 2021-07-03
- 0.2.0 — 2021-06-30
- 0.1.16 — 2021-06-30
- 0.1.15 — 2021-05-27
- 0.1.14 — 2021-05-07
- 0.1.13 — 2021-03-17
- … 13 more at https://npm.io/package/value-getter/versions

## README

# value-getter
## Install
```sh
npm install --save value-getter
# or
yarn add value-getter
```

## Usage
```ts
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
```ts
class ValueGetter<T> {
  new (name: string | undefined, get: Getter<T>) => ValueGetter<T>
  new (get: Getter<T>) => ValueGetter<T>

  default<U>(val: U): IValueGetter<AddDefault<T, U>>

  assert<U extends T = T>(
    predicate: (val: T) => boolean
  , message: string
  ): ValueGetter<U>
  assert<U extends T = T>(
    assertion: (val: T) => void
  ): ValueGetter<U>

  required(): IValueGetter<NonNullable<T>>

  memoize(cache:
  | Map<Getter<T>, T>
  | WeakMap<Getter<T>, T>
  ): ValueGetter<T>
  memoize(cacheGetter: Getter<
  | Map<Getter<T>, T>
  | WeakMap<Getter<T>, T>
  >): ValueGetter<T>

  convert<U>(convert: (val: T) => U): IValueGetter<U>

  tap(sideEffect: (val: T) => void): IValueGetter<T>

  get(): Getter<T>

  value(): T
}
```

---
_Source: https://npm.io/package/value-getter · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
