12345678910111213141516171819202122232425262728293031323334 |
- /**
- * Parses a namespaced attribute name of the form (ns:)localName to an object,
- * given a default prefix to assume in case no explicit namespace is given.
- *
- * @param {String} name
- * @param {String} [defaultPrefix] the default prefix to take, if none is present.
- *
- * @return {Object} the parsed name
- */
- export function parseName(name, defaultPrefix) {
- var parts = name.split(/:/),
- localName, prefix;
- // no prefix (i.e. only local name)
- if (parts.length === 1) {
- localName = name;
- prefix = defaultPrefix;
- } else
- // prefix + local name
- if (parts.length === 2) {
- localName = parts[1];
- prefix = parts[0];
- } else {
- throw new Error('expected <prefix:localName> or <localName>, got ' + name);
- }
- name = (prefix ? prefix + ':' : '') + localName;
- return {
- name: name,
- prefix: prefix,
- localName: localName
- };
- }
|