# has-required-props

> Assert that your object props have non-undefined values for each required prop

Latest version **0.0.4** (published 2017-05-27) · MIT license · 0 weekly downloads

## Install

```sh
npm install has-required-props
pnpm add has-required-props
yarn add has-required-props
bun add has-required-props
```

## 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.0.4 |
| Published | 2017-05-27 |
| First published | 2016-07-25 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Daniel Eisenbarger |
| Maintainers | danne931 |
| Keywords | has required props, contains required props, required props, props, properties, property check, check properties, check props |

## Links

- npm: https://www.npmjs.com/package/has-required-props
- Repository: https://github.com/danne931/has-required-props
- Homepage: https://github.com/danne931/has-required-props#readme
- Issues: https://github.com/danne931/has-required-props/issues
- npm.io page: https://npm.io/package/has-required-props

## Dependencies (1)

- [get-value](https://npm.io/package/get-value.md) ^2.0.6

## Recent versions

- 0.0.4 (latest) — 2017-05-27
- 0.0.3 — 2016-07-31
- 0.0.2 — 2016-07-25
- 0.0.1 — 2016-07-25

## README

# has-required-props

Assert that your object props have non-undefined values for each required prop

[![Build Status](https://travis-ci.org/danne931/has-required-props.svg?branch=master)](https://travis-ci.org/danne931/has-required-props)
[![Coverage Status](https://coveralls.io/repos/github/danne931/has-required-props/badge.svg)](https://coveralls.io/github/danne931/has-required-props)
[![npm version](https://img.shields.io/npm/v/has-required-props.svg?style=flat-square)](https://www.npmjs.com/package/has-required-props)
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
![](https://img.shields.io/badge/license-MIT-blue.svg)

## Install

```
$ npm install --save has-required-props
```

Not using Node or a module bundler? Use a UMD build via the `<script>` tag.
- [https://unpkg.com/has-required-props/dist/has-required-props.js](https://unpkg.com/has-required-props/dist/has-required-props.js)  
- [https://unpkg.com/has-required-props/dist/has-required-props.min.js](https://unpkg.com/has-required-props/dist/has-required-props.min.js)

## Usage

```javascript
import hasRequiredProps from 'has-required-props'

let props = { prop1: 'a', prop2: 'b' }
let requiredProps = ['prop1', 'prop2']
hasRequiredProps(requiredProps, props)  // true
hasRequiredProps(requiredProps, [props, props])  // true

requiredProps = ['prop1', 'prop2', 'prop3']
hasRequiredProps(requiredProps, props)  // false

// go crazy
props = {
  a: {
    b: 1,
    c: {
      d: 2
    }
  },
  e: 3,
  f: [
    3,
    {
      g: 1,
      h: {}
    }
  ]
}
requiredProps = ['a.b', 'a.c.d', 'e', 'f.0', 'f.1.g', 'f.1.h']
hasRequiredProps(requiredProps, props)  // true

// keep it simple
props = { a: 1, b: 2 }
requiredProps = 'a'
hasRequiredProps(requiredProps, props)  // true
props.a = undefined
hasRequiredProps(requiredProps, props)  // false
props.a = null
hasRequiredProps(requiredProps, props)  // true

// curry on
const curry = require('lodash/curry')
const duckCharacteristics = ['bill', 'plumage', 'webbedFeet']
const quacksLikeADuck = curry(hasRequiredProps(duckCharacteristics))
quacksLikeADuck({ bill: {}, plumage: {}, webbedFeet: {} }) // true
quacksLikeADuck({ bill: {}, plumage: {} }) // false

```

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