]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
types: fix dts reliance on @vue/shared
authorEvan You <yyx990803@gmail.com>
Fri, 1 Nov 2019 16:24:33 +0000 (12:24 -0400)
committerEvan You <yyx990803@gmail.com>
Fri, 1 Nov 2019 16:24:33 +0000 (12:24 -0400)
packages/runtime-core/src/index.ts
packages/runtime-core/src/shapeFlags.ts

index 959db695dbe29557c28cf46b6eed980cfeae964a..d973a6defd07f03a4fb64fbcb15919430efc21f2 100644 (file)
@@ -22,9 +22,22 @@ export {
 export { Text, Comment, Fragment, Portal, Suspense } from './vnode'
 // Internal Components
 export { KeepAlive } from './keepAlive'
-// VNode flags
-export { PublicShapeFlags as ShapeFlags } from './shapeFlags'
-export { PublicPatchFlags as PatchFlags } from '@vue/shared'
+// VNode patchFlags
+import { PublicPatchFlags } from '@vue/shared'
+export const PatchFlags = PublicPatchFlags as {
+  // export flags as plain numbers to avoid d.ts relying on @vue/shared
+  // the enum type is internal anyway.
+  TEXT: number
+  CLASS: number
+  STYLE: number
+  PROPS: number
+  NEED_PATCH: number
+  FULL_PROPS: number
+  KEYED_FRAGMENT: number
+  UNKEYED_FRAGMENT: number
+  DYNAMIC_SLOTS: number
+  BAIL: number
+}
 
 // For advanced plugins
 export { getCurrentInstance } from './component'
@@ -52,7 +65,12 @@ export { toHandlers } from './helpers/toHandlers'
 export { renderSlot } from './helpers/renderSlot'
 export { createSlots } from './helpers/createSlots'
 export { setBlockTracking, createTextVNode, createCommentVNode } from './vnode'
-export { capitalize, camelize } from '@vue/shared'
+// Since @vue/shared is inlined into final builds,
+// when re-exporting from @vue/shared we need to avoid relying on their original
+// types so that the bundled d.ts does not attempt to import from it.
+import { capitalize as _capitalize, camelize as _camelize } from '@vue/shared'
+export const capitalize = _capitalize as (s: string) => string
+export const camelize = _camelize as (s: string) => string
 
 // Internal, for integration with runtime compiler
 export { registerRuntimeCompiler } from './component'
index 624e827e029e4fca2ff5cf90cbb40f113ea2fbd4..2ed5dcbdef289574f6a19ff4fa97579ea90622b4 100644 (file)
@@ -1,5 +1,3 @@
-// internally the const enum flags are used to avoid overhead of property
-// access
 export const enum ShapeFlags {
   ELEMENT = 1,
   FUNCTIONAL_COMPONENT = 1 << 1,
@@ -12,15 +10,3 @@ export const enum ShapeFlags {
   STATEFUL_COMPONENT_KEPT_ALIVE = 1 << 8,
   COMPONENT = ShapeFlags.STATEFUL_COMPONENT | ShapeFlags.FUNCTIONAL_COMPONENT
 }
-
-// but the flags are also exported as an actual object for external use
-export const PublicShapeFlags = {
-  ELEMENT: ShapeFlags.ELEMENT,
-  FUNCTIONAL_COMPONENT: ShapeFlags.FUNCTIONAL_COMPONENT,
-  STATEFUL_COMPONENT: ShapeFlags.STATEFUL_COMPONENT,
-  TEXT_CHILDREN: ShapeFlags.TEXT_CHILDREN,
-  ARRAY_CHILDREN: ShapeFlags.ARRAY_CHILDREN,
-  SLOTS_CHILDREN: ShapeFlags.SLOTS_CHILDREN,
-  SUSPENSE: ShapeFlags.SUSPENSE,
-  COMPONENT: ShapeFlags.COMPONENT
-}