wip: allow compatConfig mode to be a function
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { extend, hasOwn, isArray } from '@vue/shared'
|
||||
import { extend, hasOwn, isArray, isFunction } from '@vue/shared'
|
||||
import {
|
||||
Component,
|
||||
ComponentInternalInstance,
|
||||
ComponentOptions,
|
||||
formatComponentName,
|
||||
@@ -505,7 +506,7 @@ export function warnDeprecation(
|
||||
export type CompatConfig = Partial<
|
||||
Record<DeprecationTypes, boolean | 'suppress-warning'>
|
||||
> & {
|
||||
MODE?: 2 | 3
|
||||
MODE?: 2 | 3 | ((comp: Component | null) => 2 | 3)
|
||||
}
|
||||
|
||||
export const globalCompatConfig: CompatConfig = {
|
||||
@@ -574,8 +575,13 @@ export function isCompatEnabled(
|
||||
return false
|
||||
}
|
||||
|
||||
const mode = getCompatConfigForKey('MODE', instance) || 2
|
||||
const rawMode = getCompatConfigForKey('MODE', instance) || 2
|
||||
const val = getCompatConfigForKey(key, instance)
|
||||
|
||||
const mode = isFunction(rawMode)
|
||||
? rawMode(instance && instance.type)
|
||||
: rawMode
|
||||
|
||||
if (mode === 2) {
|
||||
return val !== false
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user