12345678910111213141516171819202122232425262728293031323334353637 |
- /* @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
- }
|