ardent

Fancy Object Schema Modeling. Inspired in Mongoose Schema defintion but out of box.

Usage no npm install needed!

<script type="module">
  import ardent from 'https://cdn.skypack.dev/ardent';
</script>

README

ardent

Last version Build Status Dependency status Dev Dependencies Status NPM Status Donate

Fancy Object Schema Modeling. Inspired in Mongoose Schema but out of the box.

Install

$ npm install ardent --save

If you want to use in the browser (powered by Browserify):

$ bower install ardent --save

and later link in your HTML:

<script src="bower_components/ardent/dist/ardent.js"></script>

Usage

var Ardent = require('ardent')

function trim (str) {
  return str.trim()
}

// setup your schema
var schema = {
  age: {
    type: String,
    default: '23',
    filter: [trim]
  }
}

// creating schema validation
var ardent = Ardent(schema)

// schema factory
ardent({age: '  23  '}).should.be.eql({age: '23'})

API

ardent(schema, [options])

schema

Required
Type: object

Created a Factory for validate a schema based in a set of rules.

Rules are setup following two approach

Basic

Just provide key/value pair per rule, where key is the name of the rule and value the type casting result:

var basicSchema = {
  age: Number
}
Advanced

The basic mode is a simplification of the advanced mode.

While in basic mode only is possible setup type casting, in advanced mode you can setup more things providing a configurable object.

The following keys setup your rule:

  • type: as in basic mode, it specifies the type casting of the output value.
  • default: whatever default value that you can set if nill value as input is provided.
  • filter: an Array collection of data transforms as pipeline of methods to apply for the input value.
function trim (str) {
  return str.trim()
}
    
var advancedSchema = {
  age: {
    type: String,
    default: '23',
    filter: [trim]
  }
}

options

Type: object Default: soon

soon

License

MIT © Kiko Beats