JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 16
  • Score
    100M100P100Q77933F
  • License MIT

Mongoose-Like JSON Schema Validator

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 molijv

Quick 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 error

Features

  • 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: Error if validation fails

Supported types

  • String, Number, Boolean, Date, Int32, Decimal128, Double, Array, Object

Field options

  • type: Field type
  • required: true or [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 value
  • validate: 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