@stamhoofd/excel-writer 2.42.0 → 2.42.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"exportToExcel.d.ts","sourceRoot":"","sources":["../../src/exportToExcel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAI3F,wBAAsB,aAAa,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE;IACnF,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;IAChD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;CACrC,iBAoBA"}
1
+ {"version":3,"file":"exportToExcel.d.ts","sourceRoot":"","sources":["../../src/exportToExcel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAI3F,wBAAsB,aAAa,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE;IACnF,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;IAChD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;CACrC,iBAqBA"}
@@ -16,6 +16,7 @@ async function exportToExcel({ definitions, writer, dataGenerator, filter }) {
16
16
  await writer.close();
17
17
  }
18
18
  catch (e) {
19
+ console.error('Error while exporting to excel', e, 'Aborting writer');
19
20
  await writer.abort();
20
21
  throw e;
21
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"exportToExcel.js","sourceRoot":"","sources":["../../src/exportToExcel.ts"],"names":[],"mappings":";;AAIA,sCAyBC;AA5BD,6DAA0D;AAC1D,uDAAoD;AAE7C,KAAK,UAAU,aAAa,CAAI,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAKlF;IACG,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,uCAAkB,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEzE,4FAA4F;QAC5F,MAAM,WAAW,GAAG,IAAI,iCAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAExD,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAEzB,8BAA8B;QAC9B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACrC,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,EAAE,CAAC;QACP,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,CAAC,CAAC;IACZ,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"exportToExcel.js","sourceRoot":"","sources":["../../src/exportToExcel.ts"],"names":[],"mappings":";;AAIA,sCA0BC;AA7BD,6DAA0D;AAC1D,uDAAoD;AAE7C,KAAK,UAAU,aAAa,CAAI,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAKlF;IACG,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,uCAAkB,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEzE,4FAA4F;QAC5F,MAAM,WAAW,GAAG,IAAI,iCAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAExD,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAEzB,8BAA8B;QAC9B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACrC,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACtE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,CAAC,CAAC;IACZ,CAAC;AACL,CAAC"}
@@ -1,24 +1,20 @@
1
- import archiver from 'archiver';
2
1
  import { ZipWriterAdapter } from '../interfaces';
2
+ import { Writable } from 'node:stream';
3
3
  export declare class ArchiverWriterAdapter implements ZipWriterAdapter {
4
- writer: WritableStream<Buffer>;
5
- archive: archiver.Archiver;
6
- finalizePromise: Promise<void> | undefined;
7
- /**
8
- * All pending writes we'll need to await
9
- */
10
- pendingFileWrites: Promise<any>[];
11
- /**
12
- * @param writer The data of the zip file will be written to this stream
13
- */
14
- constructor(writer: WritableStream<Buffer>);
4
+ output: Writable;
5
+ fileStreams: {
6
+ tmpFile: string;
7
+ fileName: string;
8
+ stream: WritableStream<Buffer>;
9
+ }[];
10
+ constructor(output: Writable);
15
11
  addFile(name: string): Promise<WritableStream<Buffer>>;
16
12
  addDirectory(name: string): Promise<void>;
17
13
  ready(): Promise<void>;
18
14
  /**
19
15
  * Note: make sure all writeable streams are closed before calling this
20
16
  */
21
- close(): Promise<void | undefined>;
17
+ close(): Promise<void>;
22
18
  abort(): Promise<void>;
23
19
  }
24
20
  //# sourceMappingURL=ArchiverWriterAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArchiverWriterAdapter.d.ts","sourceRoot":"","sources":["../../../../src/stream-writer/adapters/ArchiverWriterAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,qBAAa,qBAAsB,YAAW,gBAAgB;IAC1D,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAE3C;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAM;IAEvC;;OAEG;gBACS,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC;IAyC1C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAqBhD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,KAAK;IAKX;;OAEG;IACG,KAAK;IAIL,KAAK;CAOd"}
1
+ {"version":3,"file":"ArchiverWriterAdapter.d.ts","sourceRoot":"","sources":["../../../../src/stream-writer/adapters/ArchiverWriterAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAMvC,qBAAa,qBAAsB,YAAW,gBAAgB;IAC1D,MAAM,EAAE,QAAQ,CAAC;IACjB,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;KAAE,EAAE,CAAM;gBAE9E,MAAM,EAAE,QAAQ;IAOtB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAsBtD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,KAAK;IAIX;;OAEG;IACG,KAAK;IAiDL,KAAK;CAoBd"}
@@ -2,36 +2,51 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ArchiverWriterAdapter = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const archiver_1 = tslib_1.__importDefault(require("archiver"));
6
5
  const node_stream_1 = require("node:stream");
6
+ const os_1 = tslib_1.__importDefault(require("os"));
7
+ const uuid_1 = require("uuid");
8
+ const node_fs_1 = tslib_1.__importDefault(require("node:fs"));
9
+ const archiver_1 = tslib_1.__importDefault(require("archiver"));
7
10
  class ArchiverWriterAdapter {
8
- writer;
9
- archive;
10
- finalizePromise;
11
- /**
12
- * All pending writes we'll need to await
13
- */
14
- pendingFileWrites = [];
11
+ output;
12
+ fileStreams = [];
13
+ constructor(output) {
14
+ this.output = output;
15
+ // setup
16
+ // todo
17
+ }
18
+ async addFile(name) {
19
+ const tmpDir = os_1.default.tmpdir() + '/stamhoofd-excel-writer';
20
+ // generate random filename
21
+ const tmpFilename = 'excel_writer_' + (0, uuid_1.v4)();
22
+ const filePath = tmpDir + '/' + tmpFilename;
23
+ await node_fs_1.default.promises.mkdir(tmpDir, { recursive: true });
24
+ const s = node_fs_1.default.createWriteStream(filePath, 'binary');
25
+ s.on('close', () => {
26
+ console.log('PassThrough closed file: File written to disk', filePath);
27
+ });
28
+ const webStream = node_stream_1.Writable.toWeb(s);
29
+ this.fileStreams.push({ tmpFile: filePath, fileName: name, stream: webStream });
30
+ return Promise.resolve(webStream);
31
+ }
32
+ async addDirectory(name) {
33
+ // Empty directories are not supported by archiver
34
+ // Directories should be created automatically when using addFile in this adapter
35
+ }
36
+ async ready() {
37
+ return Promise.resolve();
38
+ }
15
39
  /**
16
- * @param writer The data of the zip file will be written to this stream
40
+ * Note: make sure all writeable streams are closed before calling this
17
41
  */
18
- constructor(writer) {
19
- const output = node_stream_1.Writable.fromWeb(writer);
20
- output.on('close', () => {
21
- console.log('Archiver has been finalized and the output file descriptor has closed: ' + this.archive.pointer() + ' total bytes');
22
- });
23
- output.on('end', function () {
24
- console.log('Data has been drained');
25
- });
26
- output.on('error', (e) => {
27
- console.error('Error in output stream', e);
28
- throw e;
29
- });
30
- this.archive = (0, archiver_1.default)('zip', {
42
+ async close() {
43
+ // All streams should be closed now
44
+ const archive = (0, archiver_1.default)('zip', {
31
45
  zlib: { level: 9 }, // Sets the compression level.
46
+ highWaterMark: 1,
32
47
  });
33
48
  // good practice to catch warnings (ie stat failures and other non-blocking errors)
34
- this.archive.on('warning', function (err) {
49
+ archive.on('warning', function (err) {
35
50
  if (err.code === 'ENOENT') {
36
51
  console.warn(err);
37
52
  }
@@ -41,49 +56,47 @@ class ArchiverWriterAdapter {
41
56
  }
42
57
  });
43
58
  // good practice to catch this error explicitly
44
- this.archive.on('error', function (err) {
59
+ archive.on('error', function (err) {
45
60
  console.error('Archiver error', err);
46
61
  throw err;
47
62
  });
48
63
  // pipe archive data to the file
49
- this.archive.pipe(output);
50
- }
51
- addFile(name) {
52
- // Create a new writeable stream that writes to a reader that we'll pass to zipWriter
53
- const stream = new node_stream_1.PassThrough({});
54
- stream.on('end', () => {
55
- console.log('Finished file', name);
56
- });
57
- stream.on('close', () => {
58
- console.log('Closed file stream', name);
59
- });
60
- stream.on('error', (err) => {
61
- console.error('Error in PassThrough stream', name, err);
62
- // throw err;
63
- });
64
- this.archive.append(stream, { name });
65
- return Promise.resolve(node_stream_1.Writable.toWeb(stream));
66
- }
67
- async addDirectory(name) {
68
- // Empty directories are not supported by archiver
69
- // Directories should be created automatically when using addFile in this adapter
70
- }
71
- async ready() {
72
- this.finalizePromise = this.archive.finalize();
73
- return Promise.resolve();
74
- }
75
- /**
76
- * Note: make sure all writeable streams are closed before calling this
77
- */
78
- async close() {
79
- return await this.finalizePromise;
64
+ archive.pipe(this.output);
65
+ // Pass to destionation stream
66
+ for (const { tmpFile, fileName } of this.fileStreams) {
67
+ console.log('File written to disk', tmpFile);
68
+ // Create read stream
69
+ archive.append(node_fs_1.default.createReadStream(tmpFile), { name: fileName });
70
+ }
71
+ await archive.finalize();
72
+ // Clear all tmp files
73
+ for (const { tmpFile } of this.fileStreams) {
74
+ try {
75
+ await node_fs_1.default.promises.unlink(tmpFile);
76
+ }
77
+ catch (e) {
78
+ console.error('Error while deleting tmp file', tmpFile, e);
79
+ }
80
+ }
80
81
  }
81
82
  async abort() {
82
- if (!this.finalizePromise) {
83
- this.archive.abort();
84
- return;
83
+ for (const { stream } of this.fileStreams) {
84
+ try {
85
+ await stream.abort();
86
+ }
87
+ catch (e) {
88
+ // Ignore
89
+ }
90
+ }
91
+ // Clear all tmp files
92
+ for (const { tmpFile } of this.fileStreams) {
93
+ try {
94
+ await node_fs_1.default.promises.unlink(tmpFile);
95
+ }
96
+ catch (e) {
97
+ console.error('Error while deleting tmp file', tmpFile, e);
98
+ }
85
99
  }
86
- await this.finalizePromise;
87
100
  }
88
101
  }
89
102
  exports.ArchiverWriterAdapter = ArchiverWriterAdapter;
@@ -1 +1 @@
1
- {"version":3,"file":"ArchiverWriterAdapter.js","sourceRoot":"","sources":["../../../../src/stream-writer/adapters/ArchiverWriterAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArchiverWriterAdapter.js","sourceRoot":"","sources":["../../../../src/stream-writer/adapters/ArchiverWriterAdapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"exportToExcel.d.ts","sourceRoot":"","sources":["../../../src/exportToExcel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAI3F,wBAAsB,aAAa,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE;IACnF,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;IAChD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;CACrC,iBAoBA"}
1
+ {"version":3,"file":"exportToExcel.d.ts","sourceRoot":"","sources":["../../../src/exportToExcel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAI3F,wBAAsB,aAAa,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE;IACnF,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;IAChD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;CACrC,iBAqBA"}
@@ -13,6 +13,7 @@ export async function exportToExcel({ definitions, writer, dataGenerator, filter
13
13
  await writer.close();
14
14
  }
15
15
  catch (e) {
16
+ console.error('Error while exporting to excel', e, 'Aborting writer');
16
17
  await writer.abort();
17
18
  throw e;
18
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"exportToExcel.js","sourceRoot":"","sources":["../../../src/exportToExcel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAKlF;IACG,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEzE,4FAA4F;QAC5F,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAExD,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAEzB,8BAA8B;QAC9B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACrC,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,EAAE,CAAC;QACP,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,CAAC,CAAC;IACZ,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"exportToExcel.js","sourceRoot":"","sources":["../../../src/exportToExcel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAKlF;IACG,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEzE,4FAA4F;QAC5F,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAExD,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAEzB,8BAA8B;QAC9B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACrC,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACtE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,CAAC,CAAC;IACZ,CAAC;AACL,CAAC"}
@@ -1,24 +1,20 @@
1
- import archiver from 'archiver';
2
1
  import { ZipWriterAdapter } from '../interfaces';
2
+ import { Writable } from 'node:stream';
3
3
  export declare class ArchiverWriterAdapter implements ZipWriterAdapter {
4
- writer: WritableStream<Buffer>;
5
- archive: archiver.Archiver;
6
- finalizePromise: Promise<void> | undefined;
7
- /**
8
- * All pending writes we'll need to await
9
- */
10
- pendingFileWrites: Promise<any>[];
11
- /**
12
- * @param writer The data of the zip file will be written to this stream
13
- */
14
- constructor(writer: WritableStream<Buffer>);
4
+ output: Writable;
5
+ fileStreams: {
6
+ tmpFile: string;
7
+ fileName: string;
8
+ stream: WritableStream<Buffer>;
9
+ }[];
10
+ constructor(output: Writable);
15
11
  addFile(name: string): Promise<WritableStream<Buffer>>;
16
12
  addDirectory(name: string): Promise<void>;
17
13
  ready(): Promise<void>;
18
14
  /**
19
15
  * Note: make sure all writeable streams are closed before calling this
20
16
  */
21
- close(): Promise<void | undefined>;
17
+ close(): Promise<void>;
22
18
  abort(): Promise<void>;
23
19
  }
24
20
  //# sourceMappingURL=ArchiverWriterAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArchiverWriterAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/stream-writer/adapters/ArchiverWriterAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,qBAAa,qBAAsB,YAAW,gBAAgB;IAC1D,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAE3C;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAM;IAEvC;;OAEG;gBACS,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC;IAyC1C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAqBhD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,KAAK;IAKX;;OAEG;IACG,KAAK;IAIL,KAAK;CAOd"}
1
+ {"version":3,"file":"ArchiverWriterAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/stream-writer/adapters/ArchiverWriterAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAMvC,qBAAa,qBAAsB,YAAW,gBAAgB;IAC1D,MAAM,EAAE,QAAQ,CAAC;IACjB,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;KAAE,EAAE,CAAM;gBAE9E,MAAM,EAAE,QAAQ;IAOtB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAsBtD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,KAAK;IAIX;;OAEG;IACG,KAAK;IAiDL,KAAK;CAoBd"}
@@ -1,33 +1,48 @@
1
+ import { Writable } from 'node:stream';
2
+ import os from 'os';
3
+ import { v4 as uuidv4 } from 'uuid';
4
+ import fs from 'node:fs';
1
5
  import archiver from 'archiver';
2
- import { PassThrough, Writable } from 'node:stream';
3
6
  export class ArchiverWriterAdapter {
4
- writer;
5
- archive;
6
- finalizePromise;
7
- /**
8
- * All pending writes we'll need to await
9
- */
10
- pendingFileWrites = [];
7
+ output;
8
+ fileStreams = [];
9
+ constructor(output) {
10
+ this.output = output;
11
+ // setup
12
+ // todo
13
+ }
14
+ async addFile(name) {
15
+ const tmpDir = os.tmpdir() + '/stamhoofd-excel-writer';
16
+ // generate random filename
17
+ const tmpFilename = 'excel_writer_' + uuidv4();
18
+ const filePath = tmpDir + '/' + tmpFilename;
19
+ await fs.promises.mkdir(tmpDir, { recursive: true });
20
+ const s = fs.createWriteStream(filePath, 'binary');
21
+ s.on('close', () => {
22
+ console.log('PassThrough closed file: File written to disk', filePath);
23
+ });
24
+ const webStream = Writable.toWeb(s);
25
+ this.fileStreams.push({ tmpFile: filePath, fileName: name, stream: webStream });
26
+ return Promise.resolve(webStream);
27
+ }
28
+ async addDirectory(name) {
29
+ // Empty directories are not supported by archiver
30
+ // Directories should be created automatically when using addFile in this adapter
31
+ }
32
+ async ready() {
33
+ return Promise.resolve();
34
+ }
11
35
  /**
12
- * @param writer The data of the zip file will be written to this stream
36
+ * Note: make sure all writeable streams are closed before calling this
13
37
  */
14
- constructor(writer) {
15
- const output = Writable.fromWeb(writer);
16
- output.on('close', () => {
17
- console.log('Archiver has been finalized and the output file descriptor has closed: ' + this.archive.pointer() + ' total bytes');
18
- });
19
- output.on('end', function () {
20
- console.log('Data has been drained');
21
- });
22
- output.on('error', (e) => {
23
- console.error('Error in output stream', e);
24
- throw e;
25
- });
26
- this.archive = archiver('zip', {
38
+ async close() {
39
+ // All streams should be closed now
40
+ const archive = archiver('zip', {
27
41
  zlib: { level: 9 }, // Sets the compression level.
42
+ highWaterMark: 1,
28
43
  });
29
44
  // good practice to catch warnings (ie stat failures and other non-blocking errors)
30
- this.archive.on('warning', function (err) {
45
+ archive.on('warning', function (err) {
31
46
  if (err.code === 'ENOENT') {
32
47
  console.warn(err);
33
48
  }
@@ -37,49 +52,47 @@ export class ArchiverWriterAdapter {
37
52
  }
38
53
  });
39
54
  // good practice to catch this error explicitly
40
- this.archive.on('error', function (err) {
55
+ archive.on('error', function (err) {
41
56
  console.error('Archiver error', err);
42
57
  throw err;
43
58
  });
44
59
  // pipe archive data to the file
45
- this.archive.pipe(output);
46
- }
47
- addFile(name) {
48
- // Create a new writeable stream that writes to a reader that we'll pass to zipWriter
49
- const stream = new PassThrough({});
50
- stream.on('end', () => {
51
- console.log('Finished file', name);
52
- });
53
- stream.on('close', () => {
54
- console.log('Closed file stream', name);
55
- });
56
- stream.on('error', (err) => {
57
- console.error('Error in PassThrough stream', name, err);
58
- // throw err;
59
- });
60
- this.archive.append(stream, { name });
61
- return Promise.resolve(Writable.toWeb(stream));
62
- }
63
- async addDirectory(name) {
64
- // Empty directories are not supported by archiver
65
- // Directories should be created automatically when using addFile in this adapter
66
- }
67
- async ready() {
68
- this.finalizePromise = this.archive.finalize();
69
- return Promise.resolve();
70
- }
71
- /**
72
- * Note: make sure all writeable streams are closed before calling this
73
- */
74
- async close() {
75
- return await this.finalizePromise;
60
+ archive.pipe(this.output);
61
+ // Pass to destionation stream
62
+ for (const { tmpFile, fileName } of this.fileStreams) {
63
+ console.log('File written to disk', tmpFile);
64
+ // Create read stream
65
+ archive.append(fs.createReadStream(tmpFile), { name: fileName });
66
+ }
67
+ await archive.finalize();
68
+ // Clear all tmp files
69
+ for (const { tmpFile } of this.fileStreams) {
70
+ try {
71
+ await fs.promises.unlink(tmpFile);
72
+ }
73
+ catch (e) {
74
+ console.error('Error while deleting tmp file', tmpFile, e);
75
+ }
76
+ }
76
77
  }
77
78
  async abort() {
78
- if (!this.finalizePromise) {
79
- this.archive.abort();
80
- return;
79
+ for (const { stream } of this.fileStreams) {
80
+ try {
81
+ await stream.abort();
82
+ }
83
+ catch (e) {
84
+ // Ignore
85
+ }
86
+ }
87
+ // Clear all tmp files
88
+ for (const { tmpFile } of this.fileStreams) {
89
+ try {
90
+ await fs.promises.unlink(tmpFile);
91
+ }
92
+ catch (e) {
93
+ console.error('Error while deleting tmp file', tmpFile, e);
94
+ }
81
95
  }
82
- await this.finalizePromise;
83
96
  }
84
97
  }
85
98
  //# sourceMappingURL=ArchiverWriterAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArchiverWriterAdapter.js","sourceRoot":"","sources":["../../../../../src/stream-writer/adapters/ArchiverWriterAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArchiverWriterAdapter.js","sourceRoot":"","sources":["../../../../../src/stream-writer/adapters/ArchiverWriterAdapter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stamhoofd/excel-writer",
3
- "version": "2.42.0",
3
+ "version": "2.42.2",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./esm/dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -23,5 +23,5 @@
23
23
  "publishConfig": {
24
24
  "access": "public"
25
25
  },
26
- "gitHead": "fa8a47af38cc79eecaf7934cd1b15d5b20fd3e2d"
26
+ "gitHead": "efb340b03cda94c2388d8b761b11de54aebc61eb"
27
27
  }