An open API service indexing awesome lists of open source software.

https://github.com/totaltechgeek/simple-password-rules


https://github.com/totaltechgeek/simple-password-rules

Last synced: about 1 year ago
JSON representation

Awesome Lists containing this project

README

          

## Simple Password Rules

[![Coverage Status](https://coveralls.io/repos/github/TotalTechGeek/simple-password-rules/badge.svg?branch=master)](https://coveralls.io/github/TotalTechGeek/simple-password-rules?branch=master)

Have you ever needed to implement password policies for your codebase? This module attempts to simplify that.

```js
import { password, min, max, hasDigit, hasSpecial } from 'simple-password-rules'

const check = password(
min(8),
max(16),
hasDigit(1),
hasSpecial(1)
)

const errors = check('password1')
if (errors) {
throw new Error(errors) //  The password provided does not contain enough "special" characters. Needs 1 more. 
}
```

---

### password

A function to create a password policy.

#### Parameters

* `rules` **...[Array][27]\**

Returns **function (str: any): [string][28]** A string if there is an error, undefined otherwise.

### min

#### Parameters

* `num` **[number][30]**

Returns **function (str: any): [string][28]** A string if there is an error, undefined otherwise.

### max

#### Parameters

* `num` **[number][30]**

Returns **function (str: any): [string][28]** A string if there is an error, undefined otherwise.

### has

#### Parameters

* `charSet` **[string][28]** The characters to check for.
* `num` **[number][30]?** The minimum characters required.
* `name` **[string][28]?**

Returns **function (str: any): [string][28]** A string if there is an error, undefined otherwise.

### hasLowerCase

#### Parameters

* `num` **[number][30]?** The minimum characters required.

Returns **function (str: any): [string][28]** A string if there is an error, undefined otherwise.

### hasUpperCase

#### Parameters

* `num` **[number][30]?** The minimum characters required.

Returns **function (str: any): [string][28]** A string if there is an error, undefined otherwise.

### hasSpecial

#### Parameters

* `num` **[number][30]?** The minimum characters required.

Returns **function (str: any): [string][28]** A string if there is an error, undefined otherwise.

### hasDigit

#### Parameters

* `num` **[number][30]?** The minimum characters required.

Returns **function (str: any): [string][28]** A string if there is an error, undefined otherwise.

### includes

#### Parameters

* `requiredText` **([string][28] | [Array][27]<[string][28]>)**

Returns **function (str: any): [string][28]** A string if there is an error, undefined otherwise.

### notIncludes

#### Parameters

* `requiredText` **([string][28] | [Array][27]<[string][28]>)**
* `substitute` **([string][28] | [boolean][31] | function (text: [string][28]): [string][28])?**

Returns **function (str: any): [string][28]** A string if there is an error, undefined otherwise.

### some

Checks if some of the rules were followed, if a number is included at the end, it will check if at least
that many rules were followed.

#### Parameters

* `rules` **...[Array][27]<([number][30] | function (str: [string][28]): ([string][28] | [undefined][29]))>**

Returns **function (str: any): [string][28]** A string if there is an error, undefined otherwise.

### not

Inverts the result of a rule, allowing you to specify text.

#### Parameters

* `rule` **function (str: [string][28]): [string][28]**
* `error` **[string][28]**

Returns **function (str: any): [string][28]** A string if there is an error, undefined otherwise.

### template

Parses the string template to make it simple to create templates.
"$" is the magic symbol that lets you reference the argument.
Only works with template functions with less than 10 arguments,
and doesn't let you traverse (input to the function should be strings).

#### Parameters

* `stringTemplate` **[string][28]**

Returns **function (...args: [Array][27]<[string][28]>): [string][28]**

[27]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array

[28]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String

[29]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined

[30]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number

[31]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean