// (c) Andrew Wei
'use strict';
import getElementRegistry from './getElementRegistry';
import assertType from '../helpers/assertType';
/**
* Creates a DOM element from the provided string.
*
* @param {string} value - String describing the DOM element.
*
* @return {Node} DOM element.
*
* @alias module:requiem~dom.createElement
*/
function createElement(value) {
if (!document) return null;
assertType(value, 'string', true, 'Value must be a string');
if (value.match(/^([a-z0-9]+-)+[a-z0-9]+$/)) {
return new (getElementRegistry(value))();
}
else {
let div = document.createElement('div');
if (value.indexOf('<') !== 0 && value.indexOf('>') !== (value.length - 1)) value = `<${value}>`;
div.innerHTML = value;
return div.firstChild;
}
}
export default createElement;