Files
docx-js/ts/docx/xml-components/index.ts
2017-03-09 22:57:30 +00:00

29 lines
809 B
TypeScript

import * as _ from "lodash";
import { BaseXmlComponent } from "./base";
export { BaseXmlComponent };
export abstract class XmlComponent extends BaseXmlComponent {
protected root: Array<BaseXmlComponent | string>;
constructor(rootKey: string) {
super(rootKey);
this.root = new Array<BaseXmlComponent>();
}
public toXml(): object {
// What does 'ret' stand for? Retain? Return?
const ret = this.root.map((comp) => {
if (comp instanceof BaseXmlComponent) {
return comp.toXml();
}
return comp
}).filter((comp) => comp); // Exclude null, undefined, and empty strings
return {
[this.rootKey]: ret,
}
}
}
export * from "./attributes"
export * from "./default-attributes";