# dynamic-validator

> dynamic-validator is an npm library for dealing with validation dynamically.

Latest version **1.0.2** (published 2022-03-22) · ISC license · 0 weekly downloads

## Install

```sh
npm install dynamic-validator
pnpm add dynamic-validator
yarn add dynamic-validator
bun add dynamic-validator
```

## Health

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

Positive: no vulnerabilities.

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

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.2 |
| Published | 2022-03-22 |
| First published | 2022-03-22 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 13.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | shahkar-khan |
| Maintainers | rizwanshaikh |
| Keywords | convert, string, number, validator, dynamic, validation, validate |

## Links

- npm: https://www.npmjs.com/package/dynamic-validator
- Repository: https://github.com/imrizwan/dynamic-validator
- Homepage: https://github.com/imrizwan/dynamic-validator#readme
- Issues: https://github.com/imrizwan/dynamic-validator/issues
- npm.io page: https://npm.io/package/dynamic-validator

## Alternatives

- [@regle/core](https://npm.io/package/@regle/core.md) — 47.0K weekly downloads
- [typeof-arguments](https://npm.io/package/typeof-arguments.md) — 12.5K weekly downloads
- [@lokalise/projects-engine-contracts](https://npm.io/package/@lokalise/projects-engine-contracts.md) — 978 weekly downloads
- [@osjwnpm/nam-laboriosam-quibusdam](https://npm.io/package/@osjwnpm/nam-laboriosam-quibusdam.md) — 70 weekly downloads
- [@oridune/validator](https://npm.io/package/@oridune/validator.md) — 16 weekly downloads

## Recent versions

- 1.0.2 (latest) — 2022-03-22
- 1.0.1 — 2022-03-22
- 1.0.0 — 2022-03-22

## README

# Dynamic Validator

dynamic-validator is an npm library for dealing with validation dynamically.

## Rules

 - type: array, object, boolean, string, number, integer, long, unsignedInt, unsignedShort, unsignedLong, safeInteger, decimal, float, double.
 - enum
 - has (object)
 - range (number)
 - text (string)
 - maxLength (string and array)
 - minLength (string and array)
 - length (string and array)
 - in (array)
 - dynamic (dynamic fields)
 - required

## Installation

```bash
npm i --save dynamic-validator
```

## Usage

```python
const { config } = require('./lib/validator')

const body = {
	name: "abc",
	age: 100,
	status: false,
	address: {
		city: "Karachi",
		country: "Pakistan",
		street: "DHA",
		extra: {
			phone: "123456789",
		}
	},
	hobbies: ["coding", "reading", "sleeping"],
	ur: [
		{
			name: "abc",
		},
		{
			name: "abc",
		}
	]
}

let errors = config(body, {
	name: "type:string|enum:abc,abc1,abc2|length:3|required:true",
	age: "type:number|range:0,100",
	status: "type:boolean",
	["address|type:object|has:city,country,street"]: {
		city: "type:string",
		country: "type:string",
		street: "type:string",
		["extra|type:object|has:phone"]: {
			phone: "type:string|maxLength:10|minLength:4"
		}
	},
	["hobbies|type:array|maxLength:6|minLength:2|in:coding,reading,sleeping,eating"]: [],
	["[en,ur,ko]|type:array"]: [{
		name: "type:string|text:abc"
	}],
})
```

## Contributing
Pull requests are welcome.

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