fix(core): update
This commit is contained in:
@@ -4,7 +4,6 @@ import * as interfaces from './interfaces.js';
|
||||
import { Directory } from './classes.directory.js';
|
||||
import { MetaData } from './classes.metadata.js';
|
||||
|
||||
|
||||
/**
|
||||
* represents a file in a directory
|
||||
*/
|
||||
@@ -33,7 +32,8 @@ export class File {
|
||||
directoryRefArg: optionsArg.directory,
|
||||
fileName: optionsArg.name,
|
||||
});
|
||||
if (contents instanceof plugins.stream.Readable) {} else {
|
||||
if (contents instanceof plugins.stream.Readable) {
|
||||
} else {
|
||||
await optionsArg.directory.fastPut({
|
||||
path: optionsArg.name,
|
||||
contents: contents,
|
||||
@@ -48,7 +48,7 @@ export class File {
|
||||
|
||||
public getBasePath(): string {
|
||||
return plugins.path.join(this.parentDirectoryRef.getBasePath(), this.name);
|
||||
};
|
||||
}
|
||||
|
||||
constructor(optionsArg: { directoryRefArg: Directory; fileName: string }) {
|
||||
this.parentDirectoryRef = optionsArg.directoryRefArg;
|
||||
@@ -67,35 +67,61 @@ export class File {
|
||||
return resultBuffer;
|
||||
}
|
||||
|
||||
public async getReadStream() {
|
||||
const readStream = this.parentDirectoryRef.bucketRef.fastGetStream({
|
||||
path: this.getBasePath(),
|
||||
});
|
||||
public async getReadStream(typeArg: 'webstream'): Promise<ReadableStream>;
|
||||
public async getReadStream(typeArg: 'nodestream'): Promise<plugins.stream.Readable>;
|
||||
public async getReadStream(
|
||||
typeArg: 'nodestream' | 'webstream'
|
||||
): Promise<ReadableStream | plugins.stream.Readable> {
|
||||
const readStream = this.parentDirectoryRef.bucketRef.fastGetStream(
|
||||
{
|
||||
path: this.getBasePath(),
|
||||
},
|
||||
typeArg as any
|
||||
);
|
||||
return readStream;
|
||||
}
|
||||
|
||||
/**
|
||||
* removes this file
|
||||
* for using recycling mechanics use .delete()
|
||||
* deletes this file
|
||||
*/
|
||||
public async remove() {
|
||||
await this.parentDirectoryRef.bucketRef.fastRemove({
|
||||
path: this.getBasePath(),
|
||||
});
|
||||
if (!this.name.endsWith('.metadata')) {
|
||||
public async delete(optionsArg?: {
|
||||
mode: 'trash' | 'permanent';
|
||||
}) {
|
||||
|
||||
optionsArg = {
|
||||
... {
|
||||
mode: 'permanent',
|
||||
},
|
||||
...optionsArg,
|
||||
}
|
||||
|
||||
if (optionsArg.mode === 'permanent') {
|
||||
await this.parentDirectoryRef.bucketRef.fastRemove({
|
||||
path: this.getBasePath() + '.metadata',
|
||||
path: this.getBasePath(),
|
||||
});
|
||||
if (!this.name.endsWith('.metadata')) {
|
||||
const metadata = await this.getMetaData();
|
||||
await metadata.metadataFile.delete(optionsArg);
|
||||
}
|
||||
} else if (optionsArg.mode === 'trash') {
|
||||
const metadata = await this.getMetaData();
|
||||
await metadata.storeCustomMetaData({
|
||||
key: 'recycle',
|
||||
value: {
|
||||
deletedAt: Date.now(),
|
||||
originalPath: this.getBasePath(),
|
||||
},
|
||||
});
|
||||
const trashName = plugins.smartunique.uuid4();
|
||||
await this.move({
|
||||
directory: await this.parentDirectoryRef.bucketRef.getBaseDirectory(),
|
||||
path: plugins.path.join('trash', trashName),
|
||||
});
|
||||
}
|
||||
|
||||
await this.parentDirectoryRef.listFiles();
|
||||
}
|
||||
|
||||
/**
|
||||
* deletes the file with recycling mechanics
|
||||
*/
|
||||
public async delete() {
|
||||
await this.remove();
|
||||
}
|
||||
|
||||
/**
|
||||
* allows locking the file
|
||||
* @param optionsArg
|
||||
@@ -125,10 +151,13 @@ export class File {
|
||||
}
|
||||
|
||||
public async updateWithContents(optionsArg: {
|
||||
contents: Buffer | string | plugins.stream.Readable;
|
||||
contents: Buffer | string | plugins.stream.Readable | ReadableStream;
|
||||
encoding?: 'utf8' | 'binary';
|
||||
}) {
|
||||
if (optionsArg.contents instanceof plugins.stream.Readable) {
|
||||
if (
|
||||
optionsArg.contents instanceof plugins.stream.Readable ||
|
||||
optionsArg.contents instanceof ReadableStream
|
||||
) {
|
||||
await this.parentDirectoryRef.bucketRef.fastPutStream({
|
||||
path: this.getBasePath(),
|
||||
dataStream: optionsArg.contents,
|
||||
|
Reference in New Issue
Block a user