fix(core): update
This commit is contained in:
		| @@ -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<Buffer, Buffer>(async (chunk) => { | ||||
|       const chunkString = chunk.toString(); | ||||
|       completeFile += chunkString; | ||||
|       return chunk; | ||||
|     }, async (cb) => { | ||||
|       done.resolve(); | ||||
|       return Buffer.from(''); | ||||
|     }); | ||||
|     const duplexStream = plugins.streamfunction.createDuplexStream<Buffer, Buffer>( | ||||
|       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); | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -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<string, void>(async fileName => { | ||||
|       fileArray.push(new File(this, fileName)); | ||||
|     }, async (tools) => { | ||||
|       done.resolve(); | ||||
|     }); | ||||
|     const duplexStream = plugins.streamfunction.createDuplexStream<string, void>( | ||||
|       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<plugins.minio.BucketItem, void>(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<plugins.minio.BucketItem, void>( | ||||
|       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 = ''; | ||||
|   | ||||
| @@ -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<Buffer, Buffer>(async (chunk) => { | ||||
|       completeFile = Buffer.concat([chunk]); | ||||
|       return chunk; | ||||
|     }, async (cb) => { | ||||
|       done.resolve(); | ||||
|       return Buffer.from(''); | ||||
|     }); | ||||
|     const duplexStream = plugins.streamfunction.createDuplexStream<Buffer, Buffer>( | ||||
|       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(); | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -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 }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user