0.0.111 • Published 6 years ago

mzen-schema v0.0.111

Weekly downloads
-
License
BSD-3-Clause
Repository
github
Last release
6 years ago

mZen-schema

Data schema's in Javascript

Features:

  • Define Javascript data structure Schemas
  • Specify validation rules and default values
  • Validate, type-cast and populate default values
  • Define schema relations

import Schema from 'mzen-schema';
// var Schema = require('mzen-schema').default; // commonjs

var schemaPerson = new Schema({
  // field names with a $ prefix are used to specify options in the schema specification
  $name: 'person', // A schema can be referenced in other schema's by name to allow composition
  $strict: true, // in strict mode any undefined fields will produce an error on validation
  _id: 'ObjectID',
  name: {
    // $label used in validation error message - defaults to the field name
    $label: 'Name',
    $type: String,
    $validate: {
      required: true,
      valueLength: {min: 1, max: 50}
    },
    $filter: {defaultValue: 'Unknown'}
  },
  created: Date,
  contact: {
    address: String,
    tel: {$type: String, $validate: {
      required: true,
      // Use a single validator multiple times
      // - Specify an array of options rather than an object
      // - Validator will be executed once per options object
      regex: [
        {
          pattern: '[+0-9]+',
          message: 'Tel does not appear to be valid'
        },
        {
          pattern: '^\+[0-9]{2}',
          message: 'Tel must start with your country code (e.g. +44)'
        }
      ]
    }
  }
});

var paul = {
  name: 'Paul',
  contact: {
    address: '123 Street, UK',
    tel: 0123456789
  }
};

// Calling Schema.validate() will type-cast and validate
// the data against the schema
// The validate() method returns a result object with meta data
// Two useful values returned are 'isValid' and 'errors'
schemaPerson.validate(paul).then(result => {
  if (result.isValid) {
    // Do something with valid user
  } else {
    console.log(result.errors);
  }
});
0.0.111

6 years ago

0.0.110

6 years ago

0.0.109

6 years ago

0.0.108

6 years ago

0.0.107

6 years ago

0.0.106

6 years ago

0.0.105

6 years ago

0.0.104

6 years ago

0.0.103

6 years ago

0.0.102

6 years ago

0.0.101

6 years ago

0.0.100

6 years ago

0.0.99

6 years ago

0.0.98

6 years ago

0.0.97

6 years ago

0.0.96

6 years ago

0.0.95

6 years ago

0.0.94

6 years ago

0.0.93

6 years ago

0.0.92

6 years ago

0.0.91

6 years ago

0.0.90

6 years ago

0.0.89

6 years ago

0.0.88

6 years ago

0.0.87

6 years ago

0.0.86

6 years ago

0.0.85

6 years ago

0.0.84

6 years ago

0.0.83

6 years ago

0.0.82

6 years ago

0.0.81

6 years ago

0.0.80

6 years ago

0.0.79

6 years ago

0.0.78

6 years ago

0.0.77

6 years ago

0.0.76

6 years ago

0.0.75

6 years ago

0.0.74

6 years ago

0.0.73

6 years ago

0.0.72

6 years ago

0.0.71

6 years ago

0.0.70

6 years ago

0.0.69

6 years ago

0.0.68

6 years ago

0.0.67

6 years ago

0.0.66

7 years ago

0.0.65

7 years ago

0.0.64

7 years ago

0.0.63

7 years ago

0.0.62

7 years ago

0.0.61

7 years ago

0.0.60

7 years ago

0.0.59

7 years ago

0.0.58

7 years ago

0.0.57

7 years ago

0.0.56

7 years ago

0.0.55

7 years ago

0.0.54

7 years ago

0.0.53

7 years ago

0.0.52

7 years ago

0.0.51

7 years ago

0.0.50

7 years ago

0.0.49

7 years ago

0.0.48

7 years ago

0.0.47

7 years ago

0.0.46

7 years ago

0.0.45

7 years ago

0.0.44

7 years ago

0.0.43

7 years ago

0.0.42

7 years ago

0.0.41

7 years ago

0.0.40

7 years ago

0.0.39

7 years ago

0.0.38

7 years ago

0.0.37

7 years ago

0.0.36

7 years ago

0.0.35

7 years ago

0.0.34

7 years ago

0.0.33

7 years ago

0.0.32

7 years ago

0.0.31

7 years ago

0.0.30

7 years ago

0.0.29

8 years ago

0.0.28

8 years ago

0.0.27

8 years ago

0.0.26

8 years ago

0.0.25

8 years ago

0.0.24

8 years ago

0.0.23

8 years ago

0.0.22

8 years ago

0.0.21

8 years ago

0.0.20

8 years ago

0.0.19

8 years ago

0.0.18

8 years ago

0.0.17

8 years ago

0.0.16

8 years ago

0.0.15

8 years ago

0.0.14

8 years ago

0.0.13

8 years ago

0.0.12

8 years ago

0.0.11

8 years ago

0.0.10

8 years ago

0.0.9

8 years ago

0.0.8

8 years ago

0.0.7

8 years ago

0.0.6

8 years ago

0.0.5

8 years ago

0.0.4

8 years ago

0.0.3

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago