Simplify multiple addXXX methods into a single add method
This commit is contained in:
@ -22,20 +22,20 @@ describe("Packer", () => {
|
|||||||
heading: HeadingLevel.HEADING_1,
|
heading: HeadingLevel.HEADING_1,
|
||||||
});
|
});
|
||||||
|
|
||||||
file.addParagraph(
|
file.add(
|
||||||
new Paragraph({
|
new Paragraph({
|
||||||
text: "title",
|
text: "title",
|
||||||
heading: HeadingLevel.TITLE,
|
heading: HeadingLevel.TITLE,
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
file.addParagraph(heading);
|
file.add(heading);
|
||||||
file.addParagraph(
|
file.add(
|
||||||
new Paragraph({
|
new Paragraph({
|
||||||
text: "heading 2",
|
text: "heading 2",
|
||||||
heading: HeadingLevel.HEADING_2,
|
heading: HeadingLevel.HEADING_2,
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
file.addParagraph(paragraph);
|
file.add(paragraph);
|
||||||
|
|
||||||
packer = new Packer();
|
packer = new Packer();
|
||||||
});
|
});
|
||||||
|
@ -6,6 +6,7 @@ import { Formatter } from "export/formatter";
|
|||||||
import { File } from "./file";
|
import { File } from "./file";
|
||||||
import { Paragraph } from "./paragraph";
|
import { Paragraph } from "./paragraph";
|
||||||
import { Table } from "./table";
|
import { Table } from "./table";
|
||||||
|
import { TableOfContents } from "./table-of-contents";
|
||||||
|
|
||||||
describe("File", () => {
|
describe("File", () => {
|
||||||
describe("#constructor", () => {
|
describe("#constructor", () => {
|
||||||
@ -83,17 +84,17 @@ describe("File", () => {
|
|||||||
it("should call the underlying document's addParagraph", () => {
|
it("should call the underlying document's addParagraph", () => {
|
||||||
const file = new File();
|
const file = new File();
|
||||||
const spy = sinon.spy(file.Document, "addParagraph");
|
const spy = sinon.spy(file.Document, "addParagraph");
|
||||||
file.addParagraph(new Paragraph({}));
|
file.add(new Paragraph({}));
|
||||||
|
|
||||||
expect(spy.called).to.equal(true);
|
expect(spy.called).to.equal(true);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("#addTable", () => {
|
describe("#add", () => {
|
||||||
it("should call the underlying document's addTable", () => {
|
it("should call the underlying document's addTable", () => {
|
||||||
const wrapper = new File();
|
const wrapper = new File();
|
||||||
const spy = sinon.spy(wrapper.Document, "addTable");
|
const spy = sinon.spy(wrapper.Document, "addTable");
|
||||||
wrapper.addTable(
|
wrapper.add(
|
||||||
new Table({
|
new Table({
|
||||||
rows: 1,
|
rows: 1,
|
||||||
columns: 1,
|
columns: 1,
|
||||||
@ -102,25 +103,20 @@ describe("File", () => {
|
|||||||
|
|
||||||
expect(spy.called).to.equal(true);
|
expect(spy.called).to.equal(true);
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
describe("#addTableOfContents", () => {
|
|
||||||
it("should call the underlying document's addTableOfContents", () => {
|
it("should call the underlying document's addTableOfContents", () => {
|
||||||
const wrapper = new File();
|
const wrapper = new File();
|
||||||
const spy = sinon.spy(wrapper.Document, "addTableOfContents");
|
const spy = sinon.spy(wrapper.Document, "addTableOfContents");
|
||||||
// tslint:disable-next-line:no-any
|
wrapper.add(new TableOfContents());
|
||||||
wrapper.addTableOfContents({} as any);
|
|
||||||
|
|
||||||
expect(spy.called).to.equal(true);
|
expect(spy.called).to.equal(true);
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
describe("#addImage", () => {
|
|
||||||
it("should call the underlying document's addImage", () => {
|
it("should call the underlying document's addImage", () => {
|
||||||
const wrapper = new File();
|
const wrapper = new File();
|
||||||
const spy = sinon.spy(wrapper.Document, "addParagraph");
|
const spy = sinon.spy(wrapper.Document, "addParagraph");
|
||||||
// tslint:disable-next-line:no-any
|
// tslint:disable-next-line:no-any
|
||||||
wrapper.addImage({} as any);
|
wrapper.add(new Paragraph(""));
|
||||||
|
|
||||||
expect(spy.called).to.equal(true);
|
expect(spy.called).to.equal(true);
|
||||||
});
|
});
|
||||||
|
@ -15,7 +15,7 @@ import { IFileProperties } from "./file-properties";
|
|||||||
import { FooterWrapper, IDocumentFooter } from "./footer-wrapper";
|
import { FooterWrapper, IDocumentFooter } from "./footer-wrapper";
|
||||||
import { FootNotes } from "./footnotes";
|
import { FootNotes } from "./footnotes";
|
||||||
import { HeaderWrapper, IDocumentHeader } from "./header-wrapper";
|
import { HeaderWrapper, IDocumentHeader } from "./header-wrapper";
|
||||||
import { Image, Media } from "./media";
|
import { Media } from "./media";
|
||||||
import { Numbering } from "./numbering";
|
import { Numbering } from "./numbering";
|
||||||
import { Bookmark, Hyperlink, Paragraph } from "./paragraph";
|
import { Bookmark, Hyperlink, Paragraph } from "./paragraph";
|
||||||
import { Relationships } from "./relationships";
|
import { Relationships } from "./relationships";
|
||||||
@ -112,23 +112,19 @@ export class File {
|
|||||||
this.settings = new Settings();
|
this.settings = new Settings();
|
||||||
}
|
}
|
||||||
|
|
||||||
public addTableOfContents(toc: TableOfContents): File {
|
public add(item: Paragraph | Table | TableOfContents): File {
|
||||||
this.document.addTableOfContents(toc);
|
if (item instanceof Paragraph) {
|
||||||
return this;
|
this.document.addParagraph(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
public addParagraph(paragraph: Paragraph): File {
|
if (item instanceof Table) {
|
||||||
this.document.addParagraph(paragraph);
|
this.document.addTable(item);
|
||||||
return this;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public addTable(table: Table): File {
|
if (item instanceof TableOfContents) {
|
||||||
this.document.addTable(table);
|
this.document.addTableOfContents(item);
|
||||||
return this;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public addImage(image: Image): File {
|
|
||||||
this.document.addParagraph(image.Paragraph);
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,21 +7,19 @@ import { Paragraph } from "./paragraph";
|
|||||||
import { Table } from "./table";
|
import { Table } from "./table";
|
||||||
|
|
||||||
describe("HeaderWrapper", () => {
|
describe("HeaderWrapper", () => {
|
||||||
describe("#addParagraph", () => {
|
describe("#add", () => {
|
||||||
it("should call the underlying header's addParagraph", () => {
|
it("should call the underlying header's addChildElement for Paragraph", () => {
|
||||||
const wrapper = new HeaderWrapper(new Media(), 1);
|
const wrapper = new HeaderWrapper(new Media(), 1);
|
||||||
const spy = sinon.spy(wrapper.Header, "addParagraph");
|
const spy = sinon.spy(wrapper.Header, "addChildElement");
|
||||||
wrapper.addParagraph(new Paragraph({}));
|
wrapper.add(new Paragraph({}));
|
||||||
|
|
||||||
expect(spy.called).to.equal(true);
|
expect(spy.called).to.equal(true);
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
describe("#addTable", () => {
|
it("should call the underlying header's addChildElement for Table", () => {
|
||||||
it("should call the underlying header's addTable", () => {
|
|
||||||
const wrapper = new HeaderWrapper(new Media(), 1);
|
const wrapper = new HeaderWrapper(new Media(), 1);
|
||||||
const spy = sinon.spy(wrapper.Header, "addTable");
|
const spy = sinon.spy(wrapper.Header, "addChildElement");
|
||||||
wrapper.addTable(
|
wrapper.add(
|
||||||
new Table({
|
new Table({
|
||||||
rows: 1,
|
rows: 1,
|
||||||
columns: 1,
|
columns: 1,
|
||||||
@ -35,7 +33,7 @@ describe("HeaderWrapper", () => {
|
|||||||
describe("#addImage", () => {
|
describe("#addImage", () => {
|
||||||
it("should call the underlying header's addImage", () => {
|
it("should call the underlying header's addImage", () => {
|
||||||
const file = new HeaderWrapper(new Media(), 1);
|
const file = new HeaderWrapper(new Media(), 1);
|
||||||
const spy = sinon.spy(file.Header, "addParagraph");
|
const spy = sinon.spy(file.Header, "add");
|
||||||
// tslint:disable-next-line:no-any
|
// tslint:disable-next-line:no-any
|
||||||
file.addImage({} as any);
|
file.addImage({} as any);
|
||||||
|
|
||||||
|
@ -22,16 +22,14 @@ export class HeaderWrapper {
|
|||||||
this.relationships = new Relationships();
|
this.relationships = new Relationships();
|
||||||
}
|
}
|
||||||
|
|
||||||
public addParagraph(paragraph: Paragraph): void {
|
public add(item: Paragraph | Table): HeaderWrapper {
|
||||||
this.header.addParagraph(paragraph);
|
this.header.addChildElement(item);
|
||||||
}
|
|
||||||
|
|
||||||
public addTable(table: Table): void {
|
return this;
|
||||||
this.header.addTable(table);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public addImage(image: Image): HeaderWrapper {
|
public addImage(image: Image): HeaderWrapper {
|
||||||
this.header.addParagraph(image.Paragraph);
|
this.header.add(image.Paragraph);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,7 +45,7 @@ export class HeaderWrapper {
|
|||||||
): Paragraph {
|
): Paragraph {
|
||||||
const image = Media.addImage(this, buffer, width, height, drawingOptions);
|
const image = Media.addImage(this, buffer, width, height, drawingOptions);
|
||||||
const paragraph = new Paragraph(image);
|
const paragraph = new Paragraph(image);
|
||||||
this.addParagraph(paragraph);
|
this.add(paragraph);
|
||||||
|
|
||||||
return paragraph;
|
return paragraph;
|
||||||
}
|
}
|
||||||
|
@ -49,11 +49,7 @@ export class Header extends InitializableXmlComponent {
|
|||||||
return this.refId;
|
return this.refId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public addParagraph(paragraph: Paragraph): void {
|
public add(item: Paragraph | Table): void {
|
||||||
this.root.push(paragraph);
|
this.root.push(item);
|
||||||
}
|
|
||||||
|
|
||||||
public addTable(table: Table): void {
|
|
||||||
this.root.push(table);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user