const {
|
IDENTIFIER_ATTR
|
} = require('../../../constants')
|
|
const {
|
isSimpleObjectExpression,
|
hasEscapeQuote
|
} = require('../../../util')
|
|
const getMemberExpr = require('../member-expr')
|
|
function checkObjectExpression (path) {
|
return path.isObjectExpression() && !isSimpleObjectExpression(path.node)
|
}
|
|
module.exports = function processAttrs (paths, path, state, isComponent, tagName) {
|
const attrsPath = paths.attrs
|
if (attrsPath) {
|
attrsPath.get('value.properties').forEach(propertyPath => {
|
const valuePath = propertyPath.get('value')
|
// 对于简单的ObjectExpression不再单独处理,改为在转换temlplte时用()包裹(微信、QQ)
|
// 属性中包含转义引号时部分小程序平台报错或显示异常
|
if (checkObjectExpression(valuePath) || hasEscapeQuote(valuePath)) {
|
valuePath.replaceWith(getMemberExpr(path, IDENTIFIER_ATTR, valuePath.node, state))
|
}
|
})
|
}
|
return []
|
}
|