You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
611 B
22 lines
611 B
'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
|
|
|