@mischback/buster
Version:
buster is a tool to support cache busting for static assets of a website.
61 lines • 1.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createFile = exports.BusterFileSystemError = void 0;
const promises_1 = require("fs/promises");
const configure_1 = require("../configure");
const errors_1 = require("../errors");
const logging_1 = require("../logging");
class BusterFileSystemError extends errors_1.BusterError {
constructor(message) {
super(message);
}
}
exports.BusterFileSystemError = BusterFileSystemError;
function copyFile(source, destination) {
return new Promise((resolve, reject) => {
(0, promises_1.copyFile)(source, destination)
.then(() => {
return resolve(destination);
})
.catch((err) => {
logging_1.logger.debug(err);
return reject(new BusterFileSystemError("Could not copy file"));
});
});
}
function renameFile(source, destination) {
return new Promise((resolve, reject) => {
(0, promises_1.rename)(source, destination)
.then(() => {
return resolve(destination);
})
.catch((err) => {
logging_1.logger.debug(err);
return reject(new BusterFileSystemError("Could not rename file"));
});
});
}
function createFile(source, destination, mode) {
return new Promise((resolve, reject) => {
let fileFunc;
switch (mode) {
case configure_1.MODE_COPY:
fileFunc = copyFile;
break;
case configure_1.MODE_RENAME:
fileFunc = renameFile;
break;
default:
return reject(new BusterFileSystemError("Unknown mode"));
}
fileFunc(source, destination)
.then(() => {
return resolve(destination);
})
.catch((err) => {
return reject(err);
});
});
}
exports.createFile = createFile;
//# sourceMappingURL=filesystem.js.map