refactor: move dom tag config to shared
Otherwise runtime-dom cjs & esm builds will import compiler-dom
This commit is contained in:
35
packages/shared/src/domTagConfig.ts
Normal file
35
packages/shared/src/domTagConfig.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
// These tag configs are shared between compiler-dom and runtime-dom, so they
|
||||
// must be extracted in shared to avoid creating a dependency between the two.
|
||||
import { makeMap } from './makeMap'
|
||||
|
||||
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element
|
||||
const HTML_TAGS =
|
||||
'html,body,base,head,link,meta,style,title,address,article,aside,footer,' +
|
||||
'header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,' +
|
||||
'figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,' +
|
||||
'data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,' +
|
||||
'time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,' +
|
||||
'canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,' +
|
||||
'th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,' +
|
||||
'option,output,progress,select,textarea,details,dialog,menu,menuitem,' +
|
||||
'summary,content,element,shadow,template,blockquote,iframe,tfoot'
|
||||
|
||||
// https://developer.mozilla.org/en-US/docs/Web/SVG/Element
|
||||
const SVG_TAGS =
|
||||
'svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,' +
|
||||
'defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,' +
|
||||
'feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,' +
|
||||
'feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,' +
|
||||
'feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,' +
|
||||
'fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,' +
|
||||
'foreignObject,g,hatch,hatchpath,image,line,lineGradient,marker,mask,' +
|
||||
'mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,' +
|
||||
'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +
|
||||
'text,textPath,title,tspan,unknown,use,view'
|
||||
|
||||
const VOID_TAGS =
|
||||
'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr'
|
||||
|
||||
export const isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS)
|
||||
export const isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS)
|
||||
export const isVoidTag = /*#__PURE__*/ makeMap(VOID_TAGS)
|
||||
@@ -2,8 +2,9 @@ import { makeMap } from './makeMap'
|
||||
|
||||
export { makeMap }
|
||||
export * from './patchFlags'
|
||||
export { isGloballyWhitelisted } from './globalsWhitelist'
|
||||
export { generateCodeFrame } from './codeframe'
|
||||
export * from './globalsWhitelist'
|
||||
export * from './codeframe'
|
||||
export * from './domTagConfig'
|
||||
|
||||
export const EMPTY_OBJ: { readonly [key: string]: any } = __DEV__
|
||||
? Object.freeze({})
|
||||
|
||||
Reference in New Issue
Block a user