@team-decorate/vue3-validate-plugin
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

vue3-validate-plugin

インストール

With yarn:

yarn add @team-decorate/vue3-validate-plugin

使い方

//main.ts
import App from '@/App.vue'
import { ValidatePlugin } from '@team-decorate/vue3-validate-plugin'
import axios from 'axios'
import {PermissionError} from '@/exceptions/PermissionError'

const app = createApp(App)
app.use(ValidatePlugin, {
    axios: axios, //optional
	registerError: [
		{codeCondition: (n) => n == 430, error: PermissionError}
	], //optional,
    manual: false //optional, default false
})
  • app.useにpluginを渡す
  • plugin側でaxios.interceptorを実行しているので、optionにaxiosを渡す
  • registerErrorで他のErrorを登録する
  • manualをtrueにするとprovide登録、interceptorの登録をplugin側では行わない
//SomeComponent.vue
<script setup lang="ts">
import {ref} from 'vue'
import {useValidate, ValidateWrap, ValidateError} from '@team-decorate/vue3-validate-plugin'
import {BFormInput} from 'bootstrap-vue-3'
import {User} from '@/models/User'

const user = ref(new User)
const {setValidError} = useValidate()

const test = async () => {
    try {
        const {data} = await axios.post('/test')
    } catch (e) {
        if(e instanceof ValidateError) {
            setValidError(e)
        }
    }
}

</script>

<template>
    <div>
        <validate-wrap>
            <b-form-input v-model="user.id" data="id"/>
            <other-component v-model="user.value" data="value"/>
        </validate-wrap>
    </div>
</template>
  • setValidateErrorはValidateErrorのみを受け付ける
  • validateErrorが発生した時、"<validate-wrap>"で囲ったHtmlElementのdataに対してerrorのkeyがヒットすれば対象のhtmlの下部にエラーメッセージを表示する

exportされる機能

module description
ApiError Errorを追加する際はApiErrorを継承する
ValidateError Validateの情報が入ったexception
GenerateErrorService 対象のexceptionに変換する
provideValidateContext マニュアルでuseValidateを使用する際は呼び出す
useValidate validateErrorを操作する
ValidatePlugin useValidateを提供する
ValidateWrap "<validate-wrap>"で囲みvalidateErrorを表示させる

Readme

Keywords

Package Sidebar

Install

npm i @team-decorate/vue3-validate-plugin@1.0.3

Version

1.0.3

License

MIT

Unpacked Size

27.4 kB

Total Files

35

Last publish

Collaborators

  • team-decorate