burdy
Version:
Open Source Headless Platform
60 lines (59 loc) • 2.42 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.fsToDriver = exports.driverToFs = void 0;
const fs_extra_1 = __importDefault(require("fs-extra"));
const file_driver_1 = __importDefault(require("../drivers/file.driver"));
const logger_1 = __importDefault(require("../../shared/features/logger"));
const driverToFs = (key, file) => {
return new Promise((resolve, reject) => {
const stream = fs_extra_1.default.createWriteStream(file);
stream.on('close', () => {
return resolve(file);
});
file_driver_1.default.getInstance()
.createReadStream(key)
.on('error', (err) => {
console.log(err);
reject(err);
})
.pipe(stream);
});
};
exports.driverToFs = driverToFs;
const fsToDriver = (file, key) => {
return new Promise((resolve, reject) => {
const readStream = fs_extra_1.default.createReadStream(file);
logger_1.default.info(`Writing new backup file for ${file}.`);
if (file_driver_1.default.getInstance().getName() === 's3') {
file_driver_1.default.getInstance()
.uploadReadableStream(key, readStream)
.then(() => {
logger_1.default.info(`Writing new backup ${file} successful, document: ${key}, provider s3.`);
resolve(key);
})
.catch((err) => {
logger_1.default.error(`Writing new backup ${file} failed, provider s3.`);
logger_1.default.error(err);
reject(err);
});
}
else {
const writeStream = file_driver_1.default.getInstance().createWriteStream(key);
writeStream.on('close', () => {
logger_1.default.info(`Writing new backup for ${file} successful, document: ${key}, provider fs.`);
return resolve(key);
});
readStream
.on('error', (err) => {
logger_1.default.error(`Writing new backup for ${file} failed, provider fs.`);
logger_1.default.error(err);
reject(err);
})
.pipe(writeStream);
}
});
};
exports.fsToDriver = fsToDriver;