diff --git a/package.json b/package.json index 1987f71..09c514e 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,9 @@ "author": "Lossless GmbH", "license": "UNLICENSED", "scripts": { - "test": "tstest test/", + "test": "(tstest test/)", "format": "(gitzone format)", - "build": "echo \"Not needed for now\"" + "build": "(tsbuild)" }, "devDependencies": { "@gitzone/tsbuild": "^2.1.17", @@ -38,4 +38,4 @@ "npmextra.json", "readme.md" ] -} +} \ No newline at end of file diff --git a/test/test.ts b/test/test.ts index a000117..89e5f05 100644 --- a/test/test.ts +++ b/test/test.ts @@ -62,7 +62,6 @@ tap.test('should get base directory', async () => { const files = await baseDirectory.listFiles(); }); - tap.test('clean up directory style tests', async () => { await myBucket.fastRemove('dir1/file1.txt'); await myBucket.fastRemove('dir1/file2.txt'); @@ -71,5 +70,4 @@ tap.test('clean up directory style tests', async () => { await myBucket.fastRemove('file1.txt'); }); - tap.start(); diff --git a/ts/smartbucket.classes.bucket.ts b/ts/smartbucket.classes.bucket.ts index c5d74d0..7bfbe9a 100644 --- a/ts/smartbucket.classes.bucket.ts +++ b/ts/smartbucket.classes.bucket.ts @@ -10,7 +10,7 @@ export class Bucket { }); if (foundBucket) { - console.log(`bucket with name ${bucketNameArg} exists.`) + console.log(`bucket with name ${bucketNameArg} exists.`); console.log(`Taking this as base for new Bucket instance`); return new this(smartbucketRef, bucketNameArg); } else { @@ -42,7 +42,6 @@ export class Bucket { return new Directory(this, null, ''); } - // =============== // Fast Operations // =============== @@ -52,7 +51,9 @@ export class Bucket { */ public async fastStore(pathArg: string, fileContent: string) { const streamIntake = new plugins.streamfunction.Intake(); - const putPromise = this.smartbucketRef.minioClient.putObject(this.name, pathArg, streamIntake.getReadable()).catch(e => console.log(e)); + const putPromise = this.smartbucketRef.minioClient + .putObject(this.name, pathArg, streamIntake.getReadable()) + .catch(e => console.log(e)); streamIntake.pushData(fileContent); streamIntake.signalEnd(); await putPromise; @@ -63,16 +64,21 @@ export class Bucket { */ public async fastGet(pathArg: string) { const done = plugins.smartpromise.defer(); - const fileStream = await this.smartbucketRef.minioClient.getObject(this.name, pathArg).catch(e => console.log(e)); + const fileStream = await this.smartbucketRef.minioClient + .getObject(this.name, pathArg) + .catch(e => console.log(e)); let completeFile: string = ''; - const duplexStream = plugins.streamfunction.createDuplexStream(async (chunk) => { - const chunkString = chunk.toString(); - completeFile += chunkString; - return chunk; - }, async (cb) => { - done.resolve(); - return Buffer.from(''); - }); + const duplexStream = plugins.streamfunction.createDuplexStream( + async chunk => { + const chunkString = chunk.toString(); + completeFile += chunkString; + return chunk; + }, + async cb => { + done.resolve(); + return Buffer.from(''); + } + ); if (!fileStream) { return null; @@ -86,7 +92,7 @@ export class Bucket { /** * removeObject */ - public async fastRemove (pathArg: string) { + public async fastRemove(pathArg: string) { await this.smartbucketRef.minioClient.removeObject(this.name, pathArg); } } diff --git a/ts/smartbucket.classes.directory.ts b/ts/smartbucket.classes.directory.ts index 9485b4a..c6ef018 100644 --- a/ts/smartbucket.classes.directory.ts +++ b/ts/smartbucket.classes.directory.ts @@ -34,7 +34,7 @@ export class Directory { */ public getDirectoryLevel(): number { return this.getParentDirectories().length; - }; + } /** * updates the base path @@ -42,7 +42,7 @@ export class Directory { public getBasePath(): string { const parentDirectories = this.getParentDirectories(); let basePath = ''; - for(const parentDir of parentDirectories) { + for (const parentDir of parentDirectories) { basePath = parentDir.name + '/' + basePath; } return basePath; @@ -58,11 +58,14 @@ export class Directory { this.getBasePath() ); const fileArray: File[] = []; - const duplexStream = plugins.streamfunction.createDuplexStream(async fileName => { - fileArray.push(new File(this, fileName)); - }, async (tools) => { - done.resolve(); - }); + const duplexStream = plugins.streamfunction.createDuplexStream( + async fileName => { + fileArray.push(new File(this, fileName)); + }, + async tools => { + done.resolve(); + } + ); fileNameStream.pipe(duplexStream); await done.promise; return fileArray; @@ -79,19 +82,22 @@ export class Directory { true ); const directoryArray: Directory[] = []; - const duplexStream = plugins.streamfunction.createDuplexStream(async fileName => { - console.log(fileName); - const subtractedPath = fileName.name.replace(this.getBasePath(), ''); - if (subtractedPath.includes('/')) { - const dirName = fileName.name.split('/')[0]; - if (directoryArray.find(directory => directory.name === dirName)) { - return; + const duplexStream = plugins.streamfunction.createDuplexStream( + async fileName => { + console.log(fileName); + const subtractedPath = fileName.name.replace(this.getBasePath(), ''); + if (subtractedPath.includes('/')) { + const dirName = fileName.name.split('/')[0]; + if (directoryArray.find(directory => directory.name === dirName)) { + return; + } + directoryArray.push(new Directory(this.bucketRef, this, dirName)); } - directoryArray.push(new Directory(this.bucketRef, this, dirName)); + }, + async tools => { + done.resolve(); } - }, async (tools) => { - done.resolve(); - }); + ); completeDirStream.pipe(duplexStream); await done.promise; return directoryArray; @@ -119,14 +125,13 @@ export class Directory { /** * moves the directory */ - public async move () { + public async move() { // TODO } - /** * creates a file within this directory - * @param relativePathArg + * @param relativePathArg */ public async createFile(relativePathArg) { let completeFilePath: string = ''; diff --git a/ts/smartbucket.classes.file.ts b/ts/smartbucket.classes.file.ts index c551c34..5aa28fb 100644 --- a/ts/smartbucket.classes.file.ts +++ b/ts/smartbucket.classes.file.ts @@ -14,11 +14,7 @@ export class File { fileName: string, fileContent: string ) { - await this.createFileFromBuffer( - dirArg, - fileName, - Buffer.from(fileContent) - ); + await this.createFileFromBuffer(dirArg, fileName, Buffer.from(fileContent)); } public static async createFileFromBuffer( @@ -53,15 +49,20 @@ export class File { public async getContentAsBuffer() { const done = plugins.smartpromise.defer(); - const fileStream = await this.directoryRef.bucketRef.smartbucketRef.minioClient.getObject(this.directoryRef.bucketRef.name, this.path).catch(e => console.log(e)); + const fileStream = await this.directoryRef.bucketRef.smartbucketRef.minioClient + .getObject(this.directoryRef.bucketRef.name, this.path) + .catch(e => console.log(e)); let completeFile = new Buffer(''); - const duplexStream = plugins.streamfunction.createDuplexStream(async (chunk) => { - completeFile = Buffer.concat([chunk]); - return chunk; - }, async (cb) => { - done.resolve(); - return Buffer.from(''); - }); + const duplexStream = plugins.streamfunction.createDuplexStream( + async chunk => { + completeFile = Buffer.concat([chunk]); + return chunk; + }, + async cb => { + done.resolve(); + return Buffer.from(''); + } + ); if (!fileStream) { return null; @@ -80,8 +81,11 @@ export class File { /** * removes this file */ - public async remove () { - await this.directoryRef.bucketRef.smartbucketRef.minioClient.removeObject(this.directoryRef.bucketRef.name, this.path); + public async remove() { + await this.directoryRef.bucketRef.smartbucketRef.minioClient.removeObject( + this.directoryRef.bucketRef.name, + this.path + ); await this.directoryRef.listFiles(); } } diff --git a/ts/smartbucket.plugins.ts b/ts/smartbucket.plugins.ts index c8b526a..b520378 100644 --- a/ts/smartbucket.plugins.ts +++ b/ts/smartbucket.plugins.ts @@ -1,9 +1,7 @@ // node native import * as path from 'path'; -export { - path -}; +export { path }; import * as smartpath from '@pushrocks/smartpath'; import * as smartpromise from '@pushrocks/smartpromise'; @@ -14,6 +12,4 @@ export { smartpath, smartpromise, streamfunction }; // third party scope import * as minio from 'minio'; -export { - minio -}; +export { minio };