@nitra/vite-boot 3.7.1 → 3.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +7 -7
- package/src/router.js +5 -3
- package/src/token.js +21 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nitra/vite-boot",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.8.1",
|
|
4
4
|
"description": "Vite boot",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -27,12 +27,12 @@
|
|
|
27
27
|
"src"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@apollo/client": "
|
|
30
|
+
"@apollo/client": "3.*",
|
|
31
31
|
"@nitra/jwt-decode": "^1.2.0",
|
|
32
|
-
"@sentry/tracing": "^7.
|
|
33
|
-
"@sentry/vue": "^
|
|
34
|
-
"graphql-ws": "^
|
|
35
|
-
"pinia": "^
|
|
36
|
-
"pinia-plugin-persistedstate": "^
|
|
32
|
+
"@sentry/tracing": "^7.120.4",
|
|
33
|
+
"@sentry/vue": "^10.10.0",
|
|
34
|
+
"graphql-ws": "^6.0.6",
|
|
35
|
+
"pinia": "^3.0.3",
|
|
36
|
+
"pinia-plugin-persistedstate": "^4.5.0"
|
|
37
37
|
}
|
|
38
38
|
}
|
package/src/router.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { checkToken, getToken } from './token.js'
|
|
2
|
+
import { setUser, user } from './user.js'
|
|
3
3
|
|
|
4
4
|
export let router
|
|
5
5
|
|
|
@@ -26,7 +26,9 @@ export function canUserAccess(to) {
|
|
|
26
26
|
if (!token) {
|
|
27
27
|
// Записуємо поточний урл в session storage
|
|
28
28
|
// щоб потім на нього повернути після логіну
|
|
29
|
-
|
|
29
|
+
// прибрати у рядку слеш, якщо він є першим символом
|
|
30
|
+
const url = `${import.meta.env.BASE_URL}${to.path.startsWith('/') ? to.path.slice(1) : to.path}`
|
|
31
|
+
sessionStorage.setItem('url-before-logout', url)
|
|
30
32
|
return false
|
|
31
33
|
}
|
|
32
34
|
// Якщо перший раз запускаємо - завантажуємо користувача
|
package/src/token.js
CHANGED
|
@@ -55,6 +55,9 @@ export function getToken() {
|
|
|
55
55
|
export function cleanToken() {
|
|
56
56
|
unsetUser()
|
|
57
57
|
|
|
58
|
+
// Очищаємо Apollo Client кеш
|
|
59
|
+
resetApolloClient()
|
|
60
|
+
|
|
58
61
|
// видаляємо з localStorage
|
|
59
62
|
localStorage.removeItem('__session')
|
|
60
63
|
|
|
@@ -62,6 +65,24 @@ export function cleanToken() {
|
|
|
62
65
|
document.cookie = `__session=; Max-Age=0; path=/; domain=${import.meta.env.VITE_DOMAIN}` // eslint-disable-line unicorn/no-document-cookie
|
|
63
66
|
}
|
|
64
67
|
|
|
68
|
+
/**
|
|
69
|
+
* Повне скидання Apollo Client (для критичних випадків)
|
|
70
|
+
*/
|
|
71
|
+
export function resetApolloClient() {
|
|
72
|
+
if (apolloClient) {
|
|
73
|
+
// Очищаємо кеш
|
|
74
|
+
apolloClient.clearStore()
|
|
75
|
+
|
|
76
|
+
// Закриваємо всі активні запити
|
|
77
|
+
apolloClient.stop()
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Закриваємо WebSocket з'єднання
|
|
81
|
+
if (wsClient && wsClient.close) {
|
|
82
|
+
wsClient.close()
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
65
86
|
/**
|
|
66
87
|
*
|
|
67
88
|
*/
|