# default-val

> Get a default value when a value is nullish or invalid type

Latest version **0.1.5** (published 2017-04-02) · MIT license · 0 weekly downloads

## Install

```sh
npm install default-val
pnpm add default-val
yarn add default-val
bun add default-val
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.5 |
| Published | 2017-04-02 |
| First published | 2017-02-27 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Takayuki Sato |
| Maintainers | sttk |
| Keywords | default, value, type, check |

## Links

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

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 0.1.5 (latest) — 2017-04-02
- 0.1.4 — 2017-04-02
- 0.1.3 — 2017-03-01
- 0.1.2 — 2017-02-27

## README

[default-value][repo-url] [![NPM][npm-img]][npm-url] [![MIT License][mit-img]][mit-url] [![Build Status][travis-img]][travis-url] [![Build Status][appveyor-img]][appveyor-url] [![Coverage Status][coverage-img]][coverage-url]
===============

Get a default value when a value is nullish or invalid type

Install
-------

```
$ npm i default-val --save
```

Usage
-----

* Load this mudule :

    ```js
    const defaultValue = require('default-val');
    ```

* Return the default value when the value is undefined or null :

    ```js
    defaultValue(undefined, true) // => true
    defaultValue(null, 123) // => 123
    ```

* Return the default value when the value is NaN :

    ```js
    defaultValue(NaN, 123) // => 123
    defaultValue(Infinity, 123) // => Infinity
    ```

* Return the default value when the type of the value is invalid :

    ```js
    defaultValue(987, true) // => true
    defaultValue(987, 'ABC', 'string') // => 'ABC'
    defaultValue(987, 'ABC', '[object String]') // => 'ABC'
    defaultValue(987, 123, '[object String]') // => 123
    defaultValue(987, new Date(0), '[object Date]') // => new Date(0)
    ```

* And return the value when it is valid :

    ```js
    defaultValue(987, 0) // => 987
    defaultValue(987, 123, 'number') // => 987
    defaultValue(987, null, 'number') // => 987
    defaultValue(987, 'ABC', '[object Number]') // => 987
    ```

API
---

### <u>defaultValue(value, defValue [, type]) => any</u>

Returns the second argument when the first argument is `null`, `undefined` or `NaN`, or the type of the first argument is different from the type of the second argument.
When the third argument is specified, returns the second argument if the type of the first argument is different from the type represented by the third argument.
The third argument can be specified the result of `typeof x` or `Object.prototype.toString.call(x)`.

* **Arguments:**

    * **value** [any] : a value to be evaluated.
    * **defValue** [any] : a default value which is returned if **value** is invalid.
    * **type** [string] : a type for a valid value. (optional)

* **Return** [any] : **value** if **value** is valid, otherwise **defValue**.

License
-------

Copyright (C) 2017 Takayuki Sato

This program is free software under [MIT][mit-url] License.
See the file LICENSE in this distribution for more details.

[repo-url]: https://github.com/sttk/default-value/
[npm-img]: https://img.shields.io/badge/npm-v0.1.5-blue.svg
[npm-url]: https://www.npmjs.org/package/default-val/
[mit-img]: https://img.shields.io/badge/license-MIT-green.svg
[mit-url]: https://opensource.org/license.MIT
[travis-img]: https://travis-ci.org/sttk/default-value.svg?branch=master
[travis-url]: https://travis-ci.org/sttk/default-value
[appveyor-img]: https://ci.appveyor.com/api/projects/status/github/sttk/default-value?branch=master&svg=true
[appveyor-url]: https://ci.appveyor.com/project/sttk/default-value
[coverage-img]: https://coveralls.io/repos/github/sttk/default-value/badge.svg?branch=master
[coverage-url]: https://coveralls.io/github/sttk/default-value?branch=master

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