0.0.4 • Published 3 years ago

typescript-validate-param v0.0.4

Weekly downloads
12
License
ISC
Repository
github
Last release
3 years ago

parameter decorators

based on ts-decorator-validation

install

yarn add typescript-validate-param

usage

import {schema, validateArgs, paramSchema, propertySchema} from 'typescript-validate-param'
const Joi = require('joi')

// define validation rules
const personNameSchema = Joi.string().min(3)
const personAgeSchema = Joi.number().min(1)
const propertyAgeSchema = Joi.number().min(10)

const personSchema = Joi.object({
  name: personNameSchema,
  age: personAgeSchema
})

// handler error
function error(err, key) {
  // 'this' bind class 'Person' Instance
  console.log(this.age)
  // get error info
  console.error('err is', err)
  // error propertyKey
  console.log(key)
}

@schema(personSchema, true, error)
class Person {
  @propertySchema(propertyAgeSchema)
  age: number
  @propertySchema(personNameSchema)
  name: string

  constructor(@paramSchema(personNameSchema) name: string,@paramSchema(personAgeSchema) age: number) {
    this.age = age
    this.name = name
  }  
  @validateArgs(error)
  test2  (
    @paramSchema(personNameSchema) name,
    @paramSchema(personAgeSchema) age
  ) {
    this.age = age
    this.name = name
  }
}
let a = new Person('Jake', 10)
a.test2('3', 1)

schema

validate class

参数类型说明
schemaSchemavalidation rules
isValidateConstructorBoolen'true' validate constructor param, 'false' not
errorHandleFunctionerror handle

propertySchema

validate property

参数类型说明
schemaSchemavalidation rules

validateArgs

validate function

参数类型说明
errorHandleFunctionerror handle

paramSchema

define param validation rules

参数类型说明
schemaSchemavalidation rules
0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago