-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
36 lines (28 loc) · 1.05 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
const fs = require("fs");
const imagescript = require('imagescript');
const webp = require('webp-converter');
const inputPath = "./input";
const outputPath = "./output"
const recursiveFolder = async (path) => {
const files = fs.readdirSync(path);
files.map(async (file) => {
const fullPath = `${path}/${file}`;
const isDirectory = fs.lstatSync(fullPath).isDirectory();
if (isDirectory) {
await recursiveFolder(fullPath);
return;
}
const finalOutputFolder = fullPath.replace(file, "").replace(inputPath, outputPath);
const folderExists = fs.existsSync(finalOutputFolder);
if (!folderExists) {
fs.mkdirSync(finalOutputFolder);
}
const finalOutput = fullPath.replace(".jpg", ".webp").replace(".jpeg", ".webp").replace(inputPath, outputPath);
await webp.cwebp(fullPath, finalOutput, "-q 100", logging="-v");
console.log("image created at:", finalOutput);
});
};
const main = async () => {
await recursiveFolder(inputPath);
};
main();