]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
refactor(types): move shapeFlags to shared
authorEvan You <yyx990803@gmail.com>
Fri, 14 Feb 2020 06:36:42 +0000 (01:36 -0500)
committerEvan You <yyx990803@gmail.com>
Fri, 14 Feb 2020 06:36:42 +0000 (01:36 -0500)
16 files changed:
packages/runtime-core/__tests__/rendererFragment.spec.ts
packages/runtime-core/__tests__/vnode.spec.ts
packages/runtime-core/src/component.ts
packages/runtime-core/src/componentRenderUtils.ts
packages/runtime-core/src/componentSlots.ts
packages/runtime-core/src/components/BaseTransition.ts
packages/runtime-core/src/components/KeepAlive.ts
packages/runtime-core/src/components/Suspense.ts
packages/runtime-core/src/hydration.ts
packages/runtime-core/src/index.ts
packages/runtime-core/src/renderer.ts
packages/runtime-core/src/vnode.ts
packages/server-renderer/src/renderToString.ts
packages/shared/src/index.ts
packages/shared/src/shapeFlags.ts [new file with mode: 0644]
packages/vue/examples/__tests__/markdown.spec.ts

index dd3a27b727229d150859c39190eb015444968c9d..091ef7a295cace06e0adf39343460d223d60f509 100644 (file)
@@ -6,13 +6,13 @@ import {
   NodeTypes,
   TestElement,
   Fragment,
-  PatchFlags,
   resetOps,
   dumpOps,
   NodeOpTypes,
   serializeInner,
   createTextVNode
 } from '@vue/runtime-test'
+import { PatchFlags } from '@vue/shared'
 
 describe('renderer: fragment', () => {
   it('should allow returning multiple component root nodes', () => {
index a3555a1033f35e18ff92acf2c4300f8765e59a4d..1a500ac7c8ec6eed67b13b1f5adf498191f3b81f 100644 (file)
@@ -9,9 +9,8 @@ import {
   mergeProps,
   normalizeVNode
 } from '../src/vnode'
-import { ShapeFlags } from '../src/shapeFlags'
 import { Data } from '../src/component'
-import { PatchFlags } from '@vue/shared'
+import { ShapeFlags, PatchFlags } from '@vue/shared'
 
 describe('vnode', () => {
   test('create with just tag', () => {
index 15b3edc03f36738f98d8c8c4e48b14c7730b7174..538ca470ceb0cf556b7dfab5fccc9359ca8e9755 100644 (file)
@@ -26,7 +26,8 @@ import {
   makeMap,
   isPromise,
   isArray,
-  hyphenate
+  hyphenate,
+  ShapeFlags
 } from '@vue/shared'
 import { SuspenseBoundary } from './components/Suspense'
 import { CompilerOptions } from '@vue/compiler-core'
@@ -34,7 +35,6 @@ import {
   currentRenderingInstance,
   markAttrsAccessed
 } from './componentRenderUtils'
-import { ShapeFlags } from './shapeFlags'
 
 export type Data = { [key: string]: unknown }
 
index fb71728d5aac4d63f2a1fc177281a435ed4b8331..145a3697c5c385751d66c246678ecf01853a90aa 100644 (file)
@@ -10,9 +10,8 @@ import {
   Comment,
   cloneVNode
 } from './vnode'
-import { ShapeFlags } from './shapeFlags'
 import { handleError, ErrorCodes } from './errorHandling'
-import { PatchFlags, EMPTY_OBJ } from '@vue/shared'
+import { PatchFlags, ShapeFlags, EMPTY_OBJ } from '@vue/shared'
 import { warn } from './warning'
 
 // mark the current rendering instance for asset resolution (e.g.
index 4f7e82a53f75e680d761ff419e8f3c85d71f9540..79c8f9d43174178bfa72edc02ca1711c92979efc 100644 (file)
@@ -5,8 +5,7 @@ import {
   normalizeVNode,
   VNodeChild
 } from './vnode'
-import { isArray, isFunction, EMPTY_OBJ } from '@vue/shared'
-import { ShapeFlags } from './shapeFlags'
+import { isArray, isFunction, EMPTY_OBJ, ShapeFlags } from '@vue/shared'
 import { warn } from './warning'
 import { isKeepAlive } from './components/KeepAlive'
 
index bcc2a4bde02b9939a8b6390b2512777486f5019d..ffe5597abc644ded602fd36c57a9a04e1c767948 100644 (file)
@@ -15,7 +15,7 @@ import { warn } from '../warning'
 import { isKeepAlive } from './KeepAlive'
 import { toRaw } from '@vue/reactivity'
 import { callWithAsyncErrorHandling, ErrorCodes } from '../errorHandling'
-import { ShapeFlags } from '../shapeFlags'
+import { ShapeFlags } from '@vue/shared'
 import { onBeforeUnmount, onMounted } from '../apiLifecycle'
 
 export interface BaseTransitionProps {
index 18105efa5ab186ea6ac4f60d74fa9046593fefff..4125131d2d7464313760d58b1ea13f28e9275c08 100644 (file)
@@ -10,9 +10,8 @@ import {
 import { VNode, cloneVNode, isVNode } from '../vnode'
 import { warn } from '../warning'
 import { onBeforeUnmount, injectHook, onUnmounted } from '../apiLifecycle'
-import { isString, isArray } from '@vue/shared'
+import { isString, isArray, ShapeFlags } from '@vue/shared'
 import { watch } from '../apiWatch'
-import { ShapeFlags } from '../shapeFlags'
 import { SuspenseBoundary } from './Suspense'
 import {
   RendererInternals,
index 8cbf7a1d13b7a746dae8bc6a5fe311e626840f31..211e5f30a00f4d20ed8b49fd7fda810fc7ff0ff6 100644 (file)
@@ -1,6 +1,5 @@
 import { VNode, normalizeVNode, VNodeChild } from '../vnode'
-import { ShapeFlags } from '../shapeFlags'
-import { isFunction, isArray } from '@vue/shared'
+import { isFunction, isArray, ShapeFlags } from '@vue/shared'
 import { ComponentInternalInstance, handleSetupResult } from '../component'
 import { Slots } from '../componentSlots'
 import { RendererInternals, MoveType } from '../renderer'
index 3318001f1997c4f89244dfaac014a806b231db0d..d451d7529916080de36e0a2b6ef4c83cd67d6779 100644 (file)
@@ -10,9 +10,8 @@ import {
 import { queuePostFlushCb, flushPostFlushCbs } from './scheduler'
 import { ComponentInternalInstance } from './component'
 import { invokeDirectiveHook } from './directives'
-import { ShapeFlags } from './shapeFlags'
 import { warn } from './warning'
-import { PatchFlags, isReservedProp, isOn } from '@vue/shared'
+import { PatchFlags, ShapeFlags, isReservedProp, isOn } from '@vue/shared'
 
 // Note: hydration is DOM-specific
 // But we have to place it in core due to tight coupling with core - splitting
index 09a3ac2db0d6c346e6fb035914ebc93452eeb344..25f1939fcdba6727b4e90b53ee58019fd0b70273 100644 (file)
@@ -56,8 +56,6 @@ export {
   BaseTransition,
   BaseTransitionProps
 } from './components/BaseTransition'
-export { PatchFlags } from '@vue/shared'
-export { ShapeFlags } from './shapeFlags'
 
 // SFC CSS Modules
 export { useCSSModule } from './helpers/useCssModule'
index ab8a29d45527b65b70be3607829ae75c62025753..c5b38b3b855725c7a38d513ddb8f5be4c78ca19a 100644 (file)
@@ -30,6 +30,7 @@ import {
   isReservedProp,
   isFunction,
   PatchFlags,
+  ShapeFlags,
   NOOP
 } from '@vue/shared'
 import {
@@ -49,11 +50,10 @@ import {
 } from '@vue/reactivity'
 import { resolveProps } from './componentProps'
 import { resolveSlots } from './componentSlots'
-import { ShapeFlags } from './shapeFlags'
 import { pushWarningContext, popWarningContext, warn } from './warning'
 import { invokeDirectiveHook } from './directives'
 import { ComponentPublicInstance } from './componentProxy'
-import { createAppAPI } from './apiCreateApp'
+import { createAppAPI, CreateAppFunction } from './apiCreateApp'
 import {
   SuspenseBoundary,
   queueEffectWithSuspense,
@@ -1858,7 +1858,7 @@ function baseCreateRenderer<
   return {
     render,
     hydrate,
-    createApp: createAppAPI<HostNode, HostElement>(render, hydrate)
+    createApp: createAppAPI(render, hydrate) as CreateAppFunction<HostElement>
   }
 }
 
index 623f51d3d5030b8a1151943b4035027f23357ebe..440eb270f181505f0cdf48fc3798ef4bf8fdf456 100644 (file)
@@ -7,7 +7,8 @@ import {
   extend,
   normalizeClass,
   normalizeStyle,
-  PatchFlags
+  PatchFlags,
+  ShapeFlags
 } from '@vue/shared'
 import {
   ComponentInternalInstance,
@@ -16,7 +17,6 @@ import {
   Component
 } from './component'
 import { RawSlots } from './componentSlots'
-import { ShapeFlags } from './shapeFlags'
 import { isReactive, Ref } from '@vue/reactivity'
 import { AppContext } from './apiCreateApp'
 import { SuspenseBoundary } from './components/Suspense'
index 074d98b0423f2de314ea21f9968c00798e34ac5b..265fb2c650345ab0c8e984b162cb1ae78fad7e0a 100644 (file)
@@ -9,12 +9,12 @@ import {
   Comment,
   Fragment,
   Portal,
-  ShapeFlags,
   ssrUtils,
   Slots,
   warn
 } from 'vue'
 import {
+  ShapeFlags,
   isString,
   isPromise,
   isArray,
index 4ec5d8d91be3cce65ac2d8a69e1aca381fb57061..68daa4b22d12970f033a63fae3de3ae7c42da3cf 100644 (file)
@@ -2,6 +2,7 @@ import { makeMap } from './makeMap'
 
 export { makeMap }
 export * from './patchFlags'
+export * from './shapeFlags'
 export * from './globalsWhitelist'
 export * from './codeframe'
 export * from './mockWarn'
diff --git a/packages/shared/src/shapeFlags.ts b/packages/shared/src/shapeFlags.ts
new file mode 100644 (file)
index 0000000..c5d4f6f
--- /dev/null
@@ -0,0 +1,12 @@
+export const enum ShapeFlags {
+  ELEMENT = 1,
+  FUNCTIONAL_COMPONENT = 1 << 1,
+  STATEFUL_COMPONENT = 1 << 2,
+  TEXT_CHILDREN = 1 << 3,
+  ARRAY_CHILDREN = 1 << 4,
+  SLOTS_CHILDREN = 1 << 5,
+  SUSPENSE = 1 << 6,
+  COMPONENT_SHOULD_KEEP_ALIVE = 1 << 7,
+  COMPONENT_KEPT_ALIVE = 1 << 8,
+  COMPONENT = ShapeFlags.STATEFUL_COMPONENT | ShapeFlags.FUNCTIONAL_COMPONENT
+}
index 3f2570155e6c6743b85ba121df4b565c1f55e924..cc9f4e871050252b915bda2c6e1e63ba09b43fd8 100644 (file)
@@ -18,7 +18,7 @@ describe('e2e: markdown', () => {
     await page().type('textarea', '\n## foo\n\n- bar\n- baz')
     // assert the output is not updated yet because of debounce
     expect(await html('#editor div')).toBe('<h1 id="hello">hello</h1>\n')
-    await page().waitFor(16)
+    await page().waitFor(30)
     expect(await html('#editor div')).toBe(
       '<h1 id="hello">hello</h1>\n' +
         '<h2 id="foo">foo</h2>\n' +