0.4.0 • Published 6 years ago

modela v0.4.0

Weekly downloads
3
License
ISC
Repository
github
Last release
6 years ago

Modela

Javascript model library to work with objects. To create model objects and check validations.

Features

  • Manual validation
  • Type check
  • Clean object

Install

$ npm install modela --save
# or
$ yarn add modela

And then, import it:

// ES2015+
import Modela from 'modela';

// CommonJS
var Modela = require('modela');

Usage

Create Model

const user = new Modela({
  username: {
    type: ['string'],
    validator: v => v.length >= 4,
    default: v => v + 'x'.repeat(4-v.length)
  },
  name: {
    type: ['string', 'undefined']
  },
  birthday: {
    type: ['date', 'undefined']
  },
  city: {
    type: ['string'],
    default: v => 'Tehran'
  },
  role: {
    type: ['string'],
    validator: v => ['agent', 'user', 'admin'].indexOf(v) > -1,
    default: v => 'user',
    importer: v => v.replace('role: ', '').trim(),
    formatter: v => `role: ${v}`,
    message: v => `role cannot be "${v}"! it should be one of agent, user or admin.`
  }
})

$set

To assign javascript object to Modela created schema, use $set method.

const userObject = {
  username: 'n',
  name: 'Amir Momenian',
  birthday: new Date('27 sept 1992'),
  role: 'role: zeus'
}
user.$set(userObject)

$check

To check validity of Modela object, use $check method.

const userCheck = user.$check()
// userCheck = {
//   result: false,
//   errors: {
//     username: 'Illegal value!',
//     role: 'role cannot be "zeus"! it should be one of "agent", "user" or "admin".'
//   }
// }
})

$clean

To clean Modela object (replace illegal values by default value), use $clean method.

const userClean = user.$clean()
// userClean = true
})

$export

To export Modela object to normal javascript object, use $export method.

const userExport = user.$export()
// userExport = {
//   username: 'nxxx',
//   name: 'Amir Momenian',
//   birthday: '1992-09-26T20:30:00.000Z',
//   city: 'Tehran',
//   role: 'role: user'
// }
})
0.4.0

6 years ago

0.3.1

6 years ago

0.3.0

6 years ago

0.2.0

6 years ago

0.1.0

7 years ago

0.0.221

7 years ago

0.0.22

7 years ago

0.0.21

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago