diff --git a/apps/meteor/server/lib/dataExport/processDataDownloads.ts b/apps/meteor/server/lib/dataExport/processDataDownloads.ts index 7fe734803e9..2f2b987901f 100644 --- a/apps/meteor/server/lib/dataExport/processDataDownloads.ts +++ b/apps/meteor/server/lib/dataExport/processDataDownloads.ts @@ -1,5 +1,4 @@ import { createWriteStream } from 'fs'; -import { promisify } from 'util'; import { access, mkdir, rm, writeFile } from 'fs/promises'; import { TAPi18n } from 'meteor/rocketchat:tap-i18n'; @@ -72,26 +71,31 @@ const generateUserFile = async (exportOperation: IExportOperation, userData?: IU return; } - const stream = createWriteStream(fileName, { encoding: 'utf8' }); + return new Promise((resolve, reject) => { + const stream = createWriteStream(fileName, { encoding: 'utf8' }); - stream.write('\n'); - stream.write('\n'); - for (const [key, value] of Object.entries(dataToSave)) { - stream.write(`
${key}:`);
- if (typeof value === 'string') {
- stream.write(value);
- } else if (Array.isArray(value)) {
- stream.write('
');
+ stream.on('finish', resolve);
+ stream.on('error', reject);
- for (const item of value) {
- stream.write(`${item}
`);
+ stream.write('\n');
+ stream.write('\n');
+ for (const [key, value] of Object.entries(dataToSave)) {
+ stream.write(`
${key}:`);
+ if (typeof value === 'string') {
+ stream.write(value);
+ } else if (Array.isArray(value)) {
+ stream.write('
');
+
+ for (const item of value) {
+ stream.write(`${item}
`);
+ }
}
- }
- stream.write('