https://github.com/totaltechgeek/simple-password-rules
https://github.com/totaltechgeek/simple-password-rules
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/totaltechgeek/simple-password-rules
- Owner: TotalTechGeek
- License: mit
- Created: 2022-05-17T21:56:57.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2023-04-29T19:00:31.000Z (about 3 years ago)
- Last Synced: 2025-02-01T17:13:47.146Z (over 1 year ago)
- Language: JavaScript
- Size: 1.29 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
## Simple Password Rules
[](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