From da724950789a120b1ba2d8f7adac0e2a727e31f4 Mon Sep 17 00:00:00 2001 From: leonied7 Date: Wed, 18 Dec 2024 13:00:33 +0700 Subject: [PATCH 1/5] feat: up vue and node version --- .nvmrc | 2 +- package-lock.json | 41 ++++++++++++++++++++++++++++++++--------- package.json | 4 +++- 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/.nvmrc b/.nvmrc index 10fef25..35d2d08 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -20.18 +22.12 diff --git a/package-lock.json b/package-lock.json index 3a173b6..c7fc7b2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,18 +19,20 @@ "eslint": "^9.14.0", "eslint-plugin-vue": "^9.30.0", "rollup-plugin-visualizer": "^5.12.0", + "type-fest": "^4.30.2", "typescript": "^5.6.3", "vite": "^5.1.5", "vite-plugin-checker": "^0.8.0", "vite-plugin-dts": "^4.3.0", "vitepress": "^1.5.0", "vitest": "^2.1.4", + "vue-component-type-helpers": "^2.1.10", "vue-tsc": "^2.1.10", "yup": "^1.4.0" }, "peerDependencies": { "@vue-validate-form/resolvers": "^1.0.5", - "vue": "^3.2.47" + "vue": "^3.5.12" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -3733,6 +3735,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint-plugin-vue/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint-plugin-vue/node_modules/xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", @@ -6294,12 +6308,13 @@ } }, "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "4.30.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.2.tgz", + "integrity": "sha512-UJShLPYi1aWqCdq9HycOL/gwsuqda1OISdBO3t8RlXQC4QvtuIz4b5FCfe2dQIWEpmlRExKmcTBfP1r9bhY7ig==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=10" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6878,6 +6893,7 @@ "version": "3.5.12", "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.12.tgz", "integrity": "sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==", + "license": "MIT", "dependencies": { "@vue/compiler-dom": "3.5.12", "@vue/compiler-sfc": "3.5.12", @@ -6898,7 +6914,8 @@ "version": "2.1.10", "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-2.1.10.tgz", "integrity": "sha512-lfgdSLQKrUmADiSV6PbBvYgQ33KF3Ztv6gP85MfGaGaSGMTXORVaHT1EHfsqCgzRNBstPKYDmvAV9Do5CmJ07A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/vue-eslint-parser": { "version": "9.4.3", @@ -9799,6 +9816,12 @@ "type-fest": "^0.20.2" } }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, "xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", @@ -11614,9 +11637,9 @@ } }, "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "4.30.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.2.tgz", + "integrity": "sha512-UJShLPYi1aWqCdq9HycOL/gwsuqda1OISdBO3t8RlXQC4QvtuIz4b5FCfe2dQIWEpmlRExKmcTBfP1r9bhY7ig==", "dev": true }, "typescript": { diff --git a/package.json b/package.json index 3dd156d..df74805 100644 --- a/package.json +++ b/package.json @@ -25,18 +25,20 @@ "eslint": "^9.14.0", "eslint-plugin-vue": "^9.30.0", "rollup-plugin-visualizer": "^5.12.0", + "type-fest": "^4.30.2", "typescript": "^5.6.3", "vite": "^5.1.5", "vite-plugin-checker": "^0.8.0", "vite-plugin-dts": "^4.3.0", "vitepress": "^1.5.0", "vitest": "^2.1.4", + "vue-component-type-helpers": "^2.1.10", "vue-tsc": "^2.1.10", "yup": "^1.4.0" }, "peerDependencies": { "@vue-validate-form/resolvers": "^1.0.5", - "vue": "^3.2.47" + "vue": "^3.5.12" }, "scripts": { "build": "vite build", From e79d0b43bf5325eafaeb0620306fc83d96d2eb9c Mon Sep 17 00:00:00 2001 From: leonied7 Date: Wed, 18 Dec 2024 13:02:34 +0700 Subject: [PATCH 2/5] feat: use props destructuring instead of withDefaults and improve types for ValidationProvider --- src/App.vue | 136 +++++++++++------------- src/components/ValidationField.vue | 30 +++--- src/components/ValidationFieldArray.vue | 36 +++---- src/components/ValidationProvider.vue | 81 +++++++------- src/components/helpers.ts | 12 ++- src/index.ts | 1 + src/types/emit.ts | 9 ++ src/types/paths.ts | 4 + src/types/resolver.ts | 6 +- src/types/string.ts | 1 + 10 files changed, 154 insertions(+), 162 deletions(-) create mode 100644 src/types/emit.ts create mode 100644 src/types/paths.ts create mode 100644 src/types/string.ts diff --git a/src/App.vue b/src/App.vue index 928f9f2..8647338 100644 --- a/src/App.vue +++ b/src/App.vue @@ -6,7 +6,7 @@ 'my-input': [{ message: 'outer error' }], 'my.nested.value': [{ message: 'qwe' }] }" - :resolver="$options.resolver" + :resolver="resolver" @submit="onSubmit" > @@ -32,7 +32,7 @@ @@ -51,7 +51,7 @@ @@ -60,7 +60,7 @@ @@ -69,14 +69,14 @@ @@ -153,82 +153,72 @@ - diff --git a/src/components/ValidationField.vue b/src/components/ValidationField.vue index db535a2..78276ca 100644 --- a/src/components/ValidationField.vue +++ b/src/components/ValidationField.vue @@ -14,7 +14,7 @@