clay-policy

2.1.13 • Public • Published

clay-policy

Build Status npm Version JS Standard

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.

Links

/clay-policy/

    Package Sidebar

    Install

    npm i clay-policy

    Weekly Downloads

    22

    Version

    2.1.13

    License

    Apache-2.0

    Unpacked Size

    148 kB

    Total Files

    63

    Last publish

    Collaborators

    • okunishinishi
    • realglobe