@tanstack/vue-router 1.167.4 → 1.168.0
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/dist/esm/Match.js +55 -61
- package/dist/esm/Match.js.map +1 -1
- package/dist/esm/Matches.js +8 -15
- package/dist/esm/Matches.js.map +1 -1
- package/dist/esm/Scripts.js +7 -6
- package/dist/esm/Scripts.js.map +1 -1
- package/dist/esm/Transitioner.js +18 -24
- package/dist/esm/Transitioner.js.map +1 -1
- package/dist/esm/headContentUtils.js +13 -15
- package/dist/esm/headContentUtils.js.map +1 -1
- package/dist/esm/index.dev.js +6 -6
- package/dist/esm/index.js +6 -6
- package/dist/esm/link.js +242 -178
- package/dist/esm/link.js.map +1 -1
- package/dist/esm/matchContext.d.ts +8 -14
- package/dist/esm/matchContext.js +11 -9
- package/dist/esm/matchContext.js.map +1 -1
- package/dist/esm/not-found.js +6 -3
- package/dist/esm/not-found.js.map +1 -1
- package/dist/esm/router.js +2 -1
- package/dist/esm/router.js.map +1 -1
- package/dist/esm/routerStores.d.ts +13 -0
- package/dist/esm/routerStores.js +33 -0
- package/dist/esm/routerStores.js.map +1 -0
- package/dist/esm/ssr/RouterClient.js +1 -1
- package/dist/esm/ssr/RouterClient.js.map +1 -1
- package/dist/esm/ssr/renderRouterToStream.js +2 -2
- package/dist/esm/ssr/renderRouterToStream.js.map +1 -1
- package/dist/esm/ssr/renderRouterToString.js +1 -1
- package/dist/esm/ssr/renderRouterToString.js.map +1 -1
- package/dist/esm/useCanGoBack.d.ts +1 -1
- package/dist/esm/useCanGoBack.js +3 -2
- package/dist/esm/useCanGoBack.js.map +1 -1
- package/dist/esm/useLocation.js +3 -2
- package/dist/esm/useLocation.js.map +1 -1
- package/dist/esm/useMatch.js +29 -19
- package/dist/esm/useMatch.js.map +1 -1
- package/dist/esm/useRouterState.js +4 -4
- package/dist/esm/useRouterState.js.map +1 -1
- package/dist/source/Match.jsx +121 -159
- package/dist/source/Match.jsx.map +1 -1
- package/dist/source/Matches.jsx +11 -28
- package/dist/source/Matches.jsx.map +1 -1
- package/dist/source/Scripts.jsx +32 -35
- package/dist/source/Scripts.jsx.map +1 -1
- package/dist/source/Transitioner.jsx +19 -21
- package/dist/source/Transitioner.jsx.map +1 -1
- package/dist/source/headContentUtils.jsx +51 -61
- package/dist/source/headContentUtils.jsx.map +1 -1
- package/dist/source/link.jsx +298 -249
- package/dist/source/link.jsx.map +1 -1
- package/dist/source/matchContext.d.ts +8 -14
- package/dist/source/matchContext.jsx +17 -23
- package/dist/source/matchContext.jsx.map +1 -1
- package/dist/source/not-found.jsx +6 -5
- package/dist/source/not-found.jsx.map +1 -1
- package/dist/source/router.js +2 -1
- package/dist/source/router.js.map +1 -1
- package/dist/source/routerStores.d.ts +13 -0
- package/dist/source/routerStores.js +37 -0
- package/dist/source/routerStores.js.map +1 -0
- package/dist/source/ssr/RouterClient.jsx +1 -1
- package/dist/source/ssr/RouterClient.jsx.map +1 -1
- package/dist/source/ssr/renderRouterToStream.jsx +2 -2
- package/dist/source/ssr/renderRouterToStream.jsx.map +1 -1
- package/dist/source/ssr/renderRouterToString.jsx +1 -1
- package/dist/source/ssr/renderRouterToString.jsx.map +1 -1
- package/dist/source/useCanGoBack.d.ts +1 -1
- package/dist/source/useCanGoBack.js +4 -2
- package/dist/source/useCanGoBack.js.map +1 -1
- package/dist/source/useLocation.jsx +4 -4
- package/dist/source/useLocation.jsx.map +1 -1
- package/dist/source/useMatch.jsx +60 -38
- package/dist/source/useMatch.jsx.map +1 -1
- package/dist/source/useRouterState.jsx +4 -4
- package/dist/source/useRouterState.jsx.map +1 -1
- package/package.json +2 -2
- package/skills/vue-router/SKILL.md +3 -0
- package/src/Match.tsx +168 -180
- package/src/Matches.tsx +18 -31
- package/src/Scripts.tsx +40 -40
- package/src/Transitioner.tsx +35 -23
- package/src/headContentUtils.tsx +101 -107
- package/src/link.tsx +445 -300
- package/src/matchContext.tsx +23 -25
- package/src/not-found.tsx +9 -5
- package/src/router.ts +2 -1
- package/src/routerStores.ts +54 -0
- package/src/ssr/RouterClient.tsx +1 -1
- package/src/ssr/renderRouterToStream.tsx +2 -2
- package/src/ssr/renderRouterToString.tsx +1 -1
- package/src/useCanGoBack.ts +7 -2
- package/src/useLocation.tsx +8 -5
- package/src/useMatch.tsx +95 -49
- package/src/useRouterState.tsx +6 -4
package/dist/source/Matches.jsx
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as Vue from 'vue';
|
|
2
2
|
import warning from 'tiny-warning';
|
|
3
3
|
import { isServer } from '@tanstack/router-core/isServer';
|
|
4
|
+
import { useStore } from '@tanstack/vue-store';
|
|
4
5
|
import { CatchBoundary } from './CatchBoundary';
|
|
5
|
-
import { useRouterState } from './useRouterState';
|
|
6
6
|
import { useRouter } from './useRouter';
|
|
7
7
|
import { useTransitionerSetup } from './Transitioner';
|
|
8
8
|
import { matchContext } from './matchContext';
|
|
@@ -59,14 +59,8 @@ const MatchesInner = Vue.defineComponent({
|
|
|
59
59
|
name: 'MatchesInner',
|
|
60
60
|
setup() {
|
|
61
61
|
const router = useRouter();
|
|
62
|
-
const matchId =
|
|
63
|
-
|
|
64
|
-
return s.matches[0]?.id;
|
|
65
|
-
},
|
|
66
|
-
});
|
|
67
|
-
const resetKey = useRouterState({
|
|
68
|
-
select: (s) => s.loadedAt,
|
|
69
|
-
});
|
|
62
|
+
const matchId = useStore(router.stores.firstMatchId, (id) => id);
|
|
63
|
+
const resetKey = useStore(router.stores.loadedAt, (loadedAt) => loadedAt);
|
|
70
64
|
// Create a ref for the match id to provide
|
|
71
65
|
const matchIdRef = Vue.computed(() => matchId.value);
|
|
72
66
|
// Provide the matchId for child components using the InjectionKey
|
|
@@ -96,15 +90,7 @@ const MatchesInner = Vue.defineComponent({
|
|
|
96
90
|
});
|
|
97
91
|
export function useMatchRoute() {
|
|
98
92
|
const router = useRouter();
|
|
99
|
-
|
|
100
|
-
// Use multiple state values like React does for complete reactivity
|
|
101
|
-
const routerState = useRouterState({
|
|
102
|
-
select: (s) => ({
|
|
103
|
-
locationHref: s.location.href,
|
|
104
|
-
resolvedLocationHref: s.resolvedLocation?.href,
|
|
105
|
-
status: s.status,
|
|
106
|
-
}),
|
|
107
|
-
});
|
|
93
|
+
const routerState = useStore(router.stores.matchRouteReactivity, (value) => value);
|
|
108
94
|
return (opts) => {
|
|
109
95
|
const { pending, caseSensitive, fuzzy, includeSearch, ...rest } = opts;
|
|
110
96
|
const matchRoute = Vue.computed(() => {
|
|
@@ -150,9 +136,8 @@ export const MatchRoute = Vue.defineComponent({
|
|
|
150
136
|
},
|
|
151
137
|
},
|
|
152
138
|
setup(props, { slots }) {
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
});
|
|
139
|
+
const router = useRouter();
|
|
140
|
+
const status = useStore(router.stores.matchRouteReactivity, (value) => value.status);
|
|
156
141
|
return () => {
|
|
157
142
|
if (!status.value)
|
|
158
143
|
return null;
|
|
@@ -173,13 +158,11 @@ export const MatchRoute = Vue.defineComponent({
|
|
|
173
158
|
},
|
|
174
159
|
});
|
|
175
160
|
export function useMatches(opts) {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
: matches;
|
|
182
|
-
},
|
|
161
|
+
const router = useRouter();
|
|
162
|
+
return useStore(router.stores.activeMatchesSnapshot, (matches) => {
|
|
163
|
+
return opts?.select
|
|
164
|
+
? opts.select(matches)
|
|
165
|
+
: matches;
|
|
183
166
|
});
|
|
184
167
|
}
|
|
185
168
|
export function useParentMatches(opts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Matches.jsx","sourceRoot":"","sources":["../../src/Matches.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAC1B,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Matches.jsx","sourceRoot":"","sources":["../../src/Matches.tsx"],"names":[],"mappings":"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"}
|
package/dist/source/Scripts.jsx
CHANGED
|
@@ -1,48 +1,45 @@
|
|
|
1
1
|
import * as Vue from 'vue';
|
|
2
|
+
import { useStore } from '@tanstack/vue-store';
|
|
2
3
|
import { Asset } from './Asset';
|
|
3
|
-
import { useRouterState } from './useRouterState';
|
|
4
4
|
import { useRouter } from './useRouter';
|
|
5
5
|
export const Scripts = Vue.defineComponent({
|
|
6
6
|
name: 'Scripts',
|
|
7
7
|
setup() {
|
|
8
8
|
const router = useRouter();
|
|
9
9
|
const nonce = router.options.ssr?.nonce;
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
tag: 'script',
|
|
24
|
-
attrs: { ...asset.attrs, nonce },
|
|
25
|
-
children: asset.children,
|
|
26
|
-
});
|
|
27
|
-
}));
|
|
28
|
-
return assetScripts;
|
|
29
|
-
},
|
|
30
|
-
});
|
|
31
|
-
const scripts = useRouterState({
|
|
32
|
-
select: (state) => ({
|
|
33
|
-
scripts: state.matches
|
|
34
|
-
.map((match) => match.scripts)
|
|
35
|
-
.flat(1)
|
|
36
|
-
.filter(Boolean).map(({ children, ...script }) => ({
|
|
10
|
+
const matches = useStore(router.stores.activeMatchesSnapshot, (value) => value);
|
|
11
|
+
const assetScripts = Vue.computed(() => {
|
|
12
|
+
const assetScripts = [];
|
|
13
|
+
const manifest = router.ssr?.manifest;
|
|
14
|
+
if (!manifest) {
|
|
15
|
+
return [];
|
|
16
|
+
}
|
|
17
|
+
matches.value
|
|
18
|
+
.map((match) => router.looseRoutesById[match.routeId])
|
|
19
|
+
.forEach((route) => manifest.routes[route.id]?.assets
|
|
20
|
+
?.filter((d) => d.tag === 'script')
|
|
21
|
+
.forEach((asset) => {
|
|
22
|
+
assetScripts.push({
|
|
37
23
|
tag: 'script',
|
|
38
|
-
attrs: {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
})),
|
|
44
|
-
}),
|
|
24
|
+
attrs: { ...asset.attrs, nonce },
|
|
25
|
+
children: asset.children,
|
|
26
|
+
});
|
|
27
|
+
}));
|
|
28
|
+
return assetScripts;
|
|
45
29
|
});
|
|
30
|
+
const scripts = Vue.computed(() => ({
|
|
31
|
+
scripts: matches.value
|
|
32
|
+
.map((match) => match.scripts)
|
|
33
|
+
.flat(1)
|
|
34
|
+
.filter(Boolean).map(({ children, ...script }) => ({
|
|
35
|
+
tag: 'script',
|
|
36
|
+
attrs: {
|
|
37
|
+
...script,
|
|
38
|
+
nonce,
|
|
39
|
+
},
|
|
40
|
+
children,
|
|
41
|
+
})),
|
|
42
|
+
}));
|
|
46
43
|
const mounted = Vue.ref(false);
|
|
47
44
|
Vue.onMounted(() => {
|
|
48
45
|
mounted.value = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scripts.jsx","sourceRoot":"","sources":["../../src/Scripts.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAC1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Scripts.jsx","sourceRoot":"","sources":["../../src/Scripts.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as Vue from 'vue';
|
|
2
2
|
import { getLocationChangeInfo, handleHashScroll, trimPathRight, } from '@tanstack/router-core';
|
|
3
3
|
import { isServer } from '@tanstack/router-core/isServer';
|
|
4
|
+
import { batch, useStore } from '@tanstack/vue-store';
|
|
4
5
|
import { useRouter } from './useRouter';
|
|
5
|
-
import { useRouterState } from './useRouterState';
|
|
6
6
|
import { usePrevious } from './utils';
|
|
7
7
|
// Track mount state per router to avoid double-loading
|
|
8
8
|
let mountLoadForRouter = { router: null, mounted: false };
|
|
@@ -22,15 +22,11 @@ export function useTransitionerSetup() {
|
|
|
22
22
|
if (isServer ?? router.isServer) {
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
|
-
const isLoading =
|
|
26
|
-
select: ({ isLoading }) => isLoading,
|
|
27
|
-
});
|
|
25
|
+
const isLoading = useStore(router.stores.isLoading, (value) => value);
|
|
28
26
|
// Track if we're in a transition - using a ref to track async transitions
|
|
29
27
|
const isTransitioning = Vue.ref(false);
|
|
30
28
|
// Track pending state changes
|
|
31
|
-
const hasPendingMatches =
|
|
32
|
-
select: (s) => s.matches.some((d) => d.status === 'pending'),
|
|
33
|
-
});
|
|
29
|
+
const hasPendingMatches = useStore(router.stores.hasPendingMatches, (value) => value);
|
|
34
30
|
const previousIsLoading = usePrevious(() => isLoading.value);
|
|
35
31
|
const isAnyPending = Vue.computed(() => isLoading.value || isTransitioning.value || hasPendingMatches.value);
|
|
36
32
|
const previousIsAnyPending = usePrevious(() => isAnyPending.value);
|
|
@@ -43,7 +39,7 @@ export function useTransitionerSetup() {
|
|
|
43
39
|
isTransitioning.value = true;
|
|
44
40
|
// Also update the router state so useMatch knows we're transitioning
|
|
45
41
|
try {
|
|
46
|
-
router.
|
|
42
|
+
router.stores.isTransitioning.setState(() => true);
|
|
47
43
|
}
|
|
48
44
|
catch {
|
|
49
45
|
// Ignore errors if component is unmounted
|
|
@@ -54,7 +50,7 @@ export function useTransitionerSetup() {
|
|
|
54
50
|
Vue.nextTick(() => {
|
|
55
51
|
try {
|
|
56
52
|
isTransitioning.value = false;
|
|
57
|
-
router.
|
|
53
|
+
router.stores.isTransitioning.setState(() => false);
|
|
58
54
|
}
|
|
59
55
|
catch {
|
|
60
56
|
// Ignore errors if component is unmounted
|
|
@@ -108,9 +104,12 @@ export function useTransitionerSetup() {
|
|
|
108
104
|
Vue.onMounted(() => {
|
|
109
105
|
isMounted.value = true;
|
|
110
106
|
if (!isAnyPending.value) {
|
|
111
|
-
router.
|
|
112
|
-
|
|
113
|
-
|
|
107
|
+
if (router.stores.status.state === 'pending') {
|
|
108
|
+
batch(() => {
|
|
109
|
+
router.stores.status.setState(() => 'idle');
|
|
110
|
+
router.stores.resolvedLocation.setState(() => router.stores.location.state);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
114
113
|
}
|
|
115
114
|
});
|
|
116
115
|
Vue.onUnmounted(() => {
|
|
@@ -145,7 +144,7 @@ export function useTransitionerSetup() {
|
|
|
145
144
|
if (previousIsLoading.value.previous && !newValue) {
|
|
146
145
|
router.emit({
|
|
147
146
|
type: 'onLoad',
|
|
148
|
-
...getLocationChangeInfo(router.state),
|
|
147
|
+
...getLocationChangeInfo(router.stores.location.state, router.stores.resolvedLocation.state),
|
|
149
148
|
});
|
|
150
149
|
}
|
|
151
150
|
}
|
|
@@ -161,7 +160,7 @@ export function useTransitionerSetup() {
|
|
|
161
160
|
if (previousIsPagePending.value.previous && !newValue) {
|
|
162
161
|
router.emit({
|
|
163
162
|
type: 'onBeforeRouteMount',
|
|
164
|
-
...getLocationChangeInfo(router.state),
|
|
163
|
+
...getLocationChangeInfo(router.stores.location.state, router.stores.resolvedLocation.state),
|
|
165
164
|
});
|
|
166
165
|
}
|
|
167
166
|
}
|
|
@@ -173,16 +172,15 @@ export function useTransitionerSetup() {
|
|
|
173
172
|
if (!isMounted.value)
|
|
174
173
|
return;
|
|
175
174
|
try {
|
|
176
|
-
if (!newValue && router.
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
}));
|
|
175
|
+
if (!newValue && router.stores.status.state === 'pending') {
|
|
176
|
+
batch(() => {
|
|
177
|
+
router.stores.status.setState(() => 'idle');
|
|
178
|
+
router.stores.resolvedLocation.setState(() => router.stores.location.state);
|
|
179
|
+
});
|
|
182
180
|
}
|
|
183
181
|
// The router was pending and now it's not
|
|
184
182
|
if (previousIsAnyPending.value.previous && !newValue) {
|
|
185
|
-
const changeInfo = getLocationChangeInfo(router.state);
|
|
183
|
+
const changeInfo = getLocationChangeInfo(router.stores.location.state, router.stores.resolvedLocation.state);
|
|
186
184
|
router.emit({
|
|
187
185
|
type: 'onResolved',
|
|
188
186
|
...changeInfo,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transitioner.jsx","sourceRoot":"","sources":["../../src/Transitioner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAC1B,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,GACd,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Transitioner.jsx","sourceRoot":"","sources":["../../src/Transitioner.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import * as Vue from 'vue';
|
|
2
2
|
import { escapeHtml } from '@tanstack/router-core';
|
|
3
|
+
import { useStore } from '@tanstack/vue-store';
|
|
3
4
|
import { useRouter } from './useRouter';
|
|
4
|
-
import { useRouterState } from './useRouterState';
|
|
5
5
|
export const useTags = () => {
|
|
6
6
|
const router = useRouter();
|
|
7
|
-
const
|
|
8
|
-
select: (state) => {
|
|
9
|
-
return state.matches.map((match) => match.meta).filter(Boolean);
|
|
10
|
-
},
|
|
11
|
-
});
|
|
7
|
+
const matches = useStore(router.stores.activeMatchesSnapshot, (value) => value);
|
|
12
8
|
const meta = Vue.computed(() => {
|
|
13
9
|
const resultMeta = [];
|
|
14
10
|
const metaByAttribute = {};
|
|
15
11
|
let title;
|
|
16
|
-
[...
|
|
12
|
+
[...matches.value.map((match) => match.meta).filter(Boolean)]
|
|
13
|
+
.reverse()
|
|
14
|
+
.forEach((metas) => {
|
|
17
15
|
;
|
|
18
16
|
[...metas].reverse().forEach((m) => {
|
|
19
17
|
if (!m)
|
|
@@ -68,63 +66,55 @@ export const useTags = () => {
|
|
|
68
66
|
resultMeta.reverse();
|
|
69
67
|
return resultMeta;
|
|
70
68
|
});
|
|
71
|
-
const links =
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
...link,
|
|
80
|
-
},
|
|
81
|
-
})),
|
|
82
|
-
});
|
|
83
|
-
const preloadMeta = useRouterState({
|
|
84
|
-
select: (state) => {
|
|
85
|
-
const preloadMeta = [];
|
|
86
|
-
state.matches
|
|
87
|
-
.map((match) => router.looseRoutesById[match.routeId])
|
|
88
|
-
.forEach((route) => router.ssr?.manifest?.routes[route.id]?.preloads
|
|
89
|
-
?.filter(Boolean)
|
|
90
|
-
.forEach((preload) => {
|
|
91
|
-
preloadMeta.push({
|
|
92
|
-
tag: 'link',
|
|
93
|
-
attrs: {
|
|
94
|
-
rel: 'modulepreload',
|
|
95
|
-
href: preload,
|
|
96
|
-
},
|
|
97
|
-
});
|
|
98
|
-
}));
|
|
99
|
-
return preloadMeta;
|
|
69
|
+
const links = Vue.computed(() => matches.value
|
|
70
|
+
.map((match) => match.links)
|
|
71
|
+
.filter(Boolean)
|
|
72
|
+
.flat(1)
|
|
73
|
+
.map((link) => ({
|
|
74
|
+
tag: 'link',
|
|
75
|
+
attrs: {
|
|
76
|
+
...link,
|
|
100
77
|
},
|
|
101
|
-
});
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
.
|
|
106
|
-
.
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
},
|
|
111
|
-
children,
|
|
112
|
-
})),
|
|
113
|
-
});
|
|
114
|
-
const manifestAssets = useRouterState({
|
|
115
|
-
select: (state) => {
|
|
116
|
-
const manifest = router.ssr?.manifest;
|
|
117
|
-
const assets = state.matches
|
|
118
|
-
.map((match) => manifest?.routes[match.routeId]?.assets ?? [])
|
|
119
|
-
.filter(Boolean)
|
|
120
|
-
.flat(1)
|
|
121
|
-
.filter((asset) => asset.tag === 'link')
|
|
122
|
-
.map((asset) => ({
|
|
78
|
+
})));
|
|
79
|
+
const preloadMeta = Vue.computed(() => {
|
|
80
|
+
const preloadMeta = [];
|
|
81
|
+
matches.value
|
|
82
|
+
.map((match) => router.looseRoutesById[match.routeId])
|
|
83
|
+
.forEach((route) => router.ssr?.manifest?.routes[route.id]?.preloads
|
|
84
|
+
?.filter(Boolean)
|
|
85
|
+
.forEach((preload) => {
|
|
86
|
+
preloadMeta.push({
|
|
123
87
|
tag: 'link',
|
|
124
|
-
attrs: {
|
|
125
|
-
|
|
126
|
-
|
|
88
|
+
attrs: {
|
|
89
|
+
rel: 'modulepreload',
|
|
90
|
+
href: preload,
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
}));
|
|
94
|
+
return preloadMeta;
|
|
95
|
+
});
|
|
96
|
+
const headScripts = Vue.computed(() => matches.value
|
|
97
|
+
.map((match) => match.headScripts)
|
|
98
|
+
.flat(1)
|
|
99
|
+
.filter(Boolean).map(({ children, ...script }) => ({
|
|
100
|
+
tag: 'script',
|
|
101
|
+
attrs: {
|
|
102
|
+
...script,
|
|
127
103
|
},
|
|
104
|
+
children,
|
|
105
|
+
})));
|
|
106
|
+
const manifestAssets = Vue.computed(() => {
|
|
107
|
+
const manifest = router.ssr?.manifest;
|
|
108
|
+
const assets = matches.value
|
|
109
|
+
.map((match) => manifest?.routes[match.routeId]?.assets ?? [])
|
|
110
|
+
.filter(Boolean)
|
|
111
|
+
.flat(1)
|
|
112
|
+
.filter((asset) => asset.tag === 'link')
|
|
113
|
+
.map((asset) => ({
|
|
114
|
+
tag: 'link',
|
|
115
|
+
attrs: { ...asset.attrs },
|
|
116
|
+
}));
|
|
117
|
+
return assets;
|
|
128
118
|
});
|
|
129
119
|
return () => uniqBy([
|
|
130
120
|
...manifestAssets.value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headContentUtils.jsx","sourceRoot":"","sources":["../../src/headContentUtils.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"headContentUtils.jsx","sourceRoot":"","sources":["../../src/headContentUtils.tsx"],"names":[],"mappings":"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"}
|