Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
1a571bba90 | |||
bcb66b2ccf | |||
0000984e4b | |||
b391e54083 |
5
package-lock.json
generated
5
package-lock.json
generated
@ -1,15 +1,16 @@
|
|||||||
{
|
{
|
||||||
"name": "@pushrocks/smartfile",
|
"name": "@pushrocks/smartfile",
|
||||||
"version": "9.0.3",
|
"version": "9.0.5",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@pushrocks/smartfile",
|
"name": "@pushrocks/smartfile",
|
||||||
"version": "9.0.3",
|
"version": "9.0.5",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@pushrocks/lik": "^5.0.0",
|
"@pushrocks/lik": "^5.0.0",
|
||||||
|
"@pushrocks/smartdelay": "^2.0.13",
|
||||||
"@pushrocks/smartfile-interfaces": "^1.0.7",
|
"@pushrocks/smartfile-interfaces": "^1.0.7",
|
||||||
"@pushrocks/smarthash": "^2.1.10",
|
"@pushrocks/smarthash": "^2.1.10",
|
||||||
"@pushrocks/smartjson": "^4.0.6",
|
"@pushrocks/smartjson": "^4.0.6",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@pushrocks/smartfile",
|
"name": "@pushrocks/smartfile",
|
||||||
"private": false,
|
"private": false,
|
||||||
"version": "9.0.3",
|
"version": "9.0.5",
|
||||||
"description": "offers smart ways to work with files in nodejs",
|
"description": "offers smart ways to work with files in nodejs",
|
||||||
"main": "dist_ts/index.js",
|
"main": "dist_ts/index.js",
|
||||||
"typings": "dist_ts/index.d.ts",
|
"typings": "dist_ts/index.d.ts",
|
||||||
@ -25,6 +25,7 @@
|
|||||||
"homepage": "https://gitlab.com/pushrocks/smartfile",
|
"homepage": "https://gitlab.com/pushrocks/smartfile",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@pushrocks/lik": "^5.0.0",
|
"@pushrocks/lik": "^5.0.0",
|
||||||
|
"@pushrocks/smartdelay": "^2.0.13",
|
||||||
"@pushrocks/smartfile-interfaces": "^1.0.7",
|
"@pushrocks/smartfile-interfaces": "^1.0.7",
|
||||||
"@pushrocks/smarthash": "^2.1.10",
|
"@pushrocks/smarthash": "^2.1.10",
|
||||||
"@pushrocks/smartjson": "^4.0.6",
|
"@pushrocks/smartjson": "^4.0.6",
|
||||||
|
@ -213,4 +213,8 @@ tap.test('should create, store and retrieve valid smartfiles', async () => {
|
|||||||
expect(retrievedString).to.equal(fileString);
|
expect(retrievedString).to.equal(fileString);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
tap.test('should wait for file to be ready', async () => {
|
||||||
|
await smartfile.fs.waitForFileToBeReady('./test/testassets/mytest.json')
|
||||||
|
})
|
||||||
|
|
||||||
tap.start();
|
tap.start();
|
||||||
|
@ -377,11 +377,22 @@ export const listFileTree = async (
|
|||||||
/**
|
/**
|
||||||
* checks wether a file is ready for processing
|
* checks wether a file is ready for processing
|
||||||
*/
|
*/
|
||||||
export const waitForFileToBeReady = async (filePathArg: string) => {
|
export const waitForFileToBeReady = async (filePathArg: string): Promise<void> => {
|
||||||
const limitedArray = new plugins.lik.LimitedArray<string>(3);
|
|
||||||
if (!plugins.path.isAbsolute(filePathArg)) {
|
if (!plugins.path.isAbsolute(filePathArg)) {
|
||||||
filePathArg = plugins.path.resolve(filePathArg);
|
filePathArg = plugins.path.resolve(filePathArg);
|
||||||
};
|
|
||||||
const stats = await plugins.fsExtra.stat(filePathArg);
|
|
||||||
stats.size
|
|
||||||
}
|
}
|
||||||
|
const limitedArray = new plugins.lik.LimitedArray<number>(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.array[1] && limitedArray.array[1] === limitedArray.array[2])
|
||||||
|
) {
|
||||||
|
await plugins.smartdelay.delayFor(5000);
|
||||||
|
} else {
|
||||||
|
fileReady = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
@ -7,6 +7,7 @@ export { fs, path };
|
|||||||
// @pushrocks scope
|
// @pushrocks scope
|
||||||
import * as lik from '@pushrocks/lik';
|
import * as lik from '@pushrocks/lik';
|
||||||
import * as smartfileInterfaces from '@pushrocks/smartfile-interfaces';
|
import * as smartfileInterfaces from '@pushrocks/smartfile-interfaces';
|
||||||
|
import * as smartdelay from '@pushrocks/smartdelay';
|
||||||
import * as smarthash from '@pushrocks/smarthash';
|
import * as smarthash from '@pushrocks/smarthash';
|
||||||
import * as smartjson from '@pushrocks/smartjson';
|
import * as smartjson from '@pushrocks/smartjson';
|
||||||
import * as smartmime from '@pushrocks/smartmime';
|
import * as smartmime from '@pushrocks/smartmime';
|
||||||
@ -14,7 +15,7 @@ import * as smartpath from '@pushrocks/smartpath';
|
|||||||
import * as smartpromise from '@pushrocks/smartpromise';
|
import * as smartpromise from '@pushrocks/smartpromise';
|
||||||
import * as smartrequest from '@pushrocks/smartrequest';
|
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
|
// third party scope
|
||||||
import * as fsExtra from 'fs-extra';
|
import * as fsExtra from 'fs-extra';
|
||||||
|
Reference in New Issue
Block a user