runtimeHelpers.ts 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. export const FRAGMENT: unique symbol = Symbol(__DEV__ ? `Fragment` : ``)
  2. export const TELEPORT: unique symbol = Symbol(__DEV__ ? `Teleport` : ``)
  3. export const SUSPENSE: unique symbol = Symbol(__DEV__ ? `Suspense` : ``)
  4. export const KEEP_ALIVE: unique symbol = Symbol(__DEV__ ? `KeepAlive` : ``)
  5. export const BASE_TRANSITION: unique symbol = Symbol(
  6. __DEV__ ? `BaseTransition` : ``,
  7. )
  8. export const OPEN_BLOCK: unique symbol = Symbol(__DEV__ ? `openBlock` : ``)
  9. export const CREATE_BLOCK: unique symbol = Symbol(__DEV__ ? `createBlock` : ``)
  10. export const CREATE_ELEMENT_BLOCK: unique symbol = Symbol(
  11. __DEV__ ? `createElementBlock` : ``,
  12. )
  13. export const CREATE_VNODE: unique symbol = Symbol(__DEV__ ? `createVNode` : ``)
  14. export const CREATE_ELEMENT_VNODE: unique symbol = Symbol(
  15. __DEV__ ? `createElementVNode` : ``,
  16. )
  17. export const CREATE_COMMENT: unique symbol = Symbol(
  18. __DEV__ ? `createCommentVNode` : ``,
  19. )
  20. export const CREATE_TEXT: unique symbol = Symbol(
  21. __DEV__ ? `createTextVNode` : ``,
  22. )
  23. export const CREATE_STATIC: unique symbol = Symbol(
  24. __DEV__ ? `createStaticVNode` : ``,
  25. )
  26. export const RESOLVE_COMPONENT: unique symbol = Symbol(
  27. __DEV__ ? `resolveComponent` : ``,
  28. )
  29. export const RESOLVE_DYNAMIC_COMPONENT: unique symbol = Symbol(
  30. __DEV__ ? `resolveDynamicComponent` : ``,
  31. )
  32. export const RESOLVE_DIRECTIVE: unique symbol = Symbol(
  33. __DEV__ ? `resolveDirective` : ``,
  34. )
  35. export const RESOLVE_FILTER: unique symbol = Symbol(
  36. __DEV__ ? `resolveFilter` : ``,
  37. )
  38. export const WITH_DIRECTIVES: unique symbol = Symbol(
  39. __DEV__ ? `withDirectives` : ``,
  40. )
  41. export const RENDER_LIST: unique symbol = Symbol(__DEV__ ? `renderList` : ``)
  42. export const RENDER_SLOT: unique symbol = Symbol(__DEV__ ? `renderSlot` : ``)
  43. export const CREATE_SLOTS: unique symbol = Symbol(__DEV__ ? `createSlots` : ``)
  44. export const TO_DISPLAY_STRING: unique symbol = Symbol(
  45. __DEV__ ? `toDisplayString` : ``,
  46. )
  47. export const MERGE_PROPS: unique symbol = Symbol(__DEV__ ? `mergeProps` : ``)
  48. export const NORMALIZE_CLASS: unique symbol = Symbol(
  49. __DEV__ ? `normalizeClass` : ``,
  50. )
  51. export const NORMALIZE_STYLE: unique symbol = Symbol(
  52. __DEV__ ? `normalizeStyle` : ``,
  53. )
  54. export const NORMALIZE_PROPS: unique symbol = Symbol(
  55. __DEV__ ? `normalizeProps` : ``,
  56. )
  57. export const GUARD_REACTIVE_PROPS: unique symbol = Symbol(
  58. __DEV__ ? `guardReactiveProps` : ``,
  59. )
  60. export const TO_HANDLERS: unique symbol = Symbol(__DEV__ ? `toHandlers` : ``)
  61. export const CAMELIZE: unique symbol = Symbol(__DEV__ ? `camelize` : ``)
  62. export const CAPITALIZE: unique symbol = Symbol(__DEV__ ? `capitalize` : ``)
  63. export const TO_HANDLER_KEY: unique symbol = Symbol(
  64. __DEV__ ? `toHandlerKey` : ``,
  65. )
  66. export const SET_BLOCK_TRACKING: unique symbol = Symbol(
  67. __DEV__ ? `setBlockTracking` : ``,
  68. )
  69. /**
  70. * @deprecated no longer needed in 3.5+ because we no longer hoist element nodes
  71. * but kept for backwards compat
  72. */
  73. export const PUSH_SCOPE_ID: unique symbol = Symbol(__DEV__ ? `pushScopeId` : ``)
  74. /**
  75. * @deprecated kept for backwards compat
  76. */
  77. export const POP_SCOPE_ID: unique symbol = Symbol(__DEV__ ? `popScopeId` : ``)
  78. export const WITH_CTX: unique symbol = Symbol(__DEV__ ? `withCtx` : ``)
  79. export const UNREF: unique symbol = Symbol(__DEV__ ? `unref` : ``)
  80. export const IS_REF: unique symbol = Symbol(__DEV__ ? `isRef` : ``)
  81. export const WITH_MEMO: unique symbol = Symbol(__DEV__ ? `withMemo` : ``)
  82. export const IS_MEMO_SAME: unique symbol = Symbol(__DEV__ ? `isMemoSame` : ``)
  83. // Name mapping for runtime helpers that need to be imported from 'vue' in
  84. // generated code. Make sure these are correctly exported in the runtime!
  85. export const helperNameMap: Record<symbol, string> = {
  86. [FRAGMENT]: `Fragment`,
  87. [TELEPORT]: `Teleport`,
  88. [SUSPENSE]: `Suspense`,
  89. [KEEP_ALIVE]: `KeepAlive`,
  90. [BASE_TRANSITION]: `BaseTransition`,
  91. [OPEN_BLOCK]: `openBlock`,
  92. [CREATE_BLOCK]: `createBlock`,
  93. [CREATE_ELEMENT_BLOCK]: `createElementBlock`,
  94. [CREATE_VNODE]: `createVNode`,
  95. [CREATE_ELEMENT_VNODE]: `createElementVNode`,
  96. [CREATE_COMMENT]: `createCommentVNode`,
  97. [CREATE_TEXT]: `createTextVNode`,
  98. [CREATE_STATIC]: `createStaticVNode`,
  99. [RESOLVE_COMPONENT]: `resolveComponent`,
  100. [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`,
  101. [RESOLVE_DIRECTIVE]: `resolveDirective`,
  102. [RESOLVE_FILTER]: `resolveFilter`,
  103. [WITH_DIRECTIVES]: `withDirectives`,
  104. [RENDER_LIST]: `renderList`,
  105. [RENDER_SLOT]: `renderSlot`,
  106. [CREATE_SLOTS]: `createSlots`,
  107. [TO_DISPLAY_STRING]: `toDisplayString`,
  108. [MERGE_PROPS]: `mergeProps`,
  109. [NORMALIZE_CLASS]: `normalizeClass`,
  110. [NORMALIZE_STYLE]: `normalizeStyle`,
  111. [NORMALIZE_PROPS]: `normalizeProps`,
  112. [GUARD_REACTIVE_PROPS]: `guardReactiveProps`,
  113. [TO_HANDLERS]: `toHandlers`,
  114. [CAMELIZE]: `camelize`,
  115. [CAPITALIZE]: `capitalize`,
  116. [TO_HANDLER_KEY]: `toHandlerKey`,
  117. [SET_BLOCK_TRACKING]: `setBlockTracking`,
  118. [PUSH_SCOPE_ID]: `pushScopeId`,
  119. [POP_SCOPE_ID]: `popScopeId`,
  120. [WITH_CTX]: `withCtx`,
  121. [UNREF]: `unref`,
  122. [IS_REF]: `isRef`,
  123. [WITH_MEMO]: `withMemo`,
  124. [IS_MEMO_SAME]: `isMemoSame`,
  125. }
  126. export function registerRuntimeHelpers(helpers: Record<symbol, string>): void {
  127. Object.getOwnPropertySymbols(helpers).forEach(s => {
  128. helperNameMap[s] = helpers[s]
  129. })
  130. }