2
0
mirror of https://github.com/tenrok/vue-meta.git synced 2026-06-18 04:30:34 +03:00
Files
vue-meta/src/resolvers/deepest.ts
T
2021-04-03 20:17:34 +02:00

35 lines
692 B
TypeScript

import type { MetaResolveContext } from '../types'
import { resolveOption } from './index'
type MergeResolveContextDeepest = MetaResolveContext & {
depth: number
}
export function setup (context: MergeResolveContextDeepest): void {
let depth: number = 0
if (context.vm) {
let { vm } = context
do {
if (vm.parent) {
depth++
vm = vm.parent
}
} while (vm && vm.parent && vm !== vm.root)
}
context.depth = depth
}
export const resolve = resolveOption<number, MergeResolveContextDeepest>((currentValue, context) => {
const { depth } = context
if (!currentValue || depth > currentValue) {
return depth
}
return currentValue
})