db5d07c6713d054f2755b04c8e6a877b5b26cd16bb30f7051b7491fb9af54de2edae0d6bdd79c0b1d332295ee3e1ae7a45a68586cef143a4a63757db869384 611 B

12345678910111213141516171819202122
  1. 'use strict'
  2. const implementation = {
  3. isTag: node => node !== undefined && 'name' in node,
  4. getAttributeValue: ( elem, name ) => {
  5. if( implementation.isTag( elem ) && elem.attribs ) return elem.attribs[ name ]
  6. },
  7. getChildren: node => node.children,
  8. getName: elem => {
  9. if( implementation.isTag( elem ) ) return elem.name
  10. },
  11. getParent: node => node.parent,
  12. getText: node => node.children.map( child => {
  13. if( child.text ) return child.text
  14. if( implementation.isTag( child ) ) return implementation.getText( child )
  15. return ''
  16. }).join( '' )
  17. }
  18. module.exports = implementation