packages/okam-build/lib/processor/template/serializer/index.js
function serializeTag(elem, opts) {
    // Handle SVG
    if (elem.name === 'svg') {
        opts = {decodeEntities: opts.decodeEntities, xmlMode: true};
    }

    let tag = '<' + elem.name;
    let attribs = serializeAttrs(elem.attribs, opts);

    if (attribs) {
        tag += ' ' + attribs;
    }

    let closeAllTag = opts.xmlMode;
    let isSingleTag = singleTag[elem.name];
    let hasChildren = elem.children && elem.children.length;
    let endTag = '</' + elem.name + '>';
    if (hasChildren) {
        tag += '>';
        tag += serializeDom(elem.children, opts);
        tag += endTag;
    }
    else if (closeAllTag || !isSingleTag) {
        if (isSingleTag || elem.isSelfClose) {
            tag += '/>';
        }
        else {
            tag += '>' + endTag;
        }
    }
    else {
        tag += '>';
    }

    return tag;
}
function serializeTag(elem, opts) {
    // Handle SVG
    if (elem.name === 'svg') {
        opts = {decodeEntities: opts.decodeEntities, xmlMode: true};
    }

    let tag = '<' + elem.name;
    let attribs = serializeAttrs(elem.attribs, opts);

    if (attribs) {
        tag += ' ' + attribs;
    }

    let closeAllTag = opts.xmlMode;
    let isSingleTag = singleTag[elem.name];
    let hasChildren = elem.children && elem.children.length;
    let endTag = '</' + elem.name + '>';
    if (hasChildren) {
        tag += '>';
        tag += serializeDom(elem.children, opts);
        tag += endTag;
    }
    else if (closeAllTag || !isSingleTag) {
        if (isSingleTag || elem.isSelfClose) {
            tag += '/>';
        }
        else {
            tag += '>' + endTag;
        }
    }
    else {
        tag += '>';
    }

    return tag;
}
function serializeTag ( elem , opts ) { // Handle SVG if ( elem . name === 'svg' ) { opts = { decodeEntities : opts . decodeEntities , xmlMode : true } ; } let tag = '<' + elem . name ; let attribs = serializeAttrs ( elem . attribs , opts ) ; if ( attribs ) { tag += ' ' + attribs ; } let closeAllTag = opts . xmlMode ; let isSingleTag = singleTag [ elem . name ] ; let hasChildren = elem . children && elem . children . length ; let endTag = '</' + elem . name + '>' ; if ( hasChildren ) { tag += '>' ; tag += serializeDom ( elem . children , opts ) ; tag += endTag ; } else if ( closeAllTag || ! isSingleTag ) { if ( isSingleTag || elem . isSelfClose ) { tag += '/>' ; } else { tag += '>' + endTag ; } } else { tag += '>' ; } return tag ; }
Serialize tag

@inner
@param {Object} elem the tag to serialize
@param {Object} opts the serialize options
@return {string}
Serialize tag