Преглед изворни кода

fix(build): make transition tree-shakeable again

Evan You пре 6 година
родитељ
комит
ad199e1a25

+ 1 - 1
packages/runtime-dom/src/components/Transition.ts

@@ -55,7 +55,7 @@ const DOMTransitionPropsValidators = {
   leaveToClass: String
 }
 
-export const TransitionPropsValidators = (Transition.props = extend(
+export const TransitionPropsValidators = (Transition.props = /*#__PURE__*/ extend(
   {},
   (BaseTransition as any).props,
   DOMTransitionPropsValidators

+ 9 - 3
packages/runtime-dom/src/components/TransitionGroup.ts

@@ -39,7 +39,7 @@ export type TransitionGroupProps = Omit<TransitionProps, 'mode'> & {
 const TransitionGroupImpl = {
   name: 'TransitionGroup',
 
-  props: extend({}, TransitionPropsValidators, {
+  props: /*#__PURE__*/ extend({}, TransitionPropsValidators, {
     tag: String,
     moveClass: String
   }),
@@ -130,8 +130,14 @@ const TransitionGroupImpl = {
   }
 }
 
-// remove mode props as TransitionGroup doesn't support it
-delete TransitionGroupImpl.props.mode
+/**
+ * TransitionGroup does not support "mode" so we need to remove it from the
+ * props declarations, but direct delete operation is considered a side effect
+ * and will make the entire transition feature non-tree-shakeable, so we do it
+ * in a function and mark the function's invocation as pure.
+ */
+const removeMode = (props: any) => delete props.mode
+/*#__PURE__*/ removeMode(TransitionGroupImpl.props)
 
 export const TransitionGroup = (TransitionGroupImpl as unknown) as {
   new (): {