diff --git a/src/export/packer/packer.spec.ts b/src/export/packer/packer.spec.ts index 944b5892e2..201f5eb38d 100644 --- a/src/export/packer/packer.spec.ts +++ b/src/export/packer/packer.spec.ts @@ -22,20 +22,20 @@ describe("Packer", () => { heading: HeadingLevel.HEADING_1, }); - file.addParagraph( + file.add( new Paragraph({ text: "title", heading: HeadingLevel.TITLE, }), ); - file.addParagraph(heading); - file.addParagraph( + file.add(heading); + file.add( new Paragraph({ text: "heading 2", heading: HeadingLevel.HEADING_2, }), ); - file.addParagraph(paragraph); + file.add(paragraph); packer = new Packer(); }); diff --git a/src/file/file.spec.ts b/src/file/file.spec.ts index d406070443..6b0b7aa251 100644 --- a/src/file/file.spec.ts +++ b/src/file/file.spec.ts @@ -6,6 +6,7 @@ import { Formatter } from "export/formatter"; import { File } from "./file"; import { Paragraph } from "./paragraph"; import { Table } from "./table"; +import { TableOfContents } from "./table-of-contents"; describe("File", () => { describe("#constructor", () => { @@ -83,17 +84,17 @@ describe("File", () => { it("should call the underlying document's addParagraph", () => { const file = new File(); const spy = sinon.spy(file.Document, "addParagraph"); - file.addParagraph(new Paragraph({})); + file.add(new Paragraph({})); expect(spy.called).to.equal(true); }); }); - describe("#addTable", () => { + describe("#add", () => { it("should call the underlying document's addTable", () => { const wrapper = new File(); const spy = sinon.spy(wrapper.Document, "addTable"); - wrapper.addTable( + wrapper.add( new Table({ rows: 1, columns: 1, @@ -102,25 +103,20 @@ describe("File", () => { expect(spy.called).to.equal(true); }); - }); - describe("#addTableOfContents", () => { it("should call the underlying document's addTableOfContents", () => { const wrapper = new File(); const spy = sinon.spy(wrapper.Document, "addTableOfContents"); - // tslint:disable-next-line:no-any - wrapper.addTableOfContents({} as any); + wrapper.add(new TableOfContents()); expect(spy.called).to.equal(true); }); - }); - describe("#addImage", () => { it("should call the underlying document's addImage", () => { const wrapper = new File(); const spy = sinon.spy(wrapper.Document, "addParagraph"); // tslint:disable-next-line:no-any - wrapper.addImage({} as any); + wrapper.add(new Paragraph("")); expect(spy.called).to.equal(true); }); diff --git a/src/file/file.ts b/src/file/file.ts index 4b9fa58514..26848c8e5b 100644 --- a/src/file/file.ts +++ b/src/file/file.ts @@ -15,7 +15,7 @@ import { IFileProperties } from "./file-properties"; import { FooterWrapper, IDocumentFooter } from "./footer-wrapper"; import { FootNotes } from "./footnotes"; import { HeaderWrapper, IDocumentHeader } from "./header-wrapper"; -import { Image, Media } from "./media"; +import { Media } from "./media"; import { Numbering } from "./numbering"; import { Bookmark, Hyperlink, Paragraph } from "./paragraph"; import { Relationships } from "./relationships"; @@ -112,23 +112,19 @@ export class File { this.settings = new Settings(); } - public addTableOfContents(toc: TableOfContents): File { - this.document.addTableOfContents(toc); - return this; - } + public add(item: Paragraph | Table | TableOfContents): File { + if (item instanceof Paragraph) { + this.document.addParagraph(item); + } - public addParagraph(paragraph: Paragraph): File { - this.document.addParagraph(paragraph); - return this; - } + if (item instanceof Table) { + this.document.addTable(item); + } - public addTable(table: Table): File { - this.document.addTable(table); - return this; - } + if (item instanceof TableOfContents) { + this.document.addTableOfContents(item); + } - public addImage(image: Image): File { - this.document.addParagraph(image.Paragraph); return this; } diff --git a/src/file/header-wrapper.spec.ts b/src/file/header-wrapper.spec.ts index 202f034f13..0640ca41f5 100644 --- a/src/file/header-wrapper.spec.ts +++ b/src/file/header-wrapper.spec.ts @@ -7,21 +7,19 @@ import { Paragraph } from "./paragraph"; import { Table } from "./table"; describe("HeaderWrapper", () => { - describe("#addParagraph", () => { - it("should call the underlying header's addParagraph", () => { + describe("#add", () => { + it("should call the underlying header's addChildElement for Paragraph", () => { const wrapper = new HeaderWrapper(new Media(), 1); - const spy = sinon.spy(wrapper.Header, "addParagraph"); - wrapper.addParagraph(new Paragraph({})); + const spy = sinon.spy(wrapper.Header, "addChildElement"); + wrapper.add(new Paragraph({})); expect(spy.called).to.equal(true); }); - }); - describe("#addTable", () => { - it("should call the underlying header's addTable", () => { + it("should call the underlying header's addChildElement for Table", () => { const wrapper = new HeaderWrapper(new Media(), 1); - const spy = sinon.spy(wrapper.Header, "addTable"); - wrapper.addTable( + const spy = sinon.spy(wrapper.Header, "addChildElement"); + wrapper.add( new Table({ rows: 1, columns: 1, @@ -35,7 +33,7 @@ describe("HeaderWrapper", () => { describe("#addImage", () => { it("should call the underlying header's addImage", () => { 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 file.addImage({} as any); diff --git a/src/file/header-wrapper.ts b/src/file/header-wrapper.ts index 4bc4134f08..bd445dbe9f 100644 --- a/src/file/header-wrapper.ts +++ b/src/file/header-wrapper.ts @@ -22,16 +22,14 @@ export class HeaderWrapper { this.relationships = new Relationships(); } - public addParagraph(paragraph: Paragraph): void { - this.header.addParagraph(paragraph); - } + public add(item: Paragraph | Table): HeaderWrapper { + this.header.addChildElement(item); - public addTable(table: Table): void { - this.header.addTable(table); + return this; } public addImage(image: Image): HeaderWrapper { - this.header.addParagraph(image.Paragraph); + this.header.add(image.Paragraph); return this; } @@ -47,7 +45,7 @@ export class HeaderWrapper { ): Paragraph { const image = Media.addImage(this, buffer, width, height, drawingOptions); const paragraph = new Paragraph(image); - this.addParagraph(paragraph); + this.add(paragraph); return paragraph; } diff --git a/src/file/header/header.ts b/src/file/header/header.ts index 67c889446d..8c63a6723c 100644 --- a/src/file/header/header.ts +++ b/src/file/header/header.ts @@ -49,11 +49,7 @@ export class Header extends InitializableXmlComponent { return this.refId; } - public addParagraph(paragraph: Paragraph): void { - this.root.push(paragraph); - } - - public addTable(table: Table): void { - this.root.push(table); + public add(item: Paragraph | Table): void { + this.root.push(item); } }