open-index/open-npm huggingface dataset:
npm package: @rayhomie/reactcli
Description: Create A React Project With webpack In TypeScript
Author: rayhomie
Latest version: 0.1.1

# @rayhomie/reactcli

### install

```bash
npm install @rayhomie/reactcli -g
```
### check

```bash 
# View version
reactcli -V
# or
reactcli --version

# for hlep
reactcli --help
```
### use

Open the terminal and enter the following to create the project
```bash
reactcli create your_project_name
```

### start

```bash
cd ./your_project_name
yarn ios 
# or
yarn android
```
npm package: @rayhomie/rncli
Description: Create A React Native Project With ReactNavigation & Dva.js & TypeScript
Author: rayhomie
Latest version: 0.1.2

# rncli

### install

```bash
npm install @rayhomie/rncli -g
```
### check

```bash 
# View version
rncli -V
# or
rncli --version

# for hlep
rncli --help
```
### use

Open the terminal and enter the following to create the project
```bash
rncli create your_project_name
```

### start

```bash
cd ./your_project_name
yarn ios 
# or
yarn android
```
npm package: @raykeen/vali
Description: Validation library
Author: Andrey Osipov
Latest version: 0.0.1

# Vali
Vali is a simple form validation library.

Example:
```ts
type FormType = {
  name: string;
  quantity: number;
  price: number | null;
  recipients: string[];
  description: string;
};

const validator = new Vali<FormType, FormType>().fields(
  {
    name: (v) => v.required('name is required'),
    quantity: (v) => v.min(1, 'minimum 1').max(10, 'maximum 10'),
    price: (v) => v.max(10000, 'too much'),
    recipients: (v) =>
      v
        .minLength(1, 'should be at least 1 recipient')
        .fn((recipients, context) => {
          return v.maxLength(context.quantity, '').validate(recipients, context).isValid;
        }, "recipients count shouldn't be more than quantity")
        .required('recipients required'),
  },
  'Invalid product form',
);

const validForm: FormType = {
  name: '',
  quantity: 2,
  price: null,
  recipients: ['Vladimir', 'Joseph'],
  description: 'blablabla',
};

const result = validator.validate(validForm, validForm);
/*
  {
    isValid: false,
    error: "Invalid product form",
    result: {
      name: { isValid: false, error: "name is required", result: null },
      quantity: { isValid: true, error: null, result: null },
      ...
    }
  }
 */
```

## Features
* Form validations
* Typescript support
* Validators composition
* Validations based on a context
* Synchronous