]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
refactor: remove unnecessary normalization
authorEvan You <yyx990803@gmail.com>
Tue, 25 Sep 2018 18:26:36 +0000 (14:26 -0400)
committerEvan You <yyx990803@gmail.com>
Tue, 25 Sep 2018 18:26:36 +0000 (14:26 -0400)
packages/core/src/componentOptions.ts
packages/core/src/componentProps.ts

index 82c5f0ca3a67a080123ffa874906a5b104a936a3..fbe25083935032028ded0efd4ad39cc09049476f 100644 (file)
@@ -22,10 +22,6 @@ export type ComponentPropsOptions<P = Data> = {
   [K in keyof P]: PropValidator<P[K]>
 }
 
-export type NormalizedPropsOptions<P = Data> = {
-  [K in keyof P]: PropOptions<P[K]>
-}
-
 export type Prop<T> = { (): T } | { new (...args: any[]): T & object }
 
 export type PropType<T> = Prop<T> | Prop<T>[]
index dd1b3509f6666a170d21f4e521da6dc25463621e..514f33ca3dcabb81405bd514f8e2b18357f815b8 100644 (file)
@@ -9,7 +9,6 @@ import { immutable, unwrap, lock, unlock } from '@vue/observer'
 import {
   Data,
   ComponentPropsOptions,
-  NormalizedPropsOptions,
   PropValidator,
   PropOptions
 } from './componentOptions'
@@ -77,10 +76,7 @@ export function resolveProps(
   Component: ComponentClass | FunctionalComponent
 ): { props: Data; attrs?: Data } {
   const hasDeclaredProps = rawOptions !== void 0
-  const options = (hasDeclaredProps &&
-    normalizePropsOptions(
-      rawOptions as ComponentPropsOptions
-    )) as NormalizedPropsOptions
+  const options = rawOptions as ComponentPropsOptions
   if (!rawData && !hasDeclaredProps) {
     return EMPTY_PROPS
   }
@@ -120,7 +116,7 @@ export function resolveProps(
       if (props[key] === void 0) {
         const opt = options[key]
         if (opt != null && opt.hasOwnProperty('default')) {
-          const defaultValue = opt.default
+          const defaultValue = (opt as PropOptions).default
           props[key] =
             typeof defaultValue === 'function' ? defaultValue() : defaultValue
         }
@@ -130,28 +126,6 @@ export function resolveProps(
   return { props, attrs }
 }
 
-const normalizeCache = new WeakMap<
-  ComponentPropsOptions,
-  NormalizedPropsOptions
->()
-
-function normalizePropsOptions(
-  raw: ComponentPropsOptions
-): NormalizedPropsOptions {
-  let cached = normalizeCache.get(raw)
-  if (cached) {
-    return cached
-  }
-  const normalized: NormalizedPropsOptions = {}
-  for (const key in raw) {
-    const opt = raw[key]
-    normalized[key] =
-      typeof opt === 'function' ? { type: opt } : (opt as PropOptions)
-  }
-  normalizeCache.set(raw, normalized)
-  return normalized
-}
-
 function validateProp(
   key: string,
   value: any,