Package Exports
- molijv
- molijv/molijv.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (molijv) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
MoliJV - Mongoose-Like JSON Validador
JSON validator inspired by Mongoose for Node.js.
- Type validation and coercion similar to Mongoose, but with no external dependencies.
- Supports types: String, Number, Boolean, Date, Int32, Decimal128, Double, Array, Object.
- Allows defining validation schemas in a simple and flexible way.
Installation
npm install molijvQuick Example
import { Schema } from 'molijv'
const userSchema = new Schema({
name: { type: String, required: true, trim: true },
age: { type: Number, min: 0 },
email: { type: String, match: /@/, message: 'Invalid email' }
})
const user = {
name: ' Arthur ',
age: '22',
email: 'arthur@email.com'
}
userSchema.validate(user) // returns validated/coerced object or throws errorFeatures
- Type validation and automatic coercion (optional)
- Customizable error messages
- Supports custom validation, enum, min/max, required, match (regex), default, etc.
- Inspired by Mongoose schema API
API Documentation
Class: Schema
Creates a validator from a schema.
new Schema(schemaDef, options?)
schemaDef: Object that defines the schema (types, validations, etc)options: (optional){ coerce: boolean }(default:true)
validate(data)
Validates and (optionally) coerces the input data.
data: Object to be validated- Returns: validated/coerced object (may be the same or a new object)
- Throws:
Errorif validation fails
Supported types
String,Number,Boolean,Date,Int32,Decimal128,Double,Array,Object
Field options
type: Field typerequired:trueor[true, "message"]min,max: For numbers or dates. Ex:{ min: 0 }enum: List of allowed values or[values, "message"]match: Regex or[regex, "message"]default: Default valuevalidate: Custom function or[function, "message"]trim,lowercase,uppercase: For strings
Full schema example
const schema = new Schema({
name: { type: String, required: [true, 'Name is required'], trim: true },
age: { type: Int32, min: 0, max: 120 },
email: { type: String, match: [/@/, 'Invalid email'] },
tags: [String],
createdAt: { type: Date, default: () => new Date() }
})License
MIT