'use strict' const implementation = { isTag: node => node !== undefined && 'name' in node, getAttributeValue: ( elem, name ) => { if( implementation.isTag( elem ) && elem.attribs ) return elem.attribs[ name ] }, getChildren: node => node.children, getName: elem => { if( implementation.isTag( elem ) ) return elem.name }, getParent: node => node.parent, getText: node => node.children.map( child => { if( child.text ) return child.text if( implementation.isTag( child ) ) return implementation.getText( child ) return '' }).join( '' ) } module.exports = implementation