1 | export const routerReady = router =>
|
2 | new Promise((resolve, reject) => {
|
3 | router.onReady(resolve, reject)
|
4 | })
|
5 |
|
6 | export const getRequireDefault = obj => {
|
7 |
|
8 | return obj && obj.hasOwnProperty('default') ? obj.default : obj
|
9 | }
|
10 |
|
11 | export const setInitialData = vm => {
|
12 | const { getInitialData, initialDataKey } = vm.$options
|
13 |
|
14 | if (getInitialData) {
|
15 | vm.$initialDataKey = vm.$initialDataKey || initialDataKey
|
16 |
|
17 | if (!vm.$initialDataKey) {
|
18 | throw new Error(
|
19 | 'Route component requires a unique `initialDataKey` to use `getInitialData` method'
|
20 | )
|
21 | }
|
22 |
|
23 | if (!vm.$isRouteComponent) {
|
24 | throw new Error(
|
25 | '`getInitialData` method can only be used in a route component'
|
26 | )
|
27 | }
|
28 |
|
29 | const initialData = vm.$dataStore.getData(vm.$initialDataKey)
|
30 | vm.$initialData = initialData
|
31 | }
|
32 | }
|
33 |
|
34 | export const pageNotFound = url => ({
|
35 | code: 404,
|
36 | url,
|
37 | errorPath: url,
|
38 | message: 'page not found'
|
39 | })
|
40 |
|
41 | export const runMiddlewares = async (middlewares, ctx) => {
|
42 | if (middlewares.length > 0) {
|
43 | for (const middleware of middlewares) {
|
44 |
|
45 | await middleware(ctx)
|
46 | }
|
47 | }
|
48 | }
|