1.2.0 • Published 4 months ago

schemeit v1.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

TypeScript

SchemeIt

A lightweight express-js request payload validator, originally written for my personal projects and separated out into its own package for easier use. Schemeit will check individual elements against their chosen validators, ensure all non-optional elements are present in a payload and can also optionally enforce noExtraElements to prevent bloated payloads.

Install

npm install schemeit

Usage

The following is a basic example usage of schemeit to build a validator middleware for an endpoint:

import express from "express";
import createValidator, { NumberValidator, StringValidator } from 'schemeit';

const app = express();

const testValidator = createValidator({
  name: StringValidator(),
  age: NumberValidator.optional()
});

app.post('/test', testValidator, async (request: Request, response: Response) => {
  response.status(200).json({ message: 'Success!' });
});

app.listen(3000);

You can also use the exported function objectValidator to create your own validation function with custom rules and optinally an error message like so:

const SpecificStringValidator: ValidationFunction = objectValidator((object: unknown) => {
  return object === 'foo' || object === 'bar';
}, 'Invalid type, should be foo or bar!');

Validator Options

OptionDescription
noExtraElementsRejects payloads with elements that do not exist in the validator schema
errorListNameSets the name of the error list returned by the validator middleware, by default it is just errors
1.2.0

4 months ago

1.1.2

4 months ago

1.1.1

4 months ago

1.1.0

4 months ago

1.0.0

4 months ago

0.1.1

4 months ago

0.1.0

4 months ago