/* @flow */ import { cached, camelize } from 'shared/util' const normalize = cached(camelize) function normalizeKeyName (str: string): string { if (str.match(/^v\-/)) { return str.replace(/(v-[a-z\-]+\:)([a-z\-]+)$/i, ($, directive, prop) => { return directive + normalize(prop) }) } return normalize(str) } function transformNode (el: ASTElement) { if (Array.isArray(el.attrsList)) { el.attrsList.forEach(attr => { if (attr.name && attr.name.match(/\-/)) { const realName = normalizeKeyName(attr.name) if (el.attrsMap) { el.attrsMap[realName] = el.attrsMap[attr.name] delete el.attrsMap[attr.name] } if (el.rawAttrsMap && el.rawAttrsMap[attr.name]) { el.rawAttrsMap[realName] = el.rawAttrsMap[attr.name] // $flow-disable-line delete el.rawAttrsMap[attr.name] } attr.name = realName } }) } } export default { transformNode }