resolvedProps = toRaw(resolvedProps)
const camelizePropsKey = Object.keys(rawProps).map(key => camelize(key))
for (const key in options) {
- let opt = options[key]
- if (opt == null) continue
- validateProp(
- key,
- resolvedProps[key],
- opt,
- __DEV__ ? shallowReadonly(resolvedProps) : resolvedProps,
- !camelizePropsKey.includes(key),
- )
+ const opt = options[key]
+ if (opt != null) {
+ validateProp(
+ key,
+ resolvedProps[key],
+ opt,
+ resolvedProps,
+ !camelizePropsKey.includes(key),
+ )
+ }
}
}
}
}
// custom validator
- if (validator && !validator(value, resolvedProps)) {
+ if (
+ validator &&
+ !validator(value, __DEV__ ? shallowReadonly(resolvedProps) : resolvedProps)
+ ) {
warn('Invalid prop: custom validator check failed for prop "' + key + '".')
}
}
-import {
- EMPTY_ARR,
- NO,
- YES,
- camelize,
- extend,
- hasOwn,
- isFunction,
-} from '@vue/shared'
+import { EMPTY_ARR, NO, YES, camelize, hasOwn, isFunction } from '@vue/shared'
import type { VaporComponent, VaporComponentInstance } from './component'
import {
type NormalizedPropsOptions,
const rawProps = instance.rawProps
if (!rawProps) return
renderEffect(() => {
- const mergedRawProps = extend({}, rawProps)
+ const mergedRawProps: Record<string, any> = {}
+ for (const key in rawProps) {
+ if (key !== '$') {
+ mergedRawProps[key] = rawProps[key]()
+ }
+ }
if (rawProps.$) {
for (const source of rawProps.$) {
const isDynamic = isFunction(source)