UNPKG

@push.rocks/smartbucket

Version:

A TypeScript library providing a cloud-agnostic interface for managing object storage with functionalities like bucket management, file and directory operations, and advanced features such as metadata handling and file locking.

31 lines (24 loc) 1.04 kB
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<File> { 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<string> { return plugins.smartstring.base64.encode(originalPath); } }