Nuxt/lib/app/utils.js
Sébastien Chopin cf24b926a1 Version 0.1.6
- Add example /custom-routes/
- Rename example/with-store/ to examples/vuex-store/
- Feature: Add .vue at the end of the component if not specified in
custom routes
- Feature: Add .params and .query in the context
- Feature: Add .name in route if given in custom routes
2016-11-07 21:38:51 +01:00

41 lines
1.1 KiB
JavaScript

'use strict'
export function getMatchedComponents (route) {
return [].concat.apply([], route.matched.map(function (m) {
return Object.keys(m.components).map(function (key) {
return m.components[key]
})
}))
}
export function flatMapComponents (route, fn) {
return Array.prototype.concat.apply([], route.matched.map(function (m, index) {
return Object.keys(m.components).map(function (key) {
return fn(m.components[key], m.instances[key], m, key, index)
})
}))
}
export function getContext (context) {
let ctx = {
isServer: !!context.isServer,
isClient: !!context.isClient,
<%= (store ? 'store: context.store,' : '') %>
route: (context.to ? context.to : context.route)
}
ctx.params = ctx.route.params || {}
ctx.query = ctx.route.query || {}
if (context.req) ctx.req = context.req
if (context.res) ctx.res = context.res
return ctx
}
// Imported from vue-router
export function getLocation (base) {
var path = window.location.pathname
if (base && path.indexOf(base) === 0) {
path = path.slice(base.length)
}
return (path || '/') + window.location.search + window.location.hash
}