import {isObject} from '@riotjs/util/checks' /** * Find whether there is html code outside of the root node * @param {RiotParser.Node} root - node generated by the riot compiler * @param {string} code - riot tag source code * @param {Function} parse - riot parser function * @returns {boolean} true if extra markup is detected */ export default function hasHTMLOutsideRootNode(root, code, parse) { const additionalCode = root ? [ // head code.substr(0, root.start), // tail code.substr(root.end, code.length) ].join('').trim() : '' if (additionalCode) { // if there are parsing errors we assume that there are no html // tags outside of the root node try { const { template, javascript, css } = parse(additionalCode).output return [template, javascript, css].some(isObject) } catch (error) { return false } } return false }