2
0
mirror of https://github.com/tenrok/vue-meta.git synced 2026-06-14 13:22:25 +03:00
Files
vue-meta/examples/vue-router/main.ts
T

71 lines
1.6 KiB
TypeScript

import { h, createApp as createVueApp, createSSRApp } from 'vue'
import { createRouter as createVueRouter, createMemoryHistory, createWebHistory } from 'vue-router'
import { createMetaManager as createVueMetaManager, defaultConfig, useMeta } from '../../src'
import * as deepestResolver from '../../src/resolvers/deepest'
import App from './App'
import ChildComponent from './Child'
function createComponent () {
return {
render: () => h(ChildComponent)
}
}
/*
const decisionMaker5000000 = resolveOption((prevValue, context) => {
const { uid = 0 } = context.vm || {}
if (!prevValue || prevValue < uid) {
return uid
}
})
*/
const createMetaManager = (isSSR = false) => createVueMetaManager(
isSSR,
{
...defaultConfig,
esi: {
group: true,
namespaced: true
// TODO?: attributes: ['src', 'test', 'text']
}
},
deepestResolver
)
const createRouter = (base: string, isSSR = false) => createVueRouter({
history: isSSR ? createMemoryHistory(base) : createWebHistory(base),
routes: [
{ name: 'home', path: '/', component: createComponent() },
{ name: 'about', path: '/about', component: createComponent() }
]
})
const createApp = (base: string, isSSR = null) => {
const app = isSSR === null ? createVueApp(App) : createSSRApp(App)
const router = createRouter(base, !!isSSR)
const metaManager = createMetaManager(!!isSSR)
app.use(router)
app.use(metaManager)
useMeta(
{
og: {
something: 'test'
}
},
metaManager
) /**/
return {
app,
router,
metaManager
}
}
export {
createApp,
createMetaManager,
createRouter
}