"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseFragmentsWithCache=parseFragmentsWithCache,exports.parseTemplate=parseTemplate,exports.parseStyle=parseStyle,exports.parseScript=parseScript;var _parse=_interopRequireDefault(require("parse5")),_template=_interopRequireDefault(require("./template")),_style=_interopRequireDefault(require("./style")),_script=_interopRequireDefault(require("./script")),_utils=require("./utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _formatFragment(e,t){let r,a,s,n;const o={};if(t.__location){const e=t.__location;e.startTag&&e.endTag?(r=e.startTag.endOffset||0,a=e.endTag.startOffset||0):(r=e.startOffset||0,a=e.endOffset||0),s=e.line,n=e.col}else r=a=s=n=0;return t.attrs&&t.attrs.length&&t.attrs.forEach((function(e){o[e.name]=e.value})),{type:t.nodeName,attrs:o,content:e.substring(r,a),location:{start:r,end:a,line:s,column:n}}}function parseFragments(e,t){const r={import:[],template:[],style:[],script:[]};return _parse.default.parseFragment(e,{treeAdapter:_parse.default.treeAdapters.default,locationInfo:!0}).childNodes.forEach(a=>{const s=_formatFragment(e,a);if(r[a.nodeName]&&r[a.nodeName].push(s),"import"===a.nodeName&&a.__location&&!a.__location.endTag)throw new Error(`${t} : <import> 组件缺少闭合标签,请检查 @${s.location.line} : ${s.location.column}`)}),r}const fragsCache=new Map;function parseFragmentsWithCache(e,t){return fragsCache.has(t)&&fragsCache.get(t).source===e||fragsCache.set(t,{source:e,frags:parseFragments(e,t)}),fragsCache.get(t).frags}function parseTemplate(e,t){const r=_template.default.parse(e,t),{jsonTemplate:a,log:s,depFiles:n}=r;return{parsed:(0,_utils.serialize)(a,2),log:s,depFiles:n}}function parseStyle(e){const t=_style.default.parse(e),{jsonStyle:r,depList:a,log:s,depFiles:n}=t;return{parsed:JSON.stringify(r,null,2),depList:a,log:s,depFiles:n,jsonStyle:r}}function parseScript(e){return{parsed:_script.default.parse(e)}}
|