json-quasar
v1.1.3
Published
- This is a simple json validator for typescript. It is based on the [json-schema](https://json-schema.org/) standard. - It's framework-agnostic, so it can be used with any framework.
Downloads
16
Maintainers
Readme
Typescript JSON Validator
- This is a simple json validator for typescript. It is based on the json-schema standard.
- It's framework-agnostic, so it can be used with any framework.
Documentation
Installation
- Can be installed with npm or yarn
yarn add json-quasar
npm install json-quasar
Usage
Create a validator instance
import {validator} from "json-quasar";
const currentDate = new Date();
const yesterday = new Date(currentDate);
yesterday.setDate(currentDate.getDate() - 1);
const testValidator = validator((schema) => {
return {
name: schema.rule()
.string()
.trim()
.pascalCase()
.message("Invalid name provided")
.required(),
age: schema.rule().number().message("Invalid age provided").required(),
isAdult: schema.rule()
.boolean()
.nullable()
.message("Invalid isAdult provided")
.required(),
email: schema.rule()
.string()
.optional()
.email()
.message("Invalid email provided"),
func: schema.rule()
.function()
.returns("string")
.message("Invalid function provided")
.required(),
now: schema.rule().date().afterOrEqual(yesterday).required(),
array: schema.rule()
.array()
.required()
.members(schema.rule().array().members(schema.rule().number())),
obj: schema.rule()
.object()
.required()
.members(schema.rule().object().members(schema.rule().number())),
}
});
Validation
const exampleBody = {
name: "test ",
email: "[email protected]",
age: 21,
now: new Date(),
isAdult: null,
func: () => {
return "test";
},
array: [
[1, 2, 3],
[4, 5, 6],
],
obj: {
a: {
c: 2,
},
b: {
d: 2,
},
},
};
// Throws an exception if the body is not valid
const validateBody = testValidator.validate(exampleBody);
// Returns a boolean if the body is valid or not
const isBodyValid = testValidator.isValid(exampleBody);