import * as plugins from './plugins.js'; import * as interfaces from './interfaces.js'; import * as helpers from './helpers.js'; import type { Bucket } from './classes.bucket.js'; import type { Directory } from './classes.directory.js'; import type { File } from './classes.file.js'; export class Trash { public bucketRef: Bucket; constructor(bucketRefArg: Bucket) { this.bucketRef = bucketRefArg; } public async getTrashDir() { return this.bucketRef.getDirectoryFromPath({ path: '.trash' }); } public async getTrashedFileByOriginalName(pathDescriptor: interfaces.IPathDecriptor): Promise { const trashDir = await this.getTrashDir(); const originalPath = await helpers.reducePathDescriptorToPath(pathDescriptor); const trashKey = await this.getTrashKeyByOriginalBasePath(originalPath); return trashDir.getFileStrict({ path: trashKey }); } public async getTrashKeyByOriginalBasePath (originalPath: string): Promise { return plugins.smartstring.base64.encode(originalPath); } }