diginext-img-magic-cli 0.4.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -0
- package/dist/plugins/getAllFiles.d.ts +1 -1
- package/dist/plugins/getAllFiles.js +8 -5
- package/dist/plugins/getAllFiles.js.map +1 -0
- package/dist/plugins/isImageSupported.js.map +1 -0
- package/esm/index.js +12 -1
- package/esm/index.js.map +1 -0
- package/esm/plugins/getAllFiles.d.ts +1 -1
- package/esm/plugins/getAllFiles.js +8 -5
- package/esm/plugins/getAllFiles.js.map +1 -0
- package/esm/plugins/isImageSupported.js.map +1 -0
- package/package.json +1 -1
- package/dist/esm/chunk-F2OZKBDD.js +0 -21
- package/dist/esm/chunk-FTA5RKYX.js +0 -8
- package/dist/esm/chunk-PFOUXJUO.js +0 -14
- package/dist/esm/index.js +0 -380
- package/dist/esm/plugins/getAllFiles.js +0 -7
- package/dist/esm/plugins/isImageSupported.js +0 -7
- package/dist/index.d.mts +0 -2
- package/dist/plugins/getAllFiles.d.mts +0 -3
- package/dist/plugins/isImageSupported.d.mts +0 -3
package/dist/index.js
CHANGED
|
@@ -247,7 +247,7 @@ class ImageConverter {
|
|
|
247
247
|
// Validate input directory
|
|
248
248
|
await this.validateDirectory();
|
|
249
249
|
// Get all files
|
|
250
|
-
const files = (0, getAllFiles_1.default)(this.options.dir);
|
|
250
|
+
const files = (0, getAllFiles_1.default)(this.options.dir, undefined, this.options.ignore);
|
|
251
251
|
if (files.length === 0) {
|
|
252
252
|
console.log("📂 No files found in the specified directory.");
|
|
253
253
|
return;
|
|
@@ -302,6 +302,13 @@ async function parseArguments() {
|
|
|
302
302
|
describe: "Number of concurrent workers",
|
|
303
303
|
type: "number",
|
|
304
304
|
default: 12,
|
|
305
|
+
})
|
|
306
|
+
.option("ignore", {
|
|
307
|
+
alias: "i",
|
|
308
|
+
describe: "Folder names to ignore (can specify multiple)",
|
|
309
|
+
type: "string",
|
|
310
|
+
array: true,
|
|
311
|
+
default: [],
|
|
305
312
|
})
|
|
306
313
|
.help("h")
|
|
307
314
|
.alias("h", "help")
|
|
@@ -312,6 +319,7 @@ async function parseArguments() {
|
|
|
312
319
|
thumb: argv.thumb,
|
|
313
320
|
maxsize: argv.maxsize,
|
|
314
321
|
concurrency: argv.concurrency,
|
|
322
|
+
ignore: argv.ignore,
|
|
315
323
|
};
|
|
316
324
|
}
|
|
317
325
|
async function main() {
|
|
@@ -323,6 +331,9 @@ async function main() {
|
|
|
323
331
|
console.log(`📏 Max size: ${options.maxsize}px`);
|
|
324
332
|
console.log(`🖼️ Generate thumbnails: ${options.thumb ? "Yes" : "No"}`);
|
|
325
333
|
console.log(`⚡ Concurrency: ${options.concurrency}`);
|
|
334
|
+
if (options.ignore && options.ignore.length > 0) {
|
|
335
|
+
console.log(`🚫 Ignoring folders: ${options.ignore.join(", ")}`);
|
|
336
|
+
}
|
|
326
337
|
console.log("=".repeat(30));
|
|
327
338
|
const converter = new ImageConverter(options);
|
|
328
339
|
await converter.convert();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const getAllFiles: (dirPath: string, arrayOfFiles?: Array<string
|
|
1
|
+
declare const getAllFiles: (dirPath: string, arrayOfFiles?: Array<string>, ignoreFolders?: string[]) => string[];
|
|
2
2
|
export default getAllFiles;
|
|
@@ -5,17 +5,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const fs_1 = __importDefault(require("fs"));
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const getAllFiles = function (dirPath, arrayOfFiles) {
|
|
8
|
+
const getAllFiles = function (dirPath, arrayOfFiles, ignoreFolders) {
|
|
9
9
|
const files = fs_1.default.readdirSync(dirPath);
|
|
10
10
|
arrayOfFiles = arrayOfFiles || [];
|
|
11
11
|
files.forEach(function (file) {
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
const dirFile = path_1.default.join(dirPath, "/", file).replace(/\\/g, "/");
|
|
13
|
+
if (fs_1.default.statSync(dirFile).isDirectory()) {
|
|
14
|
+
// Skip ignored folders
|
|
15
|
+
if (ignoreFolders && ignoreFolders.includes(dirFile))
|
|
16
|
+
return;
|
|
17
|
+
arrayOfFiles = getAllFiles(dirFile, arrayOfFiles, ignoreFolders);
|
|
14
18
|
}
|
|
15
19
|
else {
|
|
16
|
-
const __path = path_1.default.join(dirPath, "/", file).replace(/\\/g, "/");
|
|
17
20
|
if (arrayOfFiles)
|
|
18
|
-
arrayOfFiles.push(
|
|
21
|
+
arrayOfFiles.push(dirFile);
|
|
19
22
|
}
|
|
20
23
|
});
|
|
21
24
|
return arrayOfFiles;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAllFiles.js","sourceRoot":"","sources":["../../src/plugins/getAllFiles.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,MAAM,WAAW,GAAG,UAAU,OAAe,EAAE,YAA4B;IAC1E,MAAM,KAAK,GAAG,YAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEtC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;IAElC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI;QAC3B,IAAI,YAAE,CAAC,QAAQ,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;YACpD,YAAY,GAAG,WAAW,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC;SAC/D;aAAM;YACN,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACjE,IAAI,YAAY;gBAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC5C;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACrB,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isImageSupported.js","sourceRoot":"","sources":["../../src/plugins/isImageSupported.ts"],"names":[],"mappings":";;AAAA,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAEvB,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAEtC,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;QACpC,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,IAAI,CAAC,CAAC;AACnB,CAAC,CAAC;AAEF,kBAAe,gBAAgB,CAAC"}
|
package/esm/index.js
CHANGED
|
@@ -242,7 +242,7 @@ class ImageConverter {
|
|
|
242
242
|
// Validate input directory
|
|
243
243
|
await this.validateDirectory();
|
|
244
244
|
// Get all files
|
|
245
|
-
const files = getAllFiles(this.options.dir);
|
|
245
|
+
const files = getAllFiles(this.options.dir, undefined, this.options.ignore);
|
|
246
246
|
if (files.length === 0) {
|
|
247
247
|
console.log("📂 No files found in the specified directory.");
|
|
248
248
|
return;
|
|
@@ -297,6 +297,13 @@ async function parseArguments() {
|
|
|
297
297
|
describe: "Number of concurrent workers",
|
|
298
298
|
type: "number",
|
|
299
299
|
default: 12,
|
|
300
|
+
})
|
|
301
|
+
.option("ignore", {
|
|
302
|
+
alias: "i",
|
|
303
|
+
describe: "Folder names to ignore (can specify multiple)",
|
|
304
|
+
type: "string",
|
|
305
|
+
array: true,
|
|
306
|
+
default: [],
|
|
300
307
|
})
|
|
301
308
|
.help("h")
|
|
302
309
|
.alias("h", "help")
|
|
@@ -307,6 +314,7 @@ async function parseArguments() {
|
|
|
307
314
|
thumb: argv.thumb,
|
|
308
315
|
maxsize: argv.maxsize,
|
|
309
316
|
concurrency: argv.concurrency,
|
|
317
|
+
ignore: argv.ignore,
|
|
310
318
|
};
|
|
311
319
|
}
|
|
312
320
|
async function main() {
|
|
@@ -318,6 +326,9 @@ async function main() {
|
|
|
318
326
|
console.log(`📏 Max size: ${options.maxsize}px`);
|
|
319
327
|
console.log(`🖼️ Generate thumbnails: ${options.thumb ? "Yes" : "No"}`);
|
|
320
328
|
console.log(`⚡ Concurrency: ${options.concurrency}`);
|
|
329
|
+
if (options.ignore && options.ignore.length > 0) {
|
|
330
|
+
console.log(`🚫 Ignoring folders: ${options.ignore.join(", ")}`);
|
|
331
|
+
}
|
|
321
332
|
console.log("=".repeat(30));
|
|
322
333
|
const converter = new ImageConverter(options);
|
|
323
334
|
await converter.convert();
|
package/esm/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const getAllFiles: (dirPath: string, arrayOfFiles?: Array<string
|
|
1
|
+
declare const getAllFiles: (dirPath: string, arrayOfFiles?: Array<string>, ignoreFolders?: string[]) => string[];
|
|
2
2
|
export default getAllFiles;
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import path from "path";
|
|
3
|
-
const getAllFiles = function (dirPath, arrayOfFiles) {
|
|
3
|
+
const getAllFiles = function (dirPath, arrayOfFiles, ignoreFolders) {
|
|
4
4
|
const files = fs.readdirSync(dirPath);
|
|
5
5
|
arrayOfFiles = arrayOfFiles || [];
|
|
6
6
|
files.forEach(function (file) {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
const dirFile = path.join(dirPath, "/", file).replace(/\\/g, "/");
|
|
8
|
+
if (fs.statSync(dirFile).isDirectory()) {
|
|
9
|
+
// Skip ignored folders
|
|
10
|
+
if (ignoreFolders && ignoreFolders.includes(dirFile))
|
|
11
|
+
return;
|
|
12
|
+
arrayOfFiles = getAllFiles(dirFile, arrayOfFiles, ignoreFolders);
|
|
9
13
|
}
|
|
10
14
|
else {
|
|
11
|
-
const __path = path.join(dirPath, "/", file).replace(/\\/g, "/");
|
|
12
15
|
if (arrayOfFiles)
|
|
13
|
-
arrayOfFiles.push(
|
|
16
|
+
arrayOfFiles.push(dirFile);
|
|
14
17
|
}
|
|
15
18
|
});
|
|
16
19
|
return arrayOfFiles;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAllFiles.js","sourceRoot":"","sources":["../../src/plugins/getAllFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,WAAW,GAAG,UAAU,OAAe,EAAE,YAA4B;IAC1E,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEtC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;IAElC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI;QAC3B,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;YACpD,YAAY,GAAG,WAAW,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC;SAC/D;aAAM;YACN,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACjE,IAAI,YAAY;gBAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC5C;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACrB,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isImageSupported.js","sourceRoot":"","sources":["../../src/plugins/isImageSupported.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAEvB,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAEtC,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;QACpC,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,IAAI,CAAC,CAAC;AACnB,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// src/plugins/getAllFiles.ts
|
|
2
|
-
import fs from "fs";
|
|
3
|
-
import path from "path";
|
|
4
|
-
var getAllFiles = function(dirPath, arrayOfFiles) {
|
|
5
|
-
const files = fs.readdirSync(dirPath);
|
|
6
|
-
arrayOfFiles = arrayOfFiles || [];
|
|
7
|
-
files.forEach(function(file) {
|
|
8
|
-
if (fs.statSync(dirPath + "/" + file).isDirectory()) {
|
|
9
|
-
arrayOfFiles = getAllFiles(dirPath + "/" + file, arrayOfFiles);
|
|
10
|
-
} else {
|
|
11
|
-
const __path = path.join(dirPath, "/", file).replace(/\\/g, "/");
|
|
12
|
-
if (arrayOfFiles) arrayOfFiles.push(__path);
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
return arrayOfFiles;
|
|
16
|
-
};
|
|
17
|
-
var getAllFiles_default = getAllFiles;
|
|
18
|
-
|
|
19
|
-
export {
|
|
20
|
-
getAllFiles_default
|
|
21
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
// src/plugins/isImageSupported.ts
|
|
2
|
-
var isImageSupported = (url) => {
|
|
3
|
-
if (!url) return false;
|
|
4
|
-
const arr = [".png", ".jpg", ".jpeg"];
|
|
5
|
-
const index = arr.findIndex((item) => {
|
|
6
|
-
return url.indexOf(item) >= 0;
|
|
7
|
-
});
|
|
8
|
-
return index >= 0;
|
|
9
|
-
};
|
|
10
|
-
var isImageSupported_default = isImageSupported;
|
|
11
|
-
|
|
12
|
-
export {
|
|
13
|
-
isImageSupported_default
|
|
14
|
-
};
|
package/dist/esm/index.js
DELETED
|
@@ -1,380 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getAllFiles_default
|
|
3
|
-
} from "./chunk-F2OZKBDD.js";
|
|
4
|
-
import {
|
|
5
|
-
isImageSupported_default
|
|
6
|
-
} from "./chunk-PFOUXJUO.js";
|
|
7
|
-
import {
|
|
8
|
-
__commonJS
|
|
9
|
-
} from "./chunk-FTA5RKYX.js";
|
|
10
|
-
|
|
11
|
-
// package.json
|
|
12
|
-
var require_package = __commonJS({
|
|
13
|
-
"package.json"(exports, module) {
|
|
14
|
-
module.exports = {
|
|
15
|
-
name: "diginext-img-magic-cli",
|
|
16
|
-
version: "0.4.0",
|
|
17
|
-
sideEffects: false,
|
|
18
|
-
readme: "README.md",
|
|
19
|
-
bin: {
|
|
20
|
-
towebp: "bin/towebp"
|
|
21
|
-
},
|
|
22
|
-
homepage: "https://wearetopgroup.com",
|
|
23
|
-
author: {
|
|
24
|
-
name: "TOP GROUP (a.k.a Digitop)",
|
|
25
|
-
email: "dev@wearetopgroup.com"
|
|
26
|
-
},
|
|
27
|
-
keywords: [
|
|
28
|
-
"utils",
|
|
29
|
-
"plugins",
|
|
30
|
-
"diginext",
|
|
31
|
-
"diginext-img-magic-cli",
|
|
32
|
-
"utilities",
|
|
33
|
-
"helper",
|
|
34
|
-
"extra"
|
|
35
|
-
],
|
|
36
|
-
main: "./dist/index.js",
|
|
37
|
-
files: [
|
|
38
|
-
"bin",
|
|
39
|
-
"dist",
|
|
40
|
-
"esm"
|
|
41
|
-
],
|
|
42
|
-
scripts: {
|
|
43
|
-
build: "tsc --module commonjs --outDir dist && tsc --module esnext --outDir esm ",
|
|
44
|
-
build_tsup: "tsup src/**/*.ts --format esm,cjs --dts --legacy-output",
|
|
45
|
-
"prebuild:win32": "rd /S /Q dist esm",
|
|
46
|
-
"prebuild:darwin:linux": "rm -rf dist && rm -rf esm",
|
|
47
|
-
"prebuild:default": "rm -rf dist && rm -rf esm",
|
|
48
|
-
release: "npm run build && npm publish",
|
|
49
|
-
dev: 'npm run prebuild && concurrently "tsc --module commonjs --outDir dist --watch "',
|
|
50
|
-
lint: "TIMING=1 eslint src --fix",
|
|
51
|
-
clean: "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
|
|
52
|
-
},
|
|
53
|
-
dependencies: {
|
|
54
|
-
async: "3.2.6",
|
|
55
|
-
dayjs: "1.11.7",
|
|
56
|
-
"diginext-utils": "4.1.3",
|
|
57
|
-
dotenv: "16.6.1",
|
|
58
|
-
sharp: "0.34.5",
|
|
59
|
-
yargs: "17.7.1"
|
|
60
|
-
},
|
|
61
|
-
publishConfig: {
|
|
62
|
-
access: "public"
|
|
63
|
-
},
|
|
64
|
-
devDependencies: {
|
|
65
|
-
"@types/async": "3.2.24",
|
|
66
|
-
"@types/jest": "29.4.4",
|
|
67
|
-
"@types/node": "20.15.0",
|
|
68
|
-
"@types/yargs": "17.0.22",
|
|
69
|
-
concurrently: "7.6.0",
|
|
70
|
-
eslint: "8.36.0",
|
|
71
|
-
"eslint-plugin-import": "2.27.5",
|
|
72
|
-
esm: "3.2.25",
|
|
73
|
-
tsup: "8.5.1",
|
|
74
|
-
typescript: "4.9.5"
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
// src/index.ts
|
|
81
|
-
import yargs from "yargs";
|
|
82
|
-
import fs from "fs/promises";
|
|
83
|
-
import fsSync from "fs";
|
|
84
|
-
import path from "path";
|
|
85
|
-
import { queue } from "async";
|
|
86
|
-
import { getFileExtension, getFileNameWithoutExtension } from "diginext-utils/string";
|
|
87
|
-
import sharp from "sharp";
|
|
88
|
-
var { version } = require_package();
|
|
89
|
-
var ImageConverter = class {
|
|
90
|
-
constructor(options) {
|
|
91
|
-
this.outputDirWebp = "";
|
|
92
|
-
this.outputDirThumb = "";
|
|
93
|
-
this.results = [];
|
|
94
|
-
this.processedCount = 0;
|
|
95
|
-
this.options = options;
|
|
96
|
-
this.setupOutputDirectories();
|
|
97
|
-
}
|
|
98
|
-
setupOutputDirectories() {
|
|
99
|
-
const normalizedDir = this.options.dir.replace(/\\/g, "/");
|
|
100
|
-
const folderName = getFileNameWithoutExtension(normalizedDir);
|
|
101
|
-
const parentDir = path.dirname(normalizedDir);
|
|
102
|
-
this.outputDirWebp = path.join(parentDir, `${folderName}-webp`);
|
|
103
|
-
this.outputDirThumb = path.join(parentDir, `${folderName}-thumb-webp`);
|
|
104
|
-
}
|
|
105
|
-
async ensureDirectoryExists(dirPath) {
|
|
106
|
-
try {
|
|
107
|
-
if (fsSync.existsSync(dirPath)) {
|
|
108
|
-
await fs.rm(dirPath, { recursive: true });
|
|
109
|
-
}
|
|
110
|
-
await fs.mkdir(dirPath, { recursive: true });
|
|
111
|
-
} catch (error) {
|
|
112
|
-
throw new Error(`Failed to create directory ${dirPath}: ${error}`);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
async validateDirectory() {
|
|
116
|
-
try {
|
|
117
|
-
const stats = await fs.lstat(this.options.dir);
|
|
118
|
-
if (!stats.isDirectory()) {
|
|
119
|
-
throw new Error("Path is not a directory");
|
|
120
|
-
}
|
|
121
|
-
} catch (error) {
|
|
122
|
-
throw new Error(`Invalid directory: ${this.options.dir}`);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
checkForDuplicateNames(files) {
|
|
126
|
-
const nameMap = /* @__PURE__ */ new Map();
|
|
127
|
-
files.forEach((file) => {
|
|
128
|
-
if (isImageSupported_default(file)) {
|
|
129
|
-
const nameWithoutExt = getFileNameWithoutExtension(file);
|
|
130
|
-
const relativePath = path.dirname(file.replace(this.options.dir, ""));
|
|
131
|
-
const key = path.join(relativePath, nameWithoutExt);
|
|
132
|
-
if (!nameMap.has(key)) {
|
|
133
|
-
nameMap.set(key, []);
|
|
134
|
-
}
|
|
135
|
-
nameMap.get(key).push(file);
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
const duplicates = [];
|
|
139
|
-
nameMap.forEach((files2, name) => {
|
|
140
|
-
if (files2.length > 1) {
|
|
141
|
-
duplicates.push(...files2);
|
|
142
|
-
console.warn(`\u26A0\uFE0F Duplicate names found for: ${name}`);
|
|
143
|
-
console.warn(` Files: ${files2.join(", ")}`);
|
|
144
|
-
}
|
|
145
|
-
});
|
|
146
|
-
return duplicates;
|
|
147
|
-
}
|
|
148
|
-
async convertSingleImage(task) {
|
|
149
|
-
const { inputPath, index, total } = task;
|
|
150
|
-
const startTime = performance.now();
|
|
151
|
-
const startMemory = process.memoryUsage().heapUsed;
|
|
152
|
-
try {
|
|
153
|
-
const normalizedPath = inputPath.replace(/\\/g, "/");
|
|
154
|
-
const fileExt = getFileExtension(normalizedPath);
|
|
155
|
-
const isSupported = isImageSupported_default(normalizedPath);
|
|
156
|
-
if (!isSupported) {
|
|
157
|
-
const outputPath = normalizedPath.replace(this.options.dir, this.outputDirWebp);
|
|
158
|
-
await fs.mkdir(path.dirname(outputPath), { recursive: true });
|
|
159
|
-
await fs.copyFile(normalizedPath, outputPath);
|
|
160
|
-
const endTime2 = performance.now();
|
|
161
|
-
const endMemory2 = process.memoryUsage().heapUsed;
|
|
162
|
-
return {
|
|
163
|
-
success: true,
|
|
164
|
-
input: inputPath,
|
|
165
|
-
output: outputPath,
|
|
166
|
-
metrics: {
|
|
167
|
-
durationMs: endTime2 - startTime,
|
|
168
|
-
memoryUsedMB: (endMemory2 - startMemory) / 1024 / 1024
|
|
169
|
-
}
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
const webpOutputPath = normalizedPath.replace(this.options.dir, this.outputDirWebp).replace(`.${fileExt}`, ".webp");
|
|
173
|
-
await fs.mkdir(path.dirname(webpOutputPath), { recursive: true });
|
|
174
|
-
await sharp(normalizedPath).webp().toFile(webpOutputPath);
|
|
175
|
-
const endTime = performance.now();
|
|
176
|
-
const endMemory = process.memoryUsage().heapUsed;
|
|
177
|
-
return {
|
|
178
|
-
success: true,
|
|
179
|
-
input: inputPath,
|
|
180
|
-
output: webpOutputPath,
|
|
181
|
-
metrics: {
|
|
182
|
-
durationMs: endTime - startTime,
|
|
183
|
-
memoryUsedMB: (endMemory - startMemory) / 1024 / 1024
|
|
184
|
-
}
|
|
185
|
-
};
|
|
186
|
-
} catch (error) {
|
|
187
|
-
const endTime = performance.now();
|
|
188
|
-
const endMemory = process.memoryUsage().heapUsed;
|
|
189
|
-
return {
|
|
190
|
-
success: false,
|
|
191
|
-
input: inputPath,
|
|
192
|
-
error: error instanceof Error ? error.message : String(error),
|
|
193
|
-
metrics: {
|
|
194
|
-
durationMs: endTime - startTime,
|
|
195
|
-
memoryUsedMB: (endMemory - startMemory) / 1024 / 1024
|
|
196
|
-
}
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
createWorker() {
|
|
201
|
-
return async (task) => {
|
|
202
|
-
try {
|
|
203
|
-
const result = await this.convertSingleImage(task);
|
|
204
|
-
this.results.push(result);
|
|
205
|
-
this.processedCount++;
|
|
206
|
-
if (!result.success) {
|
|
207
|
-
console.error(`\u274C Failed to convert ${task.inputPath}: ${result.error}`);
|
|
208
|
-
} else {
|
|
209
|
-
console.log(`\u2714 [${this.processedCount}/${task.total}] Completed: ${path.basename(task.inputPath)}`);
|
|
210
|
-
}
|
|
211
|
-
} catch (error) {
|
|
212
|
-
const errorResult = {
|
|
213
|
-
success: false,
|
|
214
|
-
input: task.inputPath,
|
|
215
|
-
error: error instanceof Error ? error.message : String(error)
|
|
216
|
-
};
|
|
217
|
-
this.results.push(errorResult);
|
|
218
|
-
this.processedCount++;
|
|
219
|
-
console.error(`\u274C Worker error for ${task.inputPath}:`, error);
|
|
220
|
-
}
|
|
221
|
-
};
|
|
222
|
-
}
|
|
223
|
-
async processWithQueue(files) {
|
|
224
|
-
return new Promise((resolve, reject) => {
|
|
225
|
-
const concurrency = this.options.concurrency || 10;
|
|
226
|
-
console.log(`\u{1F680} Starting conversion of ${files.length} files with concurrency: ${concurrency}`);
|
|
227
|
-
const q = queue(this.createWorker(), concurrency);
|
|
228
|
-
q.error((error, task) => {
|
|
229
|
-
console.error("Queue error occurred:", error);
|
|
230
|
-
console.error("Failed task:", task);
|
|
231
|
-
});
|
|
232
|
-
q.drain(() => {
|
|
233
|
-
console.log("\n\u{1F3AF} All tasks completed!");
|
|
234
|
-
resolve(this.results);
|
|
235
|
-
});
|
|
236
|
-
q.empty(() => {
|
|
237
|
-
console.log("\u{1F4ED} Queue is empty, waiting for workers to finish...");
|
|
238
|
-
});
|
|
239
|
-
const tasks = files.map((file, index) => ({
|
|
240
|
-
inputPath: file,
|
|
241
|
-
index: index + 1,
|
|
242
|
-
total: files.length
|
|
243
|
-
}));
|
|
244
|
-
q.push(tasks, (error) => {
|
|
245
|
-
if (error) {
|
|
246
|
-
console.error("Task completion error:", error);
|
|
247
|
-
}
|
|
248
|
-
});
|
|
249
|
-
if (files.length === 0) {
|
|
250
|
-
resolve([]);
|
|
251
|
-
}
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
async cleanup() {
|
|
255
|
-
try {
|
|
256
|
-
if (fsSync.existsSync(".temp")) {
|
|
257
|
-
await fs.rm(".temp", { recursive: true });
|
|
258
|
-
}
|
|
259
|
-
} catch (error) {
|
|
260
|
-
console.warn("\u26A0\uFE0F Warning: Failed to cleanup temp directory:", error);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
printSummary(results, totalDurationMs) {
|
|
264
|
-
const successful = results.filter((r) => r.success).length;
|
|
265
|
-
const failed = results.filter((r) => !r.success).length;
|
|
266
|
-
const totalProcessingTime = results.reduce((sum, r) => {
|
|
267
|
-
var _a;
|
|
268
|
-
return sum + (((_a = r.metrics) == null ? void 0 : _a.durationMs) || 0);
|
|
269
|
-
}, 0);
|
|
270
|
-
const avgTimePerImage = results.length > 0 ? totalProcessingTime / results.length : 0;
|
|
271
|
-
const maxMemoryUsed = Math.max(...results.map((r) => {
|
|
272
|
-
var _a;
|
|
273
|
-
return ((_a = r.metrics) == null ? void 0 : _a.memoryUsedMB) || 0;
|
|
274
|
-
}), 0);
|
|
275
|
-
const currentMemory = process.memoryUsage();
|
|
276
|
-
console.log("\n" + "=".repeat(50));
|
|
277
|
-
console.log("\u{1F4CA} CONVERSION SUMMARY");
|
|
278
|
-
console.log("=".repeat(50));
|
|
279
|
-
console.log(`\u2714 Successful: ${successful}`);
|
|
280
|
-
console.log(`\u274C Failed: ${failed}`);
|
|
281
|
-
console.log(`\u{1F4C1} Output directory: ${this.outputDirWebp}`);
|
|
282
|
-
if (this.options.thumb) {
|
|
283
|
-
console.log(`\u{1F5BC}\uFE0F Thumbnail directory: ${this.outputDirThumb}`);
|
|
284
|
-
}
|
|
285
|
-
console.log("\n" + "-".repeat(50));
|
|
286
|
-
console.log("\u23F1\uFE0F PERFORMANCE METRICS");
|
|
287
|
-
console.log("-".repeat(50));
|
|
288
|
-
console.log(`\u23F1\uFE0F Total wall time: ${(totalDurationMs / 1e3).toFixed(2)}s`);
|
|
289
|
-
console.log(`\u23F1\uFE0F Total processing time: ${(totalProcessingTime / 1e3).toFixed(2)}s`);
|
|
290
|
-
console.log(`\u23F1\uFE0F Avg time per image: ${avgTimePerImage.toFixed(0)}ms`);
|
|
291
|
-
console.log(`\u{1F4BE} Peak heap memory: ${(currentMemory.heapUsed / 1024 / 1024).toFixed(2)} MB`);
|
|
292
|
-
console.log(`\u{1F4BE} Heap total: ${(currentMemory.heapTotal / 1024 / 1024).toFixed(2)} MB`);
|
|
293
|
-
console.log(`\u{1F4BE} RSS (total process): ${(currentMemory.rss / 1024 / 1024).toFixed(2)} MB`);
|
|
294
|
-
if (failed > 0) {
|
|
295
|
-
console.log("\n\u274C Failed conversions:");
|
|
296
|
-
results.filter((r) => !r.success).forEach((r) => console.log(` \u2022 ${path.basename(r.input)}: ${r.error}`));
|
|
297
|
-
}
|
|
298
|
-
console.log("=".repeat(50));
|
|
299
|
-
}
|
|
300
|
-
async convert() {
|
|
301
|
-
const conversionStartTime = performance.now();
|
|
302
|
-
try {
|
|
303
|
-
this.results = [];
|
|
304
|
-
this.processedCount = 0;
|
|
305
|
-
await this.validateDirectory();
|
|
306
|
-
const files = getAllFiles_default(this.options.dir);
|
|
307
|
-
if (files.length === 0) {
|
|
308
|
-
console.log("\u{1F4C2} No files found in the specified directory.");
|
|
309
|
-
return;
|
|
310
|
-
}
|
|
311
|
-
const duplicates = this.checkForDuplicateNames(files);
|
|
312
|
-
if (duplicates.length > 0) {
|
|
313
|
-
throw new Error("Cannot proceed: Found files with duplicate names but different extensions.");
|
|
314
|
-
}
|
|
315
|
-
await this.ensureDirectoryExists(this.outputDirWebp);
|
|
316
|
-
if (this.options.thumb) {
|
|
317
|
-
await this.ensureDirectoryExists(this.outputDirThumb);
|
|
318
|
-
}
|
|
319
|
-
const results = await this.processWithQueue(files);
|
|
320
|
-
await this.cleanup();
|
|
321
|
-
const totalDurationMs = performance.now() - conversionStartTime;
|
|
322
|
-
this.printSummary(results, totalDurationMs);
|
|
323
|
-
} catch (error) {
|
|
324
|
-
console.error("\u{1F4A5} Conversion failed:", error instanceof Error ? error.message : String(error));
|
|
325
|
-
throw error;
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
};
|
|
329
|
-
async function parseArguments() {
|
|
330
|
-
const argv = await yargs(process.argv.slice(2)).usage("Usage: $0 [options]").example('$0 --dir "./images" --thumb --maxsize 2048 --concurrency 5', "Convert images with 5 concurrent workers").option("dir", {
|
|
331
|
-
alias: "d",
|
|
332
|
-
describe: "Source directory containing images",
|
|
333
|
-
type: "string",
|
|
334
|
-
demandOption: true
|
|
335
|
-
}).option("thumb", {
|
|
336
|
-
alias: "t",
|
|
337
|
-
describe: "Generate thumbnails",
|
|
338
|
-
type: "boolean",
|
|
339
|
-
default: false
|
|
340
|
-
}).option("maxsize", {
|
|
341
|
-
alias: "m",
|
|
342
|
-
describe: "Maximum size for converted images",
|
|
343
|
-
type: "number",
|
|
344
|
-
default: 4096
|
|
345
|
-
}).option("concurrency", {
|
|
346
|
-
alias: "c",
|
|
347
|
-
describe: "Number of concurrent workers",
|
|
348
|
-
type: "number",
|
|
349
|
-
default: 12
|
|
350
|
-
}).help("h").alias("h", "help").epilog(`Version: ${version}`).parseAsync();
|
|
351
|
-
return {
|
|
352
|
-
dir: argv.dir,
|
|
353
|
-
thumb: argv.thumb,
|
|
354
|
-
maxsize: argv.maxsize,
|
|
355
|
-
concurrency: argv.concurrency
|
|
356
|
-
};
|
|
357
|
-
}
|
|
358
|
-
async function main() {
|
|
359
|
-
try {
|
|
360
|
-
console.log(`\u{1F3A8} Image Converter v${version}`);
|
|
361
|
-
console.log("=".repeat(30));
|
|
362
|
-
const options = await parseArguments();
|
|
363
|
-
console.log(`\u{1F4C1} Source: ${options.dir}`);
|
|
364
|
-
console.log(`\u{1F4CF} Max size: ${options.maxsize}px`);
|
|
365
|
-
console.log(`\u{1F5BC}\uFE0F Generate thumbnails: ${options.thumb ? "Yes" : "No"}`);
|
|
366
|
-
console.log(`\u26A1 Concurrency: ${options.concurrency}`);
|
|
367
|
-
console.log("=".repeat(30));
|
|
368
|
-
const converter = new ImageConverter(options);
|
|
369
|
-
await converter.convert();
|
|
370
|
-
console.log("\u{1F389} All done!");
|
|
371
|
-
} catch (error) {
|
|
372
|
-
console.error("\u{1F4A5} Application error:", error instanceof Error ? error.message : String(error));
|
|
373
|
-
process.exit(1);
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
process.on("unhandledRejection", (reason, promise) => {
|
|
377
|
-
console.error("Unhandled Rejection at:", promise, "reason:", reason);
|
|
378
|
-
process.exit(1);
|
|
379
|
-
});
|
|
380
|
-
main();
|
package/dist/index.d.mts
DELETED