Skip to content
This repository has been archived by the owner on Apr 19, 2022. It is now read-only.

Compiler to compile parsed schema tree into reusable functions

License

Notifications You must be signed in to change notification settings

poppinss/indicative-compiler

Repository files navigation

Indicative Compiler

circleci-image npm-image license-image

Indicative compiler to compile validations schema into a highly optimized executable function.

Indicative is a highly performant validation library for Node.js. It achieves this by compiling the schema into a tree and then an a top level executable function.

Table of contents

Usage

Install the package from npm registry as follows:

You must use indicative directly. This is a low level module meant to be used by indicative itself.

npm i indicative-compiler

# yarn
yarn add indicative-compiler

and then use it as follows:

import { ValidatorCompiler, ValidatorExecutor } from 'indicative-compiler'
import { VanillaFormatter } from 'indicative-formatters'
import * as validations from 'indicative-rules'

const schema = {
  username: 'required',
  email: 'required|email'
}

const messages = {}

// Do it once for each schema
const compiledFunctions = new ValidatorCompiler(schema, messages).compile()

await new ValidatorExecutor(compiledFunctions).exec(data, VanillaFormatter, {}, false, false)

The ValidatorExecutor.exec function takes 5 parameters.

  1. data: The runtime data to validate against the compiled schema.
  2. formatter: Formatter constructor to collect and format error messages.
  3. config: The config to be passed to all the validation functions.
  4. bail: When true, it will stop after first error.
  5. removeAdditional: When true, the exec will return only validated properties.

API Docs

Following are the autogenerated files via Typedoc