import { no, noop, identity } from 'shared/util'
|
|
import { LIFECYCLE_HOOKS } from 'shared/constants'
|
import type { Component } from 'types/component'
|
|
/**
|
* @internal
|
*/
|
export interface Config {
|
// user
|
optionMergeStrategies: { [key: string]: Function }
|
silent: boolean
|
productionTip: boolean
|
performance: boolean
|
devtools: boolean
|
errorHandler?: (err: Error, vm: Component | null, info: string) => void
|
warnHandler?: (msg: string, vm: Component | null, trace: string) => void
|
ignoredElements: Array<string | RegExp>
|
keyCodes: { [key: string]: number | Array<number> }
|
|
// platform
|
isReservedTag: (x: string) => boolean | undefined
|
isReservedAttr: (x: string) => true | undefined
|
parsePlatformTagName: (x: string) => string
|
isUnknownElement: (x: string) => boolean
|
getTagNamespace: (x: string) => string | undefined
|
mustUseProp: (tag: string, type?: string | null, name?: string) => boolean
|
|
// private
|
async: boolean
|
|
// legacy
|
_lifecycleHooks: Array<string>
|
}
|
|
export default {
|
/**
|
* Option merge strategies (used in core/util/options)
|
*/
|
// $flow-disable-line
|
optionMergeStrategies: Object.create(null),
|
|
/**
|
* Whether to suppress warnings.
|
*/
|
silent: false,
|
|
/**
|
* Show production mode tip message on boot?
|
*/
|
productionTip: __DEV__,
|
|
/**
|
* Whether to enable devtools
|
*/
|
devtools: __DEV__,
|
|
/**
|
* Whether to record perf
|
*/
|
performance: false,
|
|
/**
|
* Error handler for watcher errors
|
*/
|
errorHandler: null,
|
|
/**
|
* Warn handler for watcher warns
|
*/
|
warnHandler: null,
|
|
/**
|
* Ignore certain custom elements
|
*/
|
ignoredElements: [],
|
|
/**
|
* Custom user key aliases for v-on
|
*/
|
// $flow-disable-line
|
keyCodes: Object.create(null),
|
|
/**
|
* Check if a tag is reserved so that it cannot be registered as a
|
* component. This is platform-dependent and may be overwritten.
|
*/
|
isReservedTag: no,
|
|
/**
|
* Check if an attribute is reserved so that it cannot be used as a component
|
* prop. This is platform-dependent and may be overwritten.
|
*/
|
isReservedAttr: no,
|
|
/**
|
* Check if a tag is an unknown element.
|
* Platform-dependent.
|
*/
|
isUnknownElement: no,
|
|
/**
|
* Get the namespace of an element
|
*/
|
getTagNamespace: noop,
|
|
/**
|
* Parse the real tag name for the specific platform.
|
*/
|
parsePlatformTagName: identity,
|
|
/**
|
* Check if an attribute must be bound using property, e.g. value
|
* Platform-dependent.
|
*/
|
mustUseProp: no,
|
|
/**
|
* Perform updates asynchronously. Intended to be used by Vue Test Utils
|
* This will significantly reduce performance if set to false.
|
*/
|
async: true,
|
|
/**
|
* Exposed for legacy reasons
|
*/
|
_lifecycleHooks: LIFECYCLE_HOOKS
|
} as unknown as Config
|