wip: fix compat utils usage

This commit is contained in:
Evan You 2021-04-09 23:21:13 -04:00
parent 183f9b0013
commit 7a25cbb7a7
8 changed files with 32 additions and 13 deletions

View File

@ -226,7 +226,7 @@ function doWatch(
const val = baseGetter()
if (
isArray(val) &&
softAssertCompatEnabled(DeprecationTypes.WATCH_ARRAY)
softAssertCompatEnabled(DeprecationTypes.WATCH_ARRAY, instance)
) {
traverse(val)
}
@ -277,7 +277,7 @@ function doWatch(
hasChanged(newValue, oldValue) ||
(__COMPAT__ &&
isArray(newValue) &&
isCompatEnabled(DeprecationTypes.WATCH_ARRAY))
isCompatEnabled(DeprecationTypes.WATCH_ARRAY, instance))
) {
// cleanup before running cb again
if (cleanup) {

View File

@ -1,4 +1,4 @@
import { hasOwn, isArray } from '@vue/shared/src'
import { hasOwn, isArray } from '@vue/shared'
import {
ComponentInternalInstance,
ComponentOptions,

View File

@ -443,7 +443,7 @@ function baseCreateRenderer(
createHydrationFns?: typeof createHydrationFunctions
): any {
const isHookEventCompatEnabled =
__COMPAT__ && isCompatEnabled(DeprecationTypes.INSTANCE_EVENT_HOOKS)
__COMPAT__ && isCompatEnabled(DeprecationTypes.INSTANCE_EVENT_HOOKS, null)
// compile-time feature flags check
if (__ESM_BUNDLER__ && !__TEST__) {

View File

@ -103,7 +103,7 @@ export function resolveTransitionProps(
// legacy transition class compat
const legacyClassEnabled =
__COMPAT__ &&
compatUtils.isCompatEnabled(DeprecationTypes.TRANSITION_CLASSES)
compatUtils.isCompatEnabled(DeprecationTypes.TRANSITION_CLASSES, null)
let legacyEnterFromClass: string
let legacyAppearFromClass: string
let legacyLeaveFromClass: string

View File

@ -107,7 +107,8 @@ const TransitionGroupImpl = {
__COMPAT__ &&
!rawProps.tag &&
compatUtils.softAssertCompatEnabled(
DeprecationTypes.TRANSITION_GROUP_ROOT
DeprecationTypes.TRANSITION_GROUP_ROOT,
instance.parent
)
) {
tag = 'span'

View File

@ -2,7 +2,8 @@ import {
getCurrentInstance,
DeprecationTypes,
LegacyConfig,
compatUtils
compatUtils,
ComponentInternalInstance
} from '@vue/runtime-core'
import { hyphenate, isArray } from '@vue/shared'
@ -58,16 +59,22 @@ const keyNames: Record<string, string | string[]> = {
*/
export const withKeys = (fn: Function, modifiers: string[]) => {
let globalKeyCodes: LegacyConfig['keyCodes']
let instance: ComponentInternalInstance | null = null
if (__COMPAT__) {
if (compatUtils.isCompatEnabled(DeprecationTypes.CONFIG_KEY_CODES)) {
const instance = getCurrentInstance()
instance = getCurrentInstance()
if (
compatUtils.isCompatEnabled(DeprecationTypes.CONFIG_KEY_CODES, instance)
) {
if (instance) {
globalKeyCodes = ((instance.appContext.config as any) as LegacyConfig)
.keyCodes
}
}
if (__DEV__ && modifiers.some(m => /^\d+$/.test(m))) {
compatUtils.warnDeprecation(DeprecationTypes.V_ON_KEYCODE_MODIFIER)
compatUtils.warnDeprecation(
DeprecationTypes.V_ON_KEYCODE_MODIFIER,
instance
)
}
}
@ -84,7 +91,10 @@ export const withKeys = (fn: Function, modifiers: string[]) => {
if (__COMPAT__) {
const keyCode = String(event.keyCode)
if (
compatUtils.isCompatEnabled(DeprecationTypes.V_ON_KEYCODE_MODIFIER) &&
compatUtils.isCompatEnabled(
DeprecationTypes.V_ON_KEYCODE_MODIFIER,
instance
) &&
modifiers.some(mod => mod == keyCode)
) {
return fn(event)

View File

@ -78,7 +78,10 @@ export const createApp = ((...args) => {
for (let i = 0; i < container.attributes.length; i++) {
const attr = container.attributes[i]
if (attr.name !== 'v-cloak' && /^(v-|:|@)/.test(attr.name)) {
compatUtils.warnDeprecation(DeprecationTypes.GLOBAL_MOUNT_CONTAINER)
compatUtils.warnDeprecation(
DeprecationTypes.GLOBAL_MOUNT_CONTAINER,
null
)
break
}
}

View File

@ -54,6 +54,7 @@ export function compatCoerceAttr(
v2CocercedValue &&
compatUtils.softAssertCompatEnabled(
DeprecationTypes.ATTR_ENUMERATED_COERSION,
null,
key,
value,
v2CocercedValue
@ -65,7 +66,11 @@ export function compatCoerceAttr(
} else if (
value === false &&
!isSpecialBooleanAttr(key) &&
compatUtils.softAssertCompatEnabled(DeprecationTypes.ATTR_FALSE_VALUE, key)
compatUtils.softAssertCompatEnabled(
DeprecationTypes.ATTR_FALSE_VALUE,
null,
key
)
) {
el.removeAttribute(key)
return true