2.0.8 • Published 5 months ago

vuito v2.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

vuito

Simple, lightweight, isomorphic, and template-based validation library.

npm.io npm.io npm.io Maintainability Test Coverage


InstallationUsageVue.js MixinTemplate Reuse


Installation

npm i vuito

Or via JsDeliver, UNPKG, or bundle.run.

Usage

Full documentation ➡️ https://vuito.vercel.app

Imports

CJS

const { regex, required } = require('vuito');
// OR
const regex = require('vuito/validators/regex.cjs');

Vuito is fully tree-shakable, so you can import only methods you need.

ES6

import { regex, required } from 'vuito';

Directly in the browser

import { regex, required } from 'https://esm.run/vuito';

Templates

With templates, you can easily create and reuse validations.

validations/auth.ts:

import { templateify, required, minLength, maxLength } from 'vuito';

export const signIn = templateify({
  username: [
    { test: required, message: 'Please enter a username.' },
    { test: minLength(3), message: 'Username is too short.' },
    { test: maxLength(20), message: 'Username is too big.' },
  ],
  password: [
    { test: required, message: 'Please enter a password.' },
    { test: minLength(12), message: 'Password is too short.' },
  ]
});

Validate

index.ts:

import { signIn } from './validations/auth';

signIn.check({
  username: 'test123',
  password: 'tooshort',
})
.then(() => console.log('Sign-in data is valid!'))
.catch(console.error)

// Result: console.error: Password is too short.

Vue.js Mixin

⚠️ Only supporting Vue2 currently ⚠️

minizipped size

Use vuito with Vue.js or Nuxt.js like a breeze!

npm i @vuito/vue

pages/signin.vue:

<template>
  <span>{{ errors.username }}</span>
  <input type="text" id="username"
    :class="{error: !!errors.username}"
    v-model="fields.username" @input.capture="onInput"
  >

  <span>{{ errors.password }}</span>
  <input type="password" id="password"
    :class="{error: !!errors.password}"
    v-model="fields.password" @input.capture="onInput"
  >
</template>

<script>
import { signIn } from '~/validations/auth';
import Vuito from '@vuito/vue';

export default {
  mixins: [Vuito(signIn)]
}
</script>

Template Reuse

To reuse your validation template you have many solutions.

  1. Create a validation package in your monorepo.
  2. Create a private package in NPM, GitHub, GitLab, ...
  3. Any other solution that lets you share a js/ts file between projects.
  4. Maybe SWAP would be a good option for you
2.0.8

5 months ago

2.0.7

5 months ago

2.0.6

9 months ago

2.0.2

1 year ago

2.0.1

1 year ago

1.1.8-alpha.1

3 years ago

1.2.1

3 years ago

1.1.6

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.0.1-alpha

3 years ago

1.0.1-alpha.1

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

0.0.10-alpha.0

3 years ago

0.0.10

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago