refactor: use ufo.hasProtocol to detect external link (#3686)

This commit is contained in:
Divine 2022-03-16 12:44:05 +03:00 committed by GitHub
parent f38cacec0f
commit 04026a3861
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 22 additions and 16 deletions

View File

@ -55,7 +55,7 @@
"postcss-url": "^10.1.3",
"scule": "^0.2.1",
"semver": "^7.3.5",
"ufo": "^0.7.11",
"ufo": "^0.8.0",
"unplugin": "^0.5.2",
"unplugin-vue2-script-setup": "^0.10.0",
"untyped": "^0.4.3",

View File

@ -66,7 +66,7 @@
"serve-static": "^1.14.2",
"std-env": "^3.0.1",
"table": "^6.8.0",
"ufo": "^0.7.11",
"ufo": "^0.8.0",
"unenv": "^0.4.3",
"unstorage": "^0.3.3",
"vue-bundle-renderer": "^0.3.5",

View File

@ -57,7 +57,7 @@
"ohmyfetch": "^0.4.15",
"pathe": "^0.2.0",
"scule": "^0.2.1",
"ufo": "^0.7.11",
"ufo": "^0.8.0",
"unimport": "^0.1.0",
"unplugin": "^0.5.2",
"untyped": "^0.4.3",

View File

@ -1,5 +1,6 @@
import { defineComponent, h, resolveComponent, PropType, computed, DefineComponent } from 'vue'
import { RouteLocationRaw, Router } from 'vue-router'
import { hasProtocol } from 'ufo'
import { useRouter } from '#app'
@ -140,10 +141,8 @@ export function defineNuxtLink (options: NuxtLinkOptions) {
return false
}
// Directly check if `to` is an external URL with Regex
// Regex101 expression: {@link https://regex101.com/r/1y7iod/1}
// TODO: Use `ufo.hasProtocol` when issue fixed https://github.com/unjs/ufo/issues/45
return !/^\/(?!\/)/.test(to.value)
// Directly check if `to` is an external URL by checking protocol
return hasProtocol(to.value, true)
})
return () => {

View File

@ -27,7 +27,7 @@
"postcss-import-resolver": "^2.0.0",
"scule": "^0.2.1",
"std-env": "^3.0.1",
"ufo": "^0.7.11",
"ufo": "^0.8.0",
"unimport": "^0.1.0"
},
"engines": {

View File

@ -41,7 +41,7 @@
"postcss-url": "^10.1.3",
"rollup": "^2.70.1",
"rollup-plugin-visualizer": "^5.6.0",
"ufo": "^0.7.11",
"ufo": "^0.8.0",
"unplugin": "^0.5.2",
"vite": "^2.8.6",
"vite-node": "^0.6.1"

View File

@ -41,7 +41,7 @@
"postcss-url": "^10.1.3",
"style-resources-loader": "^1.5.0",
"time-fix-plugin": "^2.0.7",
"ufo": "^0.7.11",
"ufo": "^0.8.0",
"unplugin": "^0.5.2",
"url-loader": "^4.1.1",
"vue-loader": "^17.0.0",

View File

@ -2745,7 +2745,7 @@ __metadata:
postcss-url: ^10.1.3
scule: ^0.2.1
semver: ^7.3.5
ufo: ^0.7.11
ufo: ^0.8.0
unbuild: latest
unplugin: ^0.5.2
unplugin-vue2-script-setup: ^0.10.0
@ -3153,7 +3153,7 @@ __metadata:
serve-static: ^1.14.2
std-env: ^3.0.1
table: ^6.8.0
ufo: ^0.7.11
ufo: ^0.8.0
unbuild: latest
unenv: ^0.4.3
unstorage: ^0.3.3
@ -3206,7 +3206,7 @@ __metadata:
postcss-import-resolver: ^2.0.0
scule: ^0.2.1
std-env: ^3.0.1
ufo: ^0.7.11
ufo: ^0.8.0
unbuild: latest
unimport: ^0.1.0
languageName: unknown
@ -3449,7 +3449,7 @@ __metadata:
postcss-url: ^10.1.3
rollup: ^2.70.1
rollup-plugin-visualizer: ^5.6.0
ufo: ^0.7.11
ufo: ^0.8.0
unbuild: latest
unplugin: ^0.5.2
vite: ^2.8.6
@ -3569,7 +3569,7 @@ __metadata:
postcss-url: ^10.1.3
style-resources-loader: ^1.5.0
time-fix-plugin: ^2.0.7
ufo: ^0.7.11
ufo: ^0.8.0
unbuild: latest
unplugin: ^0.5.2
url-loader: ^4.1.1
@ -15801,7 +15801,7 @@ __metadata:
ohmyfetch: ^0.4.15
pathe: ^0.2.0
scule: ^0.2.1
ufo: ^0.7.11
ufo: ^0.8.0
unbuild: latest
unimport: ^0.1.0
unplugin: ^0.5.2
@ -21314,6 +21314,13 @@ __metadata:
languageName: node
linkType: hard
"ufo@npm:^0.8.0":
version: 0.8.0
resolution: "ufo@npm:0.8.0"
checksum: cab38504a4caf316a9b24d187d24400c403599d563c260fbdad5e61371ed0be756edb8d1e0b322f37a4c8893e7496e47ea193f1cb039c343e6f6924a95ccadfe
languageName: node
linkType: hard
"uglify-js@npm:^3.1.4, uglify-js@npm:^3.5.1":
version: 3.15.2
resolution: "uglify-js@npm:3.15.2"