runtimeHelpers.ts 4.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. export const FRAGMENT = Symbol(__DEV__ ? `Fragment` : ``)
  2. export const TELEPORT = Symbol(__DEV__ ? `Teleport` : ``)
  3. export const SUSPENSE = Symbol(__DEV__ ? `Suspense` : ``)
  4. export const KEEP_ALIVE = Symbol(__DEV__ ? `KeepAlive` : ``)
  5. export const BASE_TRANSITION = Symbol(__DEV__ ? `BaseTransition` : ``)
  6. export const OPEN_BLOCK = Symbol(__DEV__ ? `openBlock` : ``)
  7. export const CREATE_BLOCK = Symbol(__DEV__ ? `createBlock` : ``)
  8. export const CREATE_ELEMENT_BLOCK = Symbol(__DEV__ ? `createElementBlock` : ``)
  9. export const CREATE_VNODE = Symbol(__DEV__ ? `createVNode` : ``)
  10. export const CREATE_ELEMENT_VNODE = Symbol(__DEV__ ? `createElementVNode` : ``)
  11. export const CREATE_COMMENT = Symbol(__DEV__ ? `createCommentVNode` : ``)
  12. export const CREATE_TEXT = Symbol(__DEV__ ? `createTextVNode` : ``)
  13. export const CREATE_STATIC = Symbol(__DEV__ ? `createStaticVNode` : ``)
  14. export const RESOLVE_COMPONENT = Symbol(__DEV__ ? `resolveComponent` : ``)
  15. export const RESOLVE_DYNAMIC_COMPONENT = Symbol(
  16. __DEV__ ? `resolveDynamicComponent` : ``,
  17. )
  18. export const RESOLVE_DIRECTIVE = Symbol(__DEV__ ? `resolveDirective` : ``)
  19. export const RESOLVE_FILTER = Symbol(__DEV__ ? `resolveFilter` : ``)
  20. export const WITH_DIRECTIVES = Symbol(__DEV__ ? `withDirectives` : ``)
  21. export const RENDER_LIST = Symbol(__DEV__ ? `renderList` : ``)
  22. export const RENDER_SLOT = Symbol(__DEV__ ? `renderSlot` : ``)
  23. export const CREATE_SLOTS = Symbol(__DEV__ ? `createSlots` : ``)
  24. export const TO_DISPLAY_STRING = Symbol(__DEV__ ? `toDisplayString` : ``)
  25. export const MERGE_PROPS = Symbol(__DEV__ ? `mergeProps` : ``)
  26. export const NORMALIZE_CLASS = Symbol(__DEV__ ? `normalizeClass` : ``)
  27. export const NORMALIZE_STYLE = Symbol(__DEV__ ? `normalizeStyle` : ``)
  28. export const NORMALIZE_PROPS = Symbol(__DEV__ ? `normalizeProps` : ``)
  29. export const GUARD_REACTIVE_PROPS = Symbol(__DEV__ ? `guardReactiveProps` : ``)
  30. export const TO_HANDLERS = Symbol(__DEV__ ? `toHandlers` : ``)
  31. export const CAMELIZE = Symbol(__DEV__ ? `camelize` : ``)
  32. export const CAPITALIZE = Symbol(__DEV__ ? `capitalize` : ``)
  33. export const TO_HANDLER_KEY = Symbol(__DEV__ ? `toHandlerKey` : ``)
  34. export const SET_BLOCK_TRACKING = Symbol(__DEV__ ? `setBlockTracking` : ``)
  35. export const PUSH_SCOPE_ID = Symbol(__DEV__ ? `pushScopeId` : ``)
  36. export const POP_SCOPE_ID = Symbol(__DEV__ ? `popScopeId` : ``)
  37. export const WITH_CTX = Symbol(__DEV__ ? `withCtx` : ``)
  38. export const UNREF = Symbol(__DEV__ ? `unref` : ``)
  39. export const IS_REF = Symbol(__DEV__ ? `isRef` : ``)
  40. export const WITH_MEMO = Symbol(__DEV__ ? `withMemo` : ``)
  41. export const IS_MEMO_SAME = Symbol(__DEV__ ? `isMemoSame` : ``)
  42. // Name mapping for runtime helpers that need to be imported from 'vue' in
  43. // generated code. Make sure these are correctly exported in the runtime!
  44. export const helperNameMap: Record<symbol, string> = {
  45. [FRAGMENT]: `Fragment`,
  46. [TELEPORT]: `Teleport`,
  47. [SUSPENSE]: `Suspense`,
  48. [KEEP_ALIVE]: `KeepAlive`,
  49. [BASE_TRANSITION]: `BaseTransition`,
  50. [OPEN_BLOCK]: `openBlock`,
  51. [CREATE_BLOCK]: `createBlock`,
  52. [CREATE_ELEMENT_BLOCK]: `createElementBlock`,
  53. [CREATE_VNODE]: `createVNode`,
  54. [CREATE_ELEMENT_VNODE]: `createElementVNode`,
  55. [CREATE_COMMENT]: `createCommentVNode`,
  56. [CREATE_TEXT]: `createTextVNode`,
  57. [CREATE_STATIC]: `createStaticVNode`,
  58. [RESOLVE_COMPONENT]: `resolveComponent`,
  59. [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`,
  60. [RESOLVE_DIRECTIVE]: `resolveDirective`,
  61. [RESOLVE_FILTER]: `resolveFilter`,
  62. [WITH_DIRECTIVES]: `withDirectives`,
  63. [RENDER_LIST]: `renderList`,
  64. [RENDER_SLOT]: `renderSlot`,
  65. [CREATE_SLOTS]: `createSlots`,
  66. [TO_DISPLAY_STRING]: `toDisplayString`,
  67. [MERGE_PROPS]: `mergeProps`,
  68. [NORMALIZE_CLASS]: `normalizeClass`,
  69. [NORMALIZE_STYLE]: `normalizeStyle`,
  70. [NORMALIZE_PROPS]: `normalizeProps`,
  71. [GUARD_REACTIVE_PROPS]: `guardReactiveProps`,
  72. [TO_HANDLERS]: `toHandlers`,
  73. [CAMELIZE]: `camelize`,
  74. [CAPITALIZE]: `capitalize`,
  75. [TO_HANDLER_KEY]: `toHandlerKey`,
  76. [SET_BLOCK_TRACKING]: `setBlockTracking`,
  77. [PUSH_SCOPE_ID]: `pushScopeId`,
  78. [POP_SCOPE_ID]: `popScopeId`,
  79. [WITH_CTX]: `withCtx`,
  80. [UNREF]: `unref`,
  81. [IS_REF]: `isRef`,
  82. [WITH_MEMO]: `withMemo`,
  83. [IS_MEMO_SAME]: `isMemoSame`,
  84. }
  85. export function registerRuntimeHelpers(helpers: Record<symbol, string>) {
  86. Object.getOwnPropertySymbols(helpers).forEach(s => {
  87. helperNameMap[s] = helpers[s]
  88. })
  89. }