Schema helpers for ClayDB resources
$ npm install clay-policy --save
'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))
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 |
Available data types
- NUMBER
- STRING
- BOOLEAN
- DATE
- OBJECT
- NULL
- REF
- ENTITY
- ID
This software is released under the Apache-2.0 License.