feat: transfer comments property to File CoreProperties like numbering.

This commit is contained in:
Chen Yuncai
2022-03-07 20:02:14 +08:00
parent b2a09b512f
commit b81086ab7a
7 changed files with 32 additions and 25 deletions

View File

@ -5,6 +5,7 @@ import { File } from "file";
import { Formatter } from "../formatter";
import { ImageReplacer } from "./image-replacer";
import { NumberingReplacer } from "./numbering-replacer";
import { PrettityType } from "./packer";
interface IXmlifyedFile {
readonly data: string;
@ -42,7 +43,7 @@ export class Compiler {
this.numberingReplacer = new NumberingReplacer();
}
public compile(file: File, prettifyXml?: boolean | string): JSZip {
public compile(file: File, prettifyXml?: boolean | PrettityType): JSZip {
const zip = new JSZip();
const xmlifiedFileMapping = this.xmlifyFile(file, prettifyXml);
const map = new Map<string, IXmlifyedFile | IXmlifyedFile[]>(Object.entries(xmlifiedFileMapping));
@ -65,7 +66,7 @@ export class Compiler {
return zip;
}
private xmlifyFile(file: File, prettify?: boolean | string): IXmlifyedFileMapping {
private xmlifyFile(file: File, prettify?: boolean | PrettityType): IXmlifyedFileMapping {
const documentRelationshipCount = file.Document.Relationships.RelationshipCount + 1;
const documentXmlData = xml(

View File

@ -1,8 +1,18 @@
import { File } from "file";
import { Compiler } from "./next-compiler";
/**
* Use blanks to prettify
*/
export enum PrettityType {
NONE = "",
WITH_2_BLANKS = " ",
WITH_4_BLANKS = " ",
WITH_TAB = "\t"
}
export class Packer {
public static async toBuffer(file: File, prettify?: boolean | string): Promise<Buffer> {
public static async toBuffer(file: File, prettify?: boolean | PrettityType): Promise<Buffer> {
const zip = this.compiler.compile(file, prettify);
const zipData = await zip.generateAsync({
type: "nodebuffer",
@ -13,7 +23,7 @@ export class Packer {
return zipData;
}
public static async toBase64String(file: File, prettify?: boolean): Promise<string> {
public static async toBase64String(file: File, prettify?: boolean | PrettityType): Promise<string> {
const zip = this.compiler.compile(file, prettify);
const zipData = await zip.generateAsync({
type: "base64",
@ -24,7 +34,7 @@ export class Packer {
return zipData;
}
public static async toBlob(file: File, prettify?: boolean): Promise<Blob> {
public static async toBlob(file: File, prettify?: boolean | PrettityType): Promise<Blob> {
const zip = this.compiler.compile(file, prettify);
const zipData = await zip.generateAsync({
type: "blob",