import * as fs from "node:fs";
import * as Path from "node:path";
import { pipeline } from "node:stream/promises";
import config from "../../config/index.js";
export class InternalStorage {
    static resolvePath = (key)=>Path.resolve(config.mediaDir, key);
    static read(key) {
        return fs.createReadStream(InternalStorage.resolvePath(key));
    }
    static async saveFromPath(key, srcPath) {
        fs.mkdirSync(config.mediaDir, {
            recursive: true
        });
        await pipeline(fs.createReadStream(srcPath), fs.createWriteStream(InternalStorage.resolvePath(key)));
        return `${config.url}/files/${key}`;
    }
    static saveFromBuffer(key, data) {
        fs.mkdirSync(config.mediaDir, {
            recursive: true
        });
        fs.writeFileSync(InternalStorage.resolvePath(key), data);
        return `${config.url}/files/${key}`;
    }
    static del(key) {
        fs.unlink(InternalStorage.resolvePath(key), ()=>{});
    }
}
