clay-policy
v2.1.13
Published
Schema helpers for ClayDB resources
Downloads
102
Readme
clay-policy
Schema helpers for ClayDB resources
Table of Contents
Installation
$ npm install clay-policy --save
Usage
'use strict'
const clayPolicy = require('clay-policy')
const {STRING, DATE} = clayPolicy.DataTypes
async function tryPolicy () {
const policy = clayPolicy({
username: {
type: STRING,
required: true
},
birthday: {
type: DATE
},
rank: {
type: STRING,
oneOf: ['GOLD', 'SLIVER', 'BRONZE']
}
})
const error = policy.validate({
username: 'hoge',
rank: 'SUPER'
})
console.error(error.detail.failures) // -> { rank: { reason: 'enums', expects: [ /* ... */ ], actual: 'ULTRA' } }
}
tryPolicy().catch((err) => console.error(err))
Field Restrictions
| Restriction | Type | Description | default | | ---------- | ---- | --------- | ------ | | type | | Type of the field. Possible values are defined as DataTypes in clay-constants package. | | | oneOf | array | Enum values for the field (Only for STRING type) | | | required | boolean | Value is required for the field | | | default | | Default value of the field | | | unique | boolean | Add unique constraint on the field | | | uniqueFor | array | Names of attributes to make unique for | | | minimum | number | Minimum value of the field (Only for NUMBER type) | | | maximum | number | Maximum value of the field (Only for NUMBER type) | | | minLength | integer | Minimum length of the field | | | maxLength | integer | Maximum length of the field | | | trim | boolean | Trim value. (Only for STRING type) | | | pattern | string | Restrict value with pattern. (Only for STRING type) | | | multiple | boolean | Field can contain multiple value. Type restriction will be applied to each items | |
API Guide
Data Types
Available data types
- NUMBER
- STRING
- BOOLEAN
- DATE
- OBJECT
- NULL
- REF
- ENTITY
- ID
License
This software is released under the Apache-2.0 License.