npm version

Quick Start

import { validate } from '../src'

const func = (a: number, b: string) => {
    return a + + b
}

const safeFunc = validate(['int', 'str'], func)

console.log(safeFunc(1, '2')) // success

console.log(safeFunc(1, 2)) // error

decorate

import decorate from '../src'

class Test {
    @decorate([
        `{
            left: {
                name: str
            }
        }`,
        `{
            right: {
                name: str
            }
        }`
    ])
    merge (a, b) {
        return true
    }
}

console.log(new Test().merge({
    left: {
        name: 'a'
    }
}, {
    right: {
        name: 'b'
    }
})) // success

console.log(new Test().merge({
    left: {
        name: 'a'
    }
}, {
    right: {
        name: 2
    }
})) // error

custom error

import { LierValidation } from '../src'

const validator = new LierValidation((message: string) => {
    console.error(400, message)
    throw new Error(message)
})

const safeFunc = validator.validate(['int', 'str'], func)

console.log(safeFunc(1, '2')) // success

console.log(safeFunc(1, 2)) // error