0.0.111 • Published 4 years ago

mzen-schema v0.0.111

Weekly downloads
-
License
BSD-3-Clause
Repository
github
Last release
4 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

4 years ago

0.0.110

4 years ago

0.0.109

4 years ago

0.0.108

4 years ago

0.0.107

4 years ago

0.0.106

4 years ago

0.0.105

4 years ago

0.0.104

4 years ago

0.0.103

4 years ago

0.0.102

4 years ago

0.0.101

4 years ago

0.0.100

4 years ago

0.0.99

4 years ago

0.0.98

4 years ago

0.0.97

5 years ago

0.0.96

5 years ago

0.0.95

5 years ago

0.0.94

5 years ago

0.0.93

5 years ago

0.0.92

5 years ago

0.0.91

5 years ago

0.0.90

5 years ago

0.0.89

5 years ago

0.0.88

5 years ago

0.0.87

5 years ago

0.0.86

5 years ago

0.0.85

5 years ago

0.0.84

5 years ago

0.0.83

5 years ago

0.0.82

5 years ago

0.0.81

5 years ago

0.0.80

5 years ago

0.0.79

5 years ago

0.0.78

5 years ago

0.0.77

5 years ago

0.0.76

5 years ago

0.0.75

5 years ago

0.0.74

5 years ago

0.0.73

5 years ago

0.0.72

5 years ago

0.0.71

5 years ago

0.0.70

5 years ago

0.0.69

5 years ago

0.0.68

5 years ago

0.0.67

5 years ago

0.0.66

6 years ago

0.0.65

6 years ago

0.0.64

6 years ago

0.0.63

6 years ago

0.0.62

6 years ago

0.0.61

6 years ago

0.0.60

6 years ago

0.0.59

6 years ago

0.0.58

6 years ago

0.0.57

6 years ago

0.0.56

6 years ago

0.0.55

6 years ago

0.0.54

6 years ago

0.0.53

6 years ago

0.0.52

6 years ago

0.0.51

6 years ago

0.0.50

6 years ago

0.0.49

6 years ago

0.0.48

6 years ago

0.0.47

6 years ago

0.0.46

6 years ago

0.0.45

6 years ago

0.0.44

6 years ago

0.0.43

6 years ago

0.0.42

6 years ago

0.0.41

6 years ago

0.0.40

6 years ago

0.0.39

6 years ago

0.0.38

6 years ago

0.0.37

6 years ago

0.0.36

6 years ago

0.0.35

6 years ago

0.0.34

6 years ago

0.0.33

6 years ago

0.0.32

6 years ago

0.0.31

6 years ago

0.0.30

6 years ago

0.0.29

6 years ago

0.0.28

6 years ago

0.0.27

7 years ago

0.0.26

7 years ago

0.0.25

7 years ago

0.0.24

7 years ago

0.0.23

7 years ago

0.0.22

7 years ago

0.0.21

7 years ago

0.0.20

7 years ago

0.0.19

7 years ago

0.0.18

7 years ago

0.0.17

7 years ago

0.0.16

7 years ago

0.0.15

7 years ago

0.0.14

7 years ago

0.0.13

7 years ago

0.0.12

7 years ago

0.0.11

7 years ago

0.0.10

7 years ago

0.0.9

7 years ago

0.0.8

7 years ago

0.0.7

7 years ago

0.0.6

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago