import { getLocator } from 'locate-character'; import deindent from './utils/deindent.js'; import walkHtml from './utils/walkHtml.js'; import flattenReference from './utils/flattenReference.js'; function createRenderer ( fragment ) { return deindent` function ${fragment.name} ( target${fragment.useAnchor ? ', anchor' : ''} ) { ${fragment.initStatements.join( '\n\n' )} return { update: function ( ${fragment.contextChain.join( ', ' )} ) { ${fragment.updateStatements.join( '\n\n' )} }, teardown: function () { ${fragment.teardownStatements.join( '\n\n' )} } } } `; } export default function generate ( parsed, template ) { const locator = getLocator( template ); const renderers = []; const counters = { if: 0, each: 0 }; // TODO add contents of