@transzero/validator
v1.0.2
Published
trans-zero validator
Downloads
34
Readme
@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('[email protected]'))
// Returns: [true, values]
console.log('Second:', v.isEmail('A@b@[email protected]'))
/* Returns: [false, errors]
errors:
[
{
message: 'email is invalid.',
field: 'email',
type: 'error_messages_invalidEmail'
}
]
*/
console.log('Third:', v.isEmail('A@b@[email protected]'), { 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
}
]
*/