jsonschema-definer
v1.3.2
Published
JSON Schema constructor and validator
Downloads
1,143
Maintainers
Readme
This package provides simple, well typed API for creating and validating JSON Schemas
🔥 Install
npm install jsonschema-definer
👌 Usage
This package was inspired by fluent-schema
and prop-types
, and is used to create and validate JSON Schema. It was written in typescript and provide a lot of usefull info from typings, such as infering interface types from schema. Here is an example:
import S from 'jsonschema-definer'
// Lets define a simple object schema
const UserSchema = S.shape({
name: S.string(),
email: S.string().format('email').optional(),
password: S.string().minLength(8),
role: S.enum('client', 'suplier'),
birthday: S.instanceOf(Date)
})
// Now lets get interface of User from schema
type User = typeof UserSchema.type
/*
type User = {
name: string,
email?: string | undefined,
password: string,
role: 'client' | 'suplier',
birthday: Date
}
*/
// We can validate user using .validate(data) function (ajv used)
const [valid, errors] = UserSchema.validate({
name: 'Igor',
email: '[email protected]',
password: '12345678',
role: 'client',
birthday: new Date()
})
console.log(valid, errors) // [boolean, Error[]]
// Or get plain JSON Schema using .valueOf()
console.log(UserSchema.valueOf())
⭐️ Show your support
Give a ⭐️ if this project helped you!
📚 Documentation
Full documentation available here
Main exported variable S: SchemaFactory extends BaseSchema
🤝 Contributing
Contributions, issues and feature requests are welcome!Feel free to check issues page.
Run tests
npm run test
Author
👤 Igor Solomakha [email protected]
- Github: @Sujimoshi
📝 License
Copyright © 2020 Igor Solomakha [email protected]. This project is ISC licensed.
This README was generated with ❤️ by readme-md-generator