@transzero/validator

1.0.2 • Public • Published

@tranzero/validator

Dependencies

@transzero/validator

name version description
fastest-validator 1.11.0 JS validator - schema based
i18n 0.13.3 Lightweight simple translation module with dynamic JSON storage

Installation

NPM

You can install it via NPM

$ npm i @transzero/validator --save

or

$ yarn add @transzero/validator

Usage

Validate

  • new Validator().isEmail(email: string, options: object))
  • new Validator().isPassword(password: string, options: object))
  • new Validator().isPostalCode(postalCode: string, options: object))
  • new Validator().isCountryCode(countryCode: string, options: object))
  • new Validator().isPhoneNumber(phoneNumber: string, options: object))
  • new Validator().isUrl(url: string, options: object))
  • new Validator().isAddress(address: string, options: object))
  • new Validator().isDateTime(dateTime: string, options: object))
  • new Validator().isValid(schema: object, inputs: object, option: object))

Common options:

  • locale: en | jp | ch

Example

Check email value

const { Validator } = require('@transzero/validator')

const v = new Validator()

console.log('First:', v.isEmail('example@gmail.com'))
// Returns: [true, values]

console.log('Second:', v.isEmail('A@b@c@example.com'))
/* Returns: [false, errors]
  errors:
  [
    {
      message: 'email is invalid.',
      field: 'email',
      type: 'error_messages_invalidEmail'
    }
  ]
*/

console.log('Third:', v.isEmail('A@b@c@example.com'), { locale: 'jp' })
/* Returns: [false, errors]
  errors:
  [
    {
      message: 'メールアドレスは無効です!',
      field: 'email',
      type: 'error_messages_invalidEmail'
    }
  ]
*/

Check postal code value

const { Validator } = require('@transzero/validator')

const v = new Validator()

console.log('First:', v.isPostalCode('534-0002'))
// Returns: [true, values]

console.log('Second:', v.isPostalCode('VÊ-123'))
/* Returns: [false, errors]
  errors:
  [
    {
      message: 'The format of postalCode is invalid.',
      field: 'postalCode',
      type: 'error_messages_invalidFormat'
    }
  ]
*/

console.log('Third:', v.isPostalCode('VÊ-123'), { locale: 'jp' })
/* Returns: [false, errors]
  errors:
  [
    {
      message: 'postalCode の形式が不正です。',
      field: 'email',
      type: 'error_messages_invalidEmail'
    }
  ]
*/

Check country code value

const { Validator } = require('@transzero/validator')

const v = new Validator()

console.log('First:', v.isCountryCode('sg'))
// Returns: [true, values]
// values: { countryCode: 'SG' }

console.log('Second:', v.isCountryCode('S'))
/* Returns: [false, errors]
  errors:
  [
    {
      type: 'stringMin',
      message: 'Enter countryCode with 2 or more characters.',
      field: 'countryCode',
      expected: 2,
      actual: 1,
    }
  ]
*/

console.log('Third:', v.isCountryCode('S'), { locale: 'jp' })
/* Returns: [false, errors]
  errors:
  [
    {
      message: 'countryCode は 2 文字以上で入力してください。',
      field: 'email',
      type: 'error_messages_invalidEmail'
    }
  ]
*/

Check date or time value

const { Validator } = require('@transzero/validator')

const v = new Validator()

console.log('First:', v.isDateTime('12:12:12', { format: 'hhmmss' }))
// Returns: [true, values]

console.log('Second:', v.isDateTime('12:12:12'))
/* Returns: [false, errors]
  errors:
  [
    {
      field: 'dateTime',
      message: 'Need to define a date and time format',
      type: 'error_messages_define_format_date_time'
    }
  ]
*/

Define schema and input object by yourself

const { Validator } = require('@transzero/validator')

const v = new Validator()

const schema = {
  firstName: 'string|min:1|max:10',
}

console.log('First:', v.isValid(schema, { firstName: 'John' }))
// Returns: [true, values]

console.log('Second:', v.isValid(schema, { firstName: 'John123456789' }))
/* Returns: [false, errors]
  errors
  [
    {
      type: 'stringMax',
      message: 'Enter firstName with 10 or less characters.',
      field: 'firstName',
      expected: 10,
      actual: 13
    }
  ]
*/

Readme

Keywords

none

Package Sidebar

Install

npm i @transzero/validator

Weekly Downloads

32

Version

1.0.2

License

none

Unpacked Size

397 kB

Total Files

27

Last publish

Collaborators

  • lucduong