Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | 3x 3x 7790x 7790x 7790x 7790x 165x 165x 7790x 3x 3x 3x 3x 3x 3x 7625x 7625x 187x 7790x 3x 3x 7622x 7622x 2856x 2x 2x 2x 2x 2x 7790x 2x 2x 7620x 7620x | import { isFunction, isObject } from '@vue/shared'
import type { Component, ComponentInternalInstance } from '../component'
import {
DeprecationTypes,
checkCompatEnabled,
softAssertCompatEnabled,
} from './compatConfig'
import { convertLegacyAsyncComponent } from './componentAsync'
import { convertLegacyFunctionalComponent } from './componentFunctional'
export function convertLegacyComponent(
comp: any,
instance: ComponentInternalInstance | null,
): Component {
if (comp.__isBuiltIn) {
return comp
}
// 2.x constructor
if (isFunction(comp) && comp.cid) {
// #7766
if (comp.render) {
// only necessary when compiled from SFC
comp.options.render = comp.render
}
// copy over internal properties set by the SFC compiler
comp.options.__file = comp.__file
comp.options.__hmrId = comp.__hmrId
comp.options.__scopeId = comp.__scopeId
comp = comp.options
}
// 2.x async component
if (
isFunction(comp) &&
checkCompatEnabled(DeprecationTypes.COMPONENT_ASYNC, instance, comp)
) {
// since after disabling this, plain functions are still valid usage, do not
// use softAssert here.
return convertLegacyAsyncComponent(comp)
}
// 2.x functional component
if (
isObject(comp) &&
comp.functional &&
softAssertCompatEnabled(
DeprecationTypes.COMPONENT_FUNCTIONAL,
instance,
comp,
)
) {
return convertLegacyFunctionalComponent(comp)
}
return comp
}
|