import { RenderTemplate, StringIndexedObject } from './rendering'; const renderList = ( data: T, template: RenderTemplate, name: string, id: number ): HTMLElement => { const parent = renderer( data, template ); parent.id = `${ name }--${ id }`; return parent; }; const renderer = ( data: T, template: RenderTemplate ): HTMLElement => { const parent = document.createElement( template.type ); for ( let i = 0; i < template.children.length; i++ ) { const element = template.children[i]!; parent.appendChild( renderer( data, element ) ); } if ( template.children.length === 0 ) { if ( template.attribute ) { parent.innerText = String( data[ template.attribute ] ); } else { parent.innerText = String( data ); } } return parent; }; export default { renderList };