@markmeyer/vuelidate-validators
v4.0.1
Published
Validators for Vuelidate
Downloads
12
Readme
Vuelidate Validators
This is the standalone validators package for Vuelidate.
Installation
You need to install both this package and Vuelidate.
npm install @vuelidate/core @vuelidate/validatorsor with yarn
yarn add @vuelidate/core @vuelidate/validatorsUsage
After adding the Vuelidate plugin, you can use the validators by importing them directly. These validators come with error messages out of the box.
import { required, email } from '@vuelidate/validators'
export default {
data: () => ({
name: '',
email: ''
}),
validations: {
name: { required },
email: { required, email }
}
}Raw, no message validators
If you want to use validators without error messages, you can import the raw validators.
import { required, email } from '@vuelidate/validators/dist/raw.esm'Extending a validator with custom message
You can attach a validation message to a validator via tha withMessage method.
import { common, required } from '@vuelidate/validators'
const requiredWithMessage = common.withMessage(required, 'This field is required and must be filled in')
export default {
...,
validations: {
name: { requiredWithMessage }
}
}Attaching extra data to a validator
If you want to attach extra data properties to validator, so you can use them in the messages and when validating, use the withParams helper.
import { common } from '@vuelidate/validators'
const atLeast = (number) => common.withParams({ number }, (value) => value.length <= number) // just an example
export default {
...,
validations: {
name: { atLeast: atLeast(5) }
}
}Combining params and messages
You can combine both helpers to build a validator.
import { common } from '@vuelidate/validators'
const customMinLength = (number) => common.withMessage((value) => value.length <= number, ({ $params }) => `The field must be at least ${$params.number} chars long`)
const atLeast = (number) => common.withParams({ number }, customMinLength(number)) // just an example
export default {
...,
validations: {
name: { atLeast: atLeast(5) }
}
}Development
To test the package run
yarn test:unitTo link the package run
yarn linkTo build run the package, run:
npm run build