Refactor xml component into own class
This commit is contained in:
@ -1,27 +1,3 @@
|
|||||||
import { BaseXmlComponent } from "./base";
|
export * from "./xml-component";
|
||||||
import { IXmlableObject } from "./xmlable-object";
|
|
||||||
export { BaseXmlComponent };
|
|
||||||
|
|
||||||
export abstract class XmlComponent extends BaseXmlComponent {
|
|
||||||
protected root: Array<BaseXmlComponent | string>;
|
|
||||||
|
|
||||||
constructor(rootKey: string) {
|
|
||||||
super(rootKey);
|
|
||||||
this.root = new Array<BaseXmlComponent>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public prepForXml(): IXmlableObject {
|
|
||||||
const children = this.root.map((comp) => {
|
|
||||||
if (comp instanceof BaseXmlComponent) {
|
|
||||||
return comp.prepForXml();
|
|
||||||
}
|
|
||||||
return comp;
|
|
||||||
}).filter((comp) => comp); // Exclude null, undefined, and empty strings
|
|
||||||
return {
|
|
||||||
[this.rootKey]: children,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export * from "./attributes";
|
export * from "./attributes";
|
||||||
export * from "./default-attributes";
|
export * from "./default-attributes";
|
||||||
|
24
ts/docx/xml-components/xml-component.ts
Normal file
24
ts/docx/xml-components/xml-component.ts
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import { BaseXmlComponent } from "./base";
|
||||||
|
import { IXmlableObject } from "./xmlable-object";
|
||||||
|
export { BaseXmlComponent };
|
||||||
|
|
||||||
|
export abstract class XmlComponent extends BaseXmlComponent {
|
||||||
|
protected root: Array<BaseXmlComponent | string>;
|
||||||
|
|
||||||
|
constructor(rootKey: string) {
|
||||||
|
super(rootKey);
|
||||||
|
this.root = new Array<BaseXmlComponent>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public prepForXml(): IXmlableObject {
|
||||||
|
const children = this.root.map((comp) => {
|
||||||
|
if (comp instanceof BaseXmlComponent) {
|
||||||
|
return comp.prepForXml();
|
||||||
|
}
|
||||||
|
return comp;
|
||||||
|
}).filter((comp) => comp); // Exclude null, undefined, and empty strings
|
||||||
|
return {
|
||||||
|
[this.rootKey]: children,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user