# validate-runner

> 验证执行器

Latest version **1.0.22** (published 2019-03-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install validate-runner
pnpm add validate-runner
yarn add validate-runner
bun add validate-runner
```

## Health

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

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.22 |
| Published | 2019-03-19 |
| First published | 2019-03-12 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 2 |
| Unpacked size | 47.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | XueYou |
| Maintainers | xueyou2000 |
| Keywords | validate |

## Links

- npm: https://www.npmjs.com/package/validate-runner
- Repository: https://github.com/xueyou2000/validate-runner
- Homepage: https://github.com/xueyou2000/validate-runner#readme
- Issues: https://github.com/xueyou2000/validate-runner/issues
- npm.io page: https://npm.io/package/validate-runner

## Dependencies (2)

- [validate-methods](https://npm.io/package/validate-methods.md) ^1.0.51
- [validate-provider](https://npm.io/package/validate-provider.md) ^1.0.31

## Alternatives

- [@sindresorhus/slugify](https://npm.io/package/@sindresorhus/slugify.md) — 3.7M weekly downloads
- [solid-js](https://npm.io/package/solid-js.md) — 2.7M weekly downloads
- [expo-glass-effect](https://npm.io/package/expo-glass-effect.md) — 2.5M weekly downloads
- [nanoassert](https://npm.io/package/nanoassert.md) — 780.8K weekly downloads
- [@ffmpeg/ffmpeg](https://npm.io/package/@ffmpeg/ffmpeg.md) — 529.5K weekly downloads

## Recent versions

- 1.0.22 (latest) — 2019-03-19
- 1.0.21 — 2019-03-12

## README

# validate-runner

> 验证函数执行器, 提供批量执行验证描述对象集合的功能. 基于 `Promise`

支持:

-   `ValidateRunnerAll` 并行验证执行器, 所有验证并行执行, 其中有一个验证错误则错误
-   `ValidateRunnerAny` 顺序任意验证执行器, 验证函数一个接一个执行, 遇到任意一个验证成功则成功, 全部失败则失败

## Install And Usega

Using Browser:

```html
<script src="validate-provider.js"></script>
<script src="./dist/index.js"></script>
<script>
    var provider = new ValidateProvider();

    provider.add(
        "IsPhone",
        (val: string) => {
            return /^(13[0-9]|15[0123456789]|17[03678]|18[0-9]|14[57])[0-9]{8}$/.test(val);
        },
        "手机号不正确"
    );

    var runner = new ValidateRunnerAll(provider);
    runner.add(new ValidateRunnerElement("IsPhone", "xueyoucd@gmail.com"));

    runner
        .execute()
        .then((infos) => {
            console.log("验证成功, 验证函数名为", infos[0].name);
        })
        .catch((error) => {
            console.log(error.message === "手机号不正确");
        });
</script>
```

Or Using npm:

```sh
npm install --save validate-provider validate-runner
```

```js
import { ValidateProvider } from "validate-provider/es";
import { ValidateRunnerElement, ValidateRunnerAll } from "validate-provider/es";

var provider = new ValidateProvider();

provider.add(
    "IsPhone",
    (val: string) => {
        return /^(13[0-9]|15[0123456789]|17[03678]|18[0-9]|14[57])[0-9]{8}$/.test(val);
    },
    "手机号不正确"
);

var runner = new ValidateRunnerAll(provider);
runner.add(new ValidateRunnerElement("IsPhone", "xueyoucd@gmail.com"));

runner
    .execute()
    .then((infos) => {
        console.log("验证成功, 验证函数名为", infos[0].name);
    })
    .catch((error) => {
        console.log(error.message === "手机号不正确");
    });
```

---

## ValidateRunner

`ValidateRunner`是一个抽象类, 用于验证函数集合的执行

-   `add(element: ValidateRunnerElement)` 添加验证描述对象
-   `addBatch(elements: ValidateRunnerElement[])` 批量添加验证描述对象
-   `remove(element: ValidateRunnerElement)` 删除验证描述对象
-   `removeByName(name: string)` 根据验证方法名称删除验证描述对象
-   `execute(): Promise<IMethodRegister[]>;` 运行验证执行器

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