From 477943e237cf282e1eea2b8e2dc6b7f66d2085cd Mon Sep 17 00:00:00 2001 From: mertmit Date: Sat, 4 Feb 2023 14:16:06 +0300 Subject: [PATCH] fix: asynchronous file write for at import job Signed-off-by: mertmit --- .../nocodb/src/lib/meta/api/sync/helpers/job.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/nocodb/src/lib/meta/api/sync/helpers/job.ts b/packages/nocodb/src/lib/meta/api/sync/helpers/job.ts index faf59c603f..6d123a7a14 100644 --- a/packages/nocodb/src/lib/meta/api/sync/helpers/job.ts +++ b/packages/nocodb/src/lib/meta/api/sync/helpers/job.ts @@ -8,6 +8,7 @@ import { Api } from 'nocodb-sdk'; import Airtable from 'airtable'; import jsonfile from 'jsonfile'; import hash from 'object-hash'; +import { promisify } from 'util'; import dayjs from 'dayjs'; import utc from 'dayjs/plugin/utc'; @@ -16,6 +17,8 @@ import { importData, importLTARData } from './readAndProcessData'; import EntityMap from './EntityMap'; +const writeJsonFileAsync = promisify(jsonfile.writeFile); + dayjs.extend(utc); const selectColors = { @@ -204,7 +207,7 @@ export default async ( // store copy of airtable schema globally g_aTblSchema = file.tableSchemas; - if (debugMode) jsonfile.writeFileSync('aTblSchema.json', ft, { spaces: 2 }); + if (debugMode) await writeJsonFileAsync('aTblSchema.json', ft, { spaces: 2 }); return file; } @@ -216,7 +219,7 @@ export default async ( rtc.fetchAt.count++; rtc.fetchAt.time += duration; - if (debugMode) jsonfile.writeFileSync(`${viewId}.json`, ft, { spaces: 2 }); + if (debugMode) await writeJsonFileAsync(`${viewId}.json`, ft, { spaces: 2 }); return ft.view; } @@ -1917,13 +1920,13 @@ export default async ( logBasic(`:: Axios fetch time: ${rtc.fetchAt.time}`); if (debugMode) { - jsonfile.writeFileSync('stats.json', perfStats, { spaces: 2 }); + await writeJsonFileAsync('stats.json', perfStats, { spaces: 2 }); const perflog = []; for (let i = 0; i < perfStats.length; i++) { perflog.push(`${perfStats[i].e}, ${perfStats[i].d}`); } - jsonfile.writeFileSync('stats.csv', perflog, { spaces: 2 }); - jsonfile.writeFileSync('skip.txt', rtc.migrationSkipLog.log, { + await writeJsonFileAsync('stats.csv', perflog, { spaces: 2 }); + await writeJsonFileAsync('skip.txt', rtc.migrationSkipLog.log, { spaces: 2, }); }