Rework to register Document and add XMLSerializer

This commit is contained in:
Björn Harrtell
2019-11-13 22:54:56 +01:00
parent fc46166821
commit bdc20e0293
3 changed files with 34 additions and 15 deletions

View File

@@ -486,3 +486,27 @@ export function pushSerializeAndPop(object, serializersNS, nodeFactory, values,
serialize(serializersNS, nodeFactory, values, objectStack, opt_keys, opt_this);
return /** @type {O|undefined} */ (objectStack.pop());
}
let xmlSerializer_ = undefined;
/**
* Register a XMLSerializer. Can be used
* to inject a XMLSerializer where there is no globally available implementation.
*
* @param {XMLSerializer} xmlSerializer A XMLSerializer.
* @api
*/
export function registerXMLSerializer(xmlSerializer) {
xmlSerializer_ = xmlSerializer;
}
/**
* Get a document that should be used when creating nodes for XML serializations.
* @return {XMLSerializer} The XMLSerializer.
*/
export function getXMLSerializer() {
if (xmlSerializer_ === undefined && typeof XMLSerializer !== 'undefined') {
xmlSerializer_ = new XMLSerializer();
}
return xmlSerializer_;
}