@az-tech/schemas

0.9.2 • Public • Published

##Schemas schema.js provides a simple schema constructor which provides validation methods of models.

###Usage Create a schema file for your model, ie: 'myModel.schema.js', and require the 'schema.js' file in it. Create an object representing the model and call new Schema(myModel) to create the new model schema.

###Schema API myschema.validate(object) = Will validate the data being passed in against the model schema definition. This method will run the following commands.

mySchema.validateFieldType(field, modelField) = Validates that the property is of the proper data type. field is a string representing the property name of the schema. modelField is the property on the data to be validated.

mySchema.validateDateString(val) = Validates that date strings are proper ISO format.

myschema.validateLength(field, modelField) = Validates that the length of the field is neither over the maxLength or under the minLength of that property. fieldis the name of the prop to validate, modelField is the property value to be validated.

###Model Definitions Define model schemas as an object of key: value pairs where key is the name of the property and value is an object with the property defitions. Current property values are as follows:

type: the data type of the property. Currently supported types are 'string','number','boolean','arrary', and 'date'. 'date' is current;ly assumed to be an ISO String.
required: A boolean value to specify whether a property is required to pass validation. Not providing a required key:pair will default to required:false
minLength: A number value to designate the minimum length of the property. Not providing a minLength will default the value to 0;
maxLength: A number value to designate the maximum length of the property. Not providing a minLength will default the value to null, allowing unlimited length;
default: Default value for property. If the data provided has a key: value pair it will use those values, otherwise it will use the provided default or null if no default is provided.

###Example: A model like:

const myModel = new Schema({
    properties:{
        name: {required: true, type: 'string'},
        age: {required: false, type: 'number', minLength: 2, maxLength: 3},
        createdAt: {required: true, type: 'date'},
        updatedAt: {required: true, type: 'date'},
        active: {required: true, type: 'boolean'}
    }
})

will create a new schema with 5 properties.

Calling validate on an object will validate the object against the schema, returning either true, or an array of strings, with the strings detailing the issues with the validation.

Readme

Keywords

none

Package Sidebar

Install

npm i @az-tech/schemas

Weekly Downloads

3

Version

0.9.2

License

ISC

Unpacked Size

12.5 kB

Total Files

5

Last publish

Collaborators

  • jantspo
  • rbanuelos
  • vpz910