From b391e540832d74b2e14e303a06103113763bbfde Mon Sep 17 00:00:00 2001 From: Philipp Kunz Date: Mon, 20 Dec 2021 15:11:21 +0100 Subject: [PATCH] fix(core): update --- package-lock.json | 1 + package.json | 1 + ts/smartfile.fs.ts | 25 ++++++++++++++++++------- ts/smartfile.plugins.ts | 3 ++- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1289b6c..d513260 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "license": "MIT", "dependencies": { "@pushrocks/lik": "^5.0.0", + "@pushrocks/smartdelay": "^2.0.13", "@pushrocks/smartfile-interfaces": "^1.0.7", "@pushrocks/smarthash": "^2.1.10", "@pushrocks/smartjson": "^4.0.6", diff --git a/package.json b/package.json index 9c95234..297f23b 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "homepage": "https://gitlab.com/pushrocks/smartfile", "dependencies": { "@pushrocks/lik": "^5.0.0", + "@pushrocks/smartdelay": "^2.0.13", "@pushrocks/smartfile-interfaces": "^1.0.7", "@pushrocks/smarthash": "^2.1.10", "@pushrocks/smartjson": "^4.0.6", diff --git a/ts/smartfile.fs.ts b/ts/smartfile.fs.ts index 84d663e..8989fda 100644 --- a/ts/smartfile.fs.ts +++ b/ts/smartfile.fs.ts @@ -377,11 +377,22 @@ export const listFileTree = async ( /** * checks wether a file is ready for processing */ -export const waitForFileToBeReady = async (filePathArg: string) => { - const limitedArray = new plugins.lik.LimitedArray(3); - if(!plugins.path.isAbsolute(filePathArg)) { +export const waitForFileToBeReady = async (filePathArg: string): Promise => { + if (!plugins.path.isAbsolute(filePathArg)) { filePathArg = plugins.path.resolve(filePathArg); - }; - const stats = await plugins.fsExtra.stat(filePathArg); - stats.size -} + } + const limitedArray = new plugins.lik.LimitedArray(3); + let fileReady = false; + while (!fileReady) { + const stats = await plugins.fsExtra.stat(filePathArg); + limitedArray.addOne(stats.size); + if ( + limitedArray.array.length < 3 || + !(limitedArray.array[0] === limitedArray[1] && limitedArray.array[1] === limitedArray[2]) + ) { + await plugins.smartdelay.delayFor(5000); + } else { + fileReady = true; + } + } +}; diff --git a/ts/smartfile.plugins.ts b/ts/smartfile.plugins.ts index 58d5224..f88763a 100644 --- a/ts/smartfile.plugins.ts +++ b/ts/smartfile.plugins.ts @@ -7,6 +7,7 @@ export { fs, path }; // @pushrocks scope import * as lik from '@pushrocks/lik'; import * as smartfileInterfaces from '@pushrocks/smartfile-interfaces'; +import * as smartdelay from '@pushrocks/smartdelay'; import * as smarthash from '@pushrocks/smarthash'; import * as smartjson from '@pushrocks/smartjson'; import * as smartmime from '@pushrocks/smartmime'; @@ -14,7 +15,7 @@ import * as smartpath from '@pushrocks/smartpath'; import * as smartpromise from '@pushrocks/smartpromise'; import * as smartrequest from '@pushrocks/smartrequest'; -export { lik, smartfileInterfaces, smarthash, smartjson, smartmime, smartpath, smartpromise, smartrequest }; +export { lik, smartfileInterfaces, smartdelay, smarthash, smartjson, smartmime, smartpath, smartpromise, smartrequest }; // third party scope import * as fsExtra from 'fs-extra';