When working on Electron, you may have the same code executed in the renderer process and in the master/node process.
It could be an issue if you have to manage XML :
- Which XML libraries to use in a node process ?
- How code could be the same in both contexts (renderer, node) ?
- Impact of the XML libraries in the size of the browserify'ied files ?
Many browser supports natively XML features like DOMParser, XMLSerializer,... it would be a shame to not use Chrome's implementations when hosted in a renderer process.
Purposes of this package are :
- whatever the context, provide a common API for accessing XM features
- when loaded in a node context
- when loaded in a renderer context
- fallbacks to native implementation and prevent xmldom and xmlpath to be inlined by browserify
;;if XMLFeatures.getParserErrorxmlDoc;assertentityResult.nodeType === XMLFeatures.Node.ELEMENT_NODE...;...;;
You have to use proxy to be redirected to the right class factory according to the context :
- (common-xml-features).XMLSerializer Other objects like Node, Element, Document are pure interfaces and are created through methods of classes above.
Some interfaces are exported as well :
A helper function (experimental, returned value is not yet defined) for checking if the document is a content
- (common-xml-features).getParserError You can check if it returns null (no error) or not (parsing error).
- Support another browsers : IE, Edge, Safari, ...