UNPKG

1.21 kBJavaScriptView Raw
1export const routerReady = router =>
2 new Promise((resolve, reject) => {
3 router.onReady(resolve, reject)
4 })
5
6export const getRequireDefault = obj => {
7 // eslint-disable-next-line no-prototype-builtins
8 return obj && obj.hasOwnProperty('default') ? obj.default : obj
9}
10
11export 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
34export const pageNotFound = url => ({
35 code: 404,
36 url,
37 errorPath: url,
38 message: 'page not found'
39})
40
41export const runMiddlewares = async (middlewares, ctx) => {
42 if (middlewares.length > 0) {
43 for (const middleware of middlewares) {
44 // eslint-disable-next-line no-await-in-loop
45 await middleware(ctx)
46 }
47 }
48}