aboutsummaryrefslogtreecommitdiff
path: root/src/server/downsize.ts
blob: cd0d83812286b3cce7e95a8a6f313bddda71f028 (plain)
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
37
38
39
40
import * as sharp from 'sharp';
import * as fs from 'fs';

const folder = "./src/server/public/files/";
const pngTypes = ["png", "PNG"];
const jpgTypes = ["jpg", "JPG", "jpeg", "JPEG"];
const smallResizer = sharp().resize(100);
fs.readdir(folder, async (err, files) => {
    if (err) {
        console.log(err);
        return;
    }
    // files.forEach(file => {
    //     if (file.includes("_s") || file.includes("_m") || file.includes("_l")) {
    //         fs.unlink(folder + file, () => { });
    //     }
    // });
    for (const file of files) {
        const filesplit = file.split(".");
        const resizers = [
            { resizer: sharp().resize(100, undefined, { withoutEnlargement: true }), suffix: "_s" },
            { resizer: sharp().resize(400, undefined, { withoutEnlargement: true }), suffix: "_m" },
            { resizer: sharp().resize(900, undefined, { withoutEnlargement: true }), suffix: "_l" },
        ];
        if (pngTypes.some(type => file.endsWith(type))) {
            resizers.forEach(element => {
                element.resizer = element.resizer.png();
            });
        } else if (jpgTypes.some(type => file.endsWith(type))) {
            resizers.forEach(element => {
                element.resizer = element.resizer.jpeg();
            });
        } else {
            continue;
        }
        resizers.forEach(resizer => {
            fs.createReadStream(folder + file).pipe(resizer.resizer).pipe(fs.createWriteStream(folder + filesplit[0] + resizer.suffix + "." + filesplit[1]));
        });
    }
});