adr
Version:
轻量级架构记录工具 - Command-line tools for working with Architecture Decision Records
55 lines • 4.65 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.compress = void 0;
let fs = require('fs');
let sharp = require('sharp');
let resolve = require('path').resolve;
const cache_1 = require("./cache");
const Config_1 = require("./Config");
function getListOfCompressedImages() {
return cache_1.default.get('images');
}
function getListOfImages() {
let assetsPath = Config_1.default.getAssetsPath();
return fs.readdirSync(assetsPath);
}
function saveListOfCompressedImages(imageList) {
cache_1.default.update('images', imageList);
}
function removeFileFormat(fileName) {
return fileName.split('.').slice(0, -1).join('.');
}
function changeFileFormat(fileName, targetFormat) {
return removeFileFormat(fileName) + '.' + targetFormat;
}
function compress() {
let assetsPath = Config_1.default.getAssetsPath();
if (!fs.existsSync(assetsPath)) {
// TODO notify the user that no assets were found
return;
}
let listOfCompressedImages = getListOfCompressedImages();
let listOfImages = getListOfImages();
listOfImages.forEach((image, index, arr) => {
let filename = removeFileFormat(image);
if (!listOfCompressedImages.includes(filename)) {
sharp(resolve(assetsPath, image))
.jpeg({ quality: 50 })
.resize(1000, 1000, { withoutEnlargement: true, fit: 'inside' })
.toBuffer(function (err, buffer) {
if (err) {
console.log(err); // TODO handle error
}
const newFileName = changeFileFormat(image, 'jpg');
fs.writeFileSync(resolve(assetsPath, newFileName), buffer);
fs.rmSync(resolve(assetsPath, image));
listOfCompressedImages.push(newFileName);
if (index === arr.length - 1) {
saveListOfCompressedImages(listOfCompressedImages);
}
});
}
});
}
exports.compress = compress;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHJlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXByZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUN0QixJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDNUIsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQTtBQUVyQyxtQ0FBMkI7QUFDM0IscUNBQTZCO0FBRTdCLFNBQVMseUJBQXlCO0lBQ2hDLE9BQU8sZUFBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQUM1QixDQUFDO0FBQ0QsU0FBUyxlQUFlO0lBQ3RCLElBQUksVUFBVSxHQUFHLGdCQUFNLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDdkMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0FBQ25DLENBQUM7QUFDRCxTQUFTLDBCQUEwQixDQUFFLFNBQW1CO0lBQ3RELGVBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0FBQ25DLENBQUM7QUFDRCxTQUFTLGdCQUFnQixDQUFFLFFBQWdCO0lBQ3pDLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ25ELENBQUM7QUFDRCxTQUFTLGdCQUFnQixDQUFFLFFBQWdCLEVBQUUsWUFBb0I7SUFDL0QsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLEdBQUcsWUFBWSxDQUFBO0FBQ3hELENBQUM7QUFFRCxTQUFnQixRQUFRO0lBQ3RCLElBQUksVUFBVSxHQUFHLGdCQUFNLENBQUMsYUFBYSxFQUFFLENBQUE7SUFFdkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDOUIsaURBQWlEO1FBQ2pELE9BQU07S0FDUDtJQUVELElBQUksc0JBQXNCLEdBQUcseUJBQXlCLEVBQUUsQ0FBQTtJQUN4RCxJQUFJLFlBQVksR0FBRyxlQUFlLEVBQUUsQ0FBQTtJQUVwQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUN6QyxJQUFJLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUV0QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzlDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO2lCQUM5QixJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7aUJBQ3JCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQztpQkFDL0QsUUFBUSxDQUFDLFVBQVUsR0FBRyxFQUFFLE1BQU07Z0JBQzdCLElBQUksR0FBRyxFQUFFO29CQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxvQkFBb0I7aUJBQ3RDO2dCQUVELE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQTtnQkFFbEQsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFBO2dCQUMxRCxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQTtnQkFDckMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO2dCQUV4QyxJQUFJLEtBQUssS0FBSyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDNUIsMEJBQTBCLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtpQkFDbkQ7WUFDSCxDQUFDLENBQUMsQ0FBQTtTQUNMO0lBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBbkNELDRCQW1DQyJ9
;