fixing tests and formatter
This commit is contained in:
@ -22,7 +22,6 @@ export class Paragraph extends XmlComponent {
|
|||||||
|
|
||||||
constructor(text?: string) {
|
constructor(text?: string) {
|
||||||
super("w:p");
|
super("w:p");
|
||||||
this.root.push(new Attributes());
|
|
||||||
this.properties = new ParagraphProperties();
|
this.properties = new ParagraphProperties();
|
||||||
this.root.push(this.properties);
|
this.root.push(this.properties);
|
||||||
this.root.push(new TextRun(text));
|
this.root.push(new TextRun(text));
|
||||||
|
@ -4,8 +4,9 @@ export class Formatter {
|
|||||||
|
|
||||||
format(input: any): Object {
|
format(input: any): Object {
|
||||||
this.deepTraverseJson(input, (parent, value, key) => {
|
this.deepTraverseJson(input, (parent, value, key) => {
|
||||||
if (isNaN(key)) {
|
if (isNaN(key) && key !== "rootKey") {
|
||||||
var newKey = this.getReplacementKey(parent, key);
|
var newKey = parent.rootKey;
|
||||||
|
console.log(key);
|
||||||
if (newKey !== key) {
|
if (newKey !== key) {
|
||||||
parent[newKey] = parent[key];
|
parent[newKey] = parent[key];
|
||||||
delete parent[key];
|
delete parent[key];
|
||||||
@ -30,6 +31,9 @@ export class Formatter {
|
|||||||
if (key === "xmlKeys") {
|
if (key === "xmlKeys") {
|
||||||
delete parent[key];
|
delete parent[key];
|
||||||
}
|
}
|
||||||
|
if (key === "rootKey") {
|
||||||
|
delete parent[key];
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return newJson
|
return newJson
|
||||||
@ -42,21 +46,11 @@ export class Formatter {
|
|||||||
|
|
||||||
private deepTraverseJson(json: Object, lambda: (json: any, value: any, key: any) => void): void {
|
private deepTraverseJson(json: Object, lambda: (json: any, value: any, key: any) => void): void {
|
||||||
_.forOwn(json, (value, key) => {
|
_.forOwn(json, (value, key) => {
|
||||||
if (_.isObject(value) && key !== "xmlKeys") {
|
if (_.isObject(value) && key !== "xmlKeys" && key != "rootKey") {
|
||||||
this.deepTraverseJson(value, lambda);
|
this.deepTraverseJson(value, lambda);
|
||||||
}
|
}
|
||||||
lambda(json, value, key);
|
lambda(json, value, key);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private getReplacementKey(input: any, key: string): string {
|
|
||||||
var newKey = input.xmlKeys[key];
|
|
||||||
|
|
||||||
if (newKey !== undefined) {
|
|
||||||
return newKey;
|
|
||||||
} else {
|
|
||||||
return key;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
@ -36,11 +36,12 @@ describe("Formatter", () => {
|
|||||||
assert(stringifiedJson.indexOf("xmlKeys") < 0);
|
assert(stringifiedJson.indexOf("xmlKeys") < 0);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should format simple paragraph with bold text", () => {
|
it.only("should format simple paragraph with bold text", () => {
|
||||||
var paragraph = new docx.Paragraph();
|
var paragraph = new docx.Paragraph();
|
||||||
paragraph.addText(new docx.TextRun("test").bold());
|
paragraph.addText(new docx.TextRun("test").bold());
|
||||||
var newJson = formatter.format(paragraph);
|
var newJson = formatter.format(paragraph);
|
||||||
newJson = jsonify(newJson);
|
newJson = jsonify(newJson);
|
||||||
|
console.log(JSON.stringify(newJson, null, " "));
|
||||||
assert.isDefined(newJson["w:p"][3]["w:r"][0]["w:rPr"][0]["w:b"][0]["_attr"]["w:val"]);
|
assert.isDefined(newJson["w:p"][3]["w:r"][0]["w:rPr"][0]["w:b"][0]["_attr"]["w:val"]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ describe("Paragraph", () => {
|
|||||||
paragraph.heading1();
|
paragraph.heading1();
|
||||||
var newJson = jsonify(paragraph);
|
var newJson = jsonify(paragraph);
|
||||||
|
|
||||||
assert(newJson.p[1].pPr[1].pStyle[0]._attr.val === "Heading1");
|
assert(newJson.root[1].root[1].root[0]._attr.val === "Heading1");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user