28 lines
841 B
JavaScript
28 lines
841 B
JavaScript
const fs = require('fs');
|
|
const icns = require('./../js/icns-util.js');
|
|
const imageSize = require('./../js/image-size.js');
|
|
|
|
module.exports = async ({ src, dest, item }) => {
|
|
return new Promise(async (resolve, reject) => {
|
|
try {
|
|
// 1. parsing and generate thumbnail file to dest
|
|
await icns.icns2png(src, dest);
|
|
let size = await imageSize(dest);
|
|
|
|
// 2. Check if the result is correct
|
|
if (!fs.existsSync(dest) || size.width === 0) {
|
|
return reject(new Error(`icns file thumbnail generate fail.`));
|
|
}
|
|
|
|
// 3. update the item dimensions
|
|
item.height = size?.height || item.height;
|
|
item.width = size?.width || item.width;
|
|
|
|
// 4. return the result
|
|
return resolve(item);
|
|
}
|
|
catch (err) {
|
|
return reject(err);
|
|
}
|
|
});
|
|
} |