Skip to content
Easy way to validate objects for a Meteor.Collection
JavaScript
Latest commit 2adbc78 Dec 25, 2013 @matteodem Update version to 0.3.1
Failed to load latest commit information.
lib Add a _config property to be used by 3rd party packages Dec 25, 2013
tests
.gitignore Updated .gitignore Aug 27, 2013
README.md
package.js
smart.json

README.md

Meteor Easy Check

This package makes it as simple as possible to check objects, e.g. for a Meteor.Collection.

Quick Intro

Create a checker like that:

var PersonChecker = new EasyCheck({
    'name' : 'string',
    'hasCar' : {
        type : 'boolean',
        required : false
    }
});

PersonChecker.check({ name :  'Peter' }); // returns true
PersonChecker.check({ something : 'random' }); // returns false

Features

  • Use predefined self-validating insert, update and remove functions
  • Simple to create references beetween collections
  • Possibility to add custom types
  • Hook into all CRUD Operations + when there are Errors

You could use the above example and create secure Meteor.methods with it… or just add your Meteor.Collection as the 2nd parameter:

var CarsChecker = new EasyCheck({
    'company' : 'string',
    'model' : {
        type : 'string',
        maxLength : 255,
        required : false
    },
    'isNew' : 'boolean'
}, CarsCollection); // CarsCollection is an instance of Meteor.Collection

// You now got following methods on your collection, with validation
CarsCollection.easyInsert(doc, [callback]);
CarsCollection.easyUpdate(selector, modifier, [options], [callback]);
CarsCollection.easyRemove(selector, [callback]);

How to install

mrt add easy-check

Possible configurations to a field

There's quite some options to specify the values you want to check against

{
    type : 'array',             // the type, such as string, number...
    required : false,           // is the field is required
    maxLength : 255,            // the maximum length
    minLength : 10,             // the minimum length
    regex: /[\w]+/,             // a regex pattern to test() against
    contains : %type%,          // only if array, can specify what type of values it contains
    references : {              // reference a collection, by a field in it
        'collection' : cars,    // collection which it references
        'fields' : '_id'        // The field which it references, default _id
    }
}

Field types

  • 'string'
  • 'booolean'
  • 'array'
  • 'object'
  • 'date'
  • instanceof EasyCheck

Options

You can also add an options object as a third parameter, for example:

new EasyCheck(schema, collection, options);

Following options can be configured:

{
    onInsert : function (document),  // act on an insert
    onUpdate : function (selector, modifier, options) // act on an update
    onCheckUpdatedDoc : function (document) // act on updated docs, return false = revert
    onRemove : function (id) // act on a remove
    onError  : function (errors) // act when there were errors when checking a document
}
Something went wrong with that request. Please try again.