@ffflorian/electron-icon-generator 1.2.1 → 1.3.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/README.md +8 -5
- package/dist/cjs/cli.js +27 -0
- package/dist/cjs/cli.js.map +1 -0
- package/{index.js → dist/cjs/index.js} +10 -38
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/mjs/cli.d.ts +2 -0
- package/dist/mjs/cli.js +27 -0
- package/dist/mjs/cli.js.map +1 -0
- package/dist/mjs/index.d.ts +17 -0
- package/dist/mjs/index.js +82 -0
- package/dist/mjs/index.js.map +1 -0
- package/dist/mjs/package.json +3 -0
- package/package.json +21 -18
- package/cli.js +0 -57
- package/cli.js.map +0 -1
- package/index.js.map +0 -1
- /package/{cli.d.ts → dist/cjs/cli.d.ts} +0 -0
- /package/{index.d.ts → dist/cjs/index.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -2,13 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
Based on https://github.com/jaretburkett/electron-icon-maker.
|
|
4
4
|
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
- [Node.js](https://nodejs.org) >= 14
|
|
8
|
+
- npm (preinstalled) or [yarn](https://classic.yarnpkg.com) < 2
|
|
9
|
+
|
|
5
10
|
## Installation
|
|
6
11
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
npm install -g @ffflorian/electron-icon-generator
|
|
11
|
-
```
|
|
12
|
+
ℹ️ This is a hybrid [CommonJS](https://nodejs.org/docs/latest/api/modules.html#modules-commonjs-modules) / [ESM](https://nodejs.org/api/esm.html#introduction) module.
|
|
13
|
+
|
|
14
|
+
Run `yarn global add @ffflorian/electron-icon-generator` or `npm i -g @ffflorian/electron-icon-generator`
|
|
12
15
|
|
|
13
16
|
## Usage
|
|
14
17
|
|
package/dist/cjs/cli.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { program as commander } from 'commander';
|
|
3
|
+
import { createRequire } from 'node:module';
|
|
4
|
+
const require = createRequire(import.meta.url);
|
|
5
|
+
import { IconGenerator } from './index.js';
|
|
6
|
+
const { bin, description, version } = require('../package.json');
|
|
7
|
+
commander
|
|
8
|
+
.description(description)
|
|
9
|
+
.name(Object.keys(bin)[0])
|
|
10
|
+
.version(version)
|
|
11
|
+
.option('-i, --input <file>', 'Input PNG file (recommended size: 1024x1024)', './icon.png')
|
|
12
|
+
.option('-o, --output <folder>', 'Folder to output new icons folder', './')
|
|
13
|
+
.option('-s, --silent', `Don't log anything beside errors`, false)
|
|
14
|
+
.parse(process.argv);
|
|
15
|
+
const commanderOptions = commander.opts();
|
|
16
|
+
new IconGenerator({
|
|
17
|
+
input: commanderOptions.input,
|
|
18
|
+
output: commanderOptions.output,
|
|
19
|
+
silent: commanderOptions.silent,
|
|
20
|
+
})
|
|
21
|
+
.start()
|
|
22
|
+
.then(() => process.exit())
|
|
23
|
+
.catch(error => {
|
|
24
|
+
console.error(error);
|
|
25
|
+
process.exit(1);
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAQzC,MAAM,EAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAC,GAAgB,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE5E,SAAS;KACN,WAAW,CAAC,WAAW,CAAC;KACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,oBAAoB,EAAE,8CAA8C,EAAE,YAAY,CAAC;KAC1F,MAAM,CAAC,uBAAuB,EAAE,mCAAmC,EAAE,IAAI,CAAC;KAC1E,MAAM,CAAC,cAAc,EAAE,kCAAkC,EAAE,KAAK,CAAC;KACjE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvB,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;AAE1C,IAAI,aAAa,CAAC;IAChB,KAAK,EAAE,gBAAgB,CAAC,KAAK;IAC7B,MAAM,EAAE,gBAAgB,CAAC,MAAM;IAC/B,MAAM,EAAE,gBAAgB,CAAC,MAAM;CAChC,CAAC;KACC,KAAK,EAAE;KACP,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KAC1B,KAAK,CAAC,KAAK,CAAC,EAAE;IACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -1,28 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
-
if (k2 === undefined) k2 = k;
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc);
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
20
|
-
if (mod && mod.__esModule) return mod;
|
|
21
|
-
var result = {};
|
|
22
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
23
|
-
__setModuleDefault(result, mod);
|
|
24
|
-
return result;
|
|
25
|
-
};
|
|
26
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
27
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
28
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -32,18 +8,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
32
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
33
9
|
});
|
|
34
10
|
};
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const
|
|
41
|
-
const icon_gen_1 = __importDefault(require("icon-gen"));
|
|
42
|
-
const jimp_1 = __importDefault(require("jimp"));
|
|
43
|
-
const path = __importStar(require("path"));
|
|
11
|
+
import fs from 'fs-extra';
|
|
12
|
+
import Jimp from 'jimp';
|
|
13
|
+
import path from 'node:path';
|
|
14
|
+
import { createRequire } from 'node:module';
|
|
15
|
+
const require = createRequire(import.meta.url);
|
|
16
|
+
const icongen = require('icon-gen');
|
|
44
17
|
// eslint-disable-next-line no-magic-numbers
|
|
45
18
|
const pngSizes = [16, 24, 32, 48, 64, 128, 256, 512, 1024];
|
|
46
|
-
class IconGenerator {
|
|
19
|
+
export class IconGenerator {
|
|
47
20
|
constructor(options) {
|
|
48
21
|
this.options = options;
|
|
49
22
|
this.logConsole(options);
|
|
@@ -63,7 +36,7 @@ class IconGenerator {
|
|
|
63
36
|
yield fs.ensureDir(this.options.output);
|
|
64
37
|
yield fs.ensureDir(this.iconsDir);
|
|
65
38
|
yield fs.ensureDir(this.PNGoutputDir);
|
|
66
|
-
const image = yield
|
|
39
|
+
const image = yield Jimp.read(this.options.input);
|
|
67
40
|
const resizeFile = path.join(this.PNGoutputDir, fileName);
|
|
68
41
|
yield new Promise((resolve, reject) => image.resize(size, size, (error, result) => (error ? reject(error) : resolve(result))));
|
|
69
42
|
yield image.writeAsync(resizeFile);
|
|
@@ -81,7 +54,7 @@ class IconGenerator {
|
|
|
81
54
|
const macIconsDir = path.join(this.iconsDir, 'mac');
|
|
82
55
|
const winIconsDir = path.join(this.iconsDir, 'win');
|
|
83
56
|
yield fs.ensureDir(macIconsDir);
|
|
84
|
-
yield (
|
|
57
|
+
yield icongen(this.PNGoutputDir, macIconsDir, {
|
|
85
58
|
icns: {
|
|
86
59
|
name: 'icon',
|
|
87
60
|
sizes: pngSizes,
|
|
@@ -89,7 +62,7 @@ class IconGenerator {
|
|
|
89
62
|
report: !this.options.silent,
|
|
90
63
|
});
|
|
91
64
|
yield fs.ensureDir(winIconsDir);
|
|
92
|
-
yield (
|
|
65
|
+
yield icongen(this.PNGoutputDir, winIconsDir, {
|
|
93
66
|
icns: {
|
|
94
67
|
name: 'icon',
|
|
95
68
|
sizes: pngSizes,
|
|
@@ -123,5 +96,4 @@ class IconGenerator {
|
|
|
123
96
|
});
|
|
124
97
|
}
|
|
125
98
|
}
|
|
126
|
-
exports.IconGenerator = IconGenerator;
|
|
127
99
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;AAEA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEpC,4CAA4C;AAC5C,MAAM,QAAQ,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAQ3D,MAAM,OAAO,aAAa;IAKxB,YAAY,OAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEzB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAEY,KAAK;;YAChB,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;KAAA;IAEa,SAAS,CAAC,IAAY;;YAClC,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;YAE1C,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAE1D,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACpC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CACvF,CAAC;YACF,MAAM,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAEnC,OAAO,YAAY,UAAU,GAAG,CAAC;QACnC,CAAC;KAAA;IAEa,UAAU,CAAC,QAAgB;;YACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEtB,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;aACrC;iBAAM;gBACL,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACpD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAEpD,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBAEhC,MAAM,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE;oBAC5C,IAAI,EAAE;wBACJ,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,QAAQ;qBAChB;oBACD,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;iBAC7B,CAAC,CAAC;gBAEH,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBAEhC,MAAM,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE;oBAC5C,IAAI,EAAE;wBACJ,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,QAAQ;qBAChB;oBACD,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;iBAC7B,CAAC,CAAC;gBAEH,IAAI,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC;gBACpD,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;aAC1B;QACH,CAAC;KAAA;IAEO,UAAU,CAAC,GAAG,QAAe;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACxB,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;SAC3B;IACH,CAAC;IAEa,UAAU,CAAC,QAAgB;;YACvC,MAAM,SAAS,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC9C,MAAM,OAAO,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YAClE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAEpC,IAAI,CAAC,UAAU,CAAC,YAAY,SAAS,SAAS,OAAO,IAAI,CAAC,CAAC;YAE3D,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;aACrC;iBAAM;gBACL,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;aAC/B;QACH,CAAC;KAAA;CACF"}
|
package/dist/mjs/cli.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { program as commander } from 'commander';
|
|
3
|
+
import { createRequire } from 'node:module';
|
|
4
|
+
const require = createRequire(import.meta.url);
|
|
5
|
+
import { IconGenerator } from './index.js';
|
|
6
|
+
const { bin, description, version } = require('../package.json');
|
|
7
|
+
commander
|
|
8
|
+
.description(description)
|
|
9
|
+
.name(Object.keys(bin)[0])
|
|
10
|
+
.version(version)
|
|
11
|
+
.option('-i, --input <file>', 'Input PNG file (recommended size: 1024x1024)', './icon.png')
|
|
12
|
+
.option('-o, --output <folder>', 'Folder to output new icons folder', './')
|
|
13
|
+
.option('-s, --silent', `Don't log anything beside errors`, false)
|
|
14
|
+
.parse(process.argv);
|
|
15
|
+
const commanderOptions = commander.opts();
|
|
16
|
+
new IconGenerator({
|
|
17
|
+
input: commanderOptions.input,
|
|
18
|
+
output: commanderOptions.output,
|
|
19
|
+
silent: commanderOptions.silent,
|
|
20
|
+
})
|
|
21
|
+
.start()
|
|
22
|
+
.then(() => process.exit())
|
|
23
|
+
.catch(error => {
|
|
24
|
+
console.error(error);
|
|
25
|
+
process.exit(1);
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAQzC,MAAM,EAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAC,GAAgB,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE5E,SAAS;KACN,WAAW,CAAC,WAAW,CAAC;KACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,oBAAoB,EAAE,8CAA8C,EAAE,YAAY,CAAC;KAC1F,MAAM,CAAC,uBAAuB,EAAE,mCAAmC,EAAE,IAAI,CAAC;KAC1E,MAAM,CAAC,cAAc,EAAE,kCAAkC,EAAE,KAAK,CAAC;KACjE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvB,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;AAE1C,IAAI,aAAa,CAAC;IAChB,KAAK,EAAE,gBAAgB,CAAC,KAAK;IAC7B,MAAM,EAAE,gBAAgB,CAAC,MAAM;IAC/B,MAAM,EAAE,gBAAgB,CAAC,MAAM;CAChC,CAAC;KACC,KAAK,EAAE;KACP,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KAC1B,KAAK,CAAC,KAAK,CAAC,EAAE;IACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
export interface Options {
|
|
3
|
+
input: string;
|
|
4
|
+
output: string;
|
|
5
|
+
silent?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare class IconGenerator {
|
|
8
|
+
private readonly iconsDir;
|
|
9
|
+
private readonly options;
|
|
10
|
+
private readonly PNGoutputDir;
|
|
11
|
+
constructor(options: Options);
|
|
12
|
+
start(): Promise<void>;
|
|
13
|
+
private createPNG;
|
|
14
|
+
private createPNGs;
|
|
15
|
+
private logConsole;
|
|
16
|
+
private renamePNGs;
|
|
17
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
import Jimp from 'jimp';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { createRequire } from 'node:module';
|
|
6
|
+
const require = createRequire(import.meta.url);
|
|
7
|
+
const icongen = require('icon-gen');
|
|
8
|
+
// eslint-disable-next-line no-magic-numbers
|
|
9
|
+
const pngSizes = [16, 24, 32, 48, 64, 128, 256, 512, 1024];
|
|
10
|
+
export class IconGenerator {
|
|
11
|
+
constructor(options) {
|
|
12
|
+
this.options = options;
|
|
13
|
+
this.logConsole(options);
|
|
14
|
+
this.options.input = path.resolve(this.options.input);
|
|
15
|
+
this.options.output = path.resolve(this.options.output);
|
|
16
|
+
this.iconsDir = path.join(this.options.output, 'icons');
|
|
17
|
+
this.PNGoutputDir = path.join(this.iconsDir, 'png');
|
|
18
|
+
}
|
|
19
|
+
async start() {
|
|
20
|
+
await this.createPNGs(0);
|
|
21
|
+
}
|
|
22
|
+
async createPNG(size) {
|
|
23
|
+
const fileName = `${size.toString()}.png`;
|
|
24
|
+
await fs.ensureDir(this.options.output);
|
|
25
|
+
await fs.ensureDir(this.iconsDir);
|
|
26
|
+
await fs.ensureDir(this.PNGoutputDir);
|
|
27
|
+
const image = await Jimp.read(this.options.input);
|
|
28
|
+
const resizeFile = path.join(this.PNGoutputDir, fileName);
|
|
29
|
+
await new Promise((resolve, reject) => image.resize(size, size, (error, result) => (error ? reject(error) : resolve(result))));
|
|
30
|
+
await image.writeAsync(resizeFile);
|
|
31
|
+
return `Created "${resizeFile}"`;
|
|
32
|
+
}
|
|
33
|
+
async createPNGs(position) {
|
|
34
|
+
const info = await this.createPNG(pngSizes[position]);
|
|
35
|
+
this.logConsole(info);
|
|
36
|
+
if (position < pngSizes.length - 1) {
|
|
37
|
+
await this.createPNGs(position + 1);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
const macIconsDir = path.join(this.iconsDir, 'mac');
|
|
41
|
+
const winIconsDir = path.join(this.iconsDir, 'win');
|
|
42
|
+
await fs.ensureDir(macIconsDir);
|
|
43
|
+
await icongen(this.PNGoutputDir, macIconsDir, {
|
|
44
|
+
icns: {
|
|
45
|
+
name: 'icon',
|
|
46
|
+
sizes: pngSizes,
|
|
47
|
+
},
|
|
48
|
+
report: !this.options.silent,
|
|
49
|
+
});
|
|
50
|
+
await fs.ensureDir(winIconsDir);
|
|
51
|
+
await icongen(this.PNGoutputDir, winIconsDir, {
|
|
52
|
+
icns: {
|
|
53
|
+
name: 'icon',
|
|
54
|
+
sizes: pngSizes,
|
|
55
|
+
},
|
|
56
|
+
report: !this.options.silent,
|
|
57
|
+
});
|
|
58
|
+
this.logConsole('Renaming PNGs to Electron Format');
|
|
59
|
+
await this.renamePNGs(0);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
logConsole(...messages) {
|
|
63
|
+
if (!this.options.silent) {
|
|
64
|
+
console.info(...messages);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async renamePNGs(position) {
|
|
68
|
+
const startName = `${pngSizes[position]}.png`;
|
|
69
|
+
const endName = `${pngSizes[position]}x${pngSizes[position]}.png`;
|
|
70
|
+
const startFile = path.join(this.PNGoutputDir, startName);
|
|
71
|
+
const endFile = path.join(this.PNGoutputDir, endName);
|
|
72
|
+
await fs.rename(startFile, endFile);
|
|
73
|
+
this.logConsole(`Renamed "${startName}" to "${endName}".`);
|
|
74
|
+
if (position < pngSizes.length - 1) {
|
|
75
|
+
await this.renamePNGs(position + 1);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
this.logConsole('\nAll done');
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"author": "Florian Imdahl <git@ffflorian.de>",
|
|
3
3
|
"bin": {
|
|
4
|
-
"electron-icon-generator": "index.js"
|
|
4
|
+
"electron-icon-generator": "dist/cjs/index.js"
|
|
5
5
|
},
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"commander": "10.0.
|
|
7
|
+
"commander": "10.0.1",
|
|
8
8
|
"fs-extra": "11.1.1",
|
|
9
9
|
"icon-gen": "3.0.1",
|
|
10
10
|
"jimp": "0.22.7"
|
|
@@ -16,15 +16,16 @@
|
|
|
16
16
|
"typescript": "5.0.4"
|
|
17
17
|
},
|
|
18
18
|
"engines": {
|
|
19
|
-
"node": ">=
|
|
19
|
+
"node": ">= 14.16"
|
|
20
|
+
},
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"import": "./dist/mjs/index.js",
|
|
24
|
+
"require": "./dist/cjs/index.js"
|
|
25
|
+
}
|
|
20
26
|
},
|
|
21
27
|
"files": [
|
|
22
|
-
"
|
|
23
|
-
"cli.js",
|
|
24
|
-
"cli.js.map",
|
|
25
|
-
"index.d.ts",
|
|
26
|
-
"index.js",
|
|
27
|
-
"index.js.map"
|
|
28
|
+
"dist"
|
|
28
29
|
],
|
|
29
30
|
"keywords": [
|
|
30
31
|
"electron",
|
|
@@ -34,19 +35,21 @@
|
|
|
34
35
|
"ico"
|
|
35
36
|
],
|
|
36
37
|
"license": "GPL-3.0",
|
|
37
|
-
"main": "index.js",
|
|
38
|
+
"main": "dist/cjs/index.js",
|
|
39
|
+
"module": "dist/mjs/index.js",
|
|
38
40
|
"name": "@ffflorian/electron-icon-generator",
|
|
39
|
-
"publishConfig": {
|
|
40
|
-
"directory": "flattened"
|
|
41
|
-
},
|
|
42
41
|
"repository": "https://github.com/ffflorian/node-packages/tree/main/packages/electron-icon-generator",
|
|
43
42
|
"scripts": {
|
|
44
|
-
"build": "
|
|
43
|
+
"build": "yarn build:cjs && yarn build:mjs && yarn generate:packagejson",
|
|
44
|
+
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
45
|
+
"build:mjs": "tsc -p tsconfig.json",
|
|
45
46
|
"clean": "rimraf dist",
|
|
46
47
|
"dist": "yarn clean && yarn build",
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
48
|
+
"generate:packagejson": "../../bin/generate-hybrid-package-json.sh",
|
|
49
|
+
"start": "ts-node-esm src/cli.ts",
|
|
50
|
+
"test": "exit 0"
|
|
50
51
|
},
|
|
51
|
-
"
|
|
52
|
+
"type": "module",
|
|
53
|
+
"version": "1.3.1",
|
|
54
|
+
"gitHead": "fee6dde4396255259028c1c723a95b9f6ec5b281"
|
|
52
55
|
}
|
package/cli.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
-
if (k2 === undefined) k2 = k;
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc);
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
20
|
-
if (mod && mod.__esModule) return mod;
|
|
21
|
-
var result = {};
|
|
22
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
23
|
-
__setModuleDefault(result, mod);
|
|
24
|
-
return result;
|
|
25
|
-
};
|
|
26
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
-
const commander_1 = require("commander");
|
|
28
|
-
const fs = __importStar(require("fs"));
|
|
29
|
-
const path = __importStar(require("path"));
|
|
30
|
-
const _1 = require("./");
|
|
31
|
-
const defaultPackageJsonPath = path.join(__dirname, 'package.json');
|
|
32
|
-
const packageJsonPath = fs.existsSync(defaultPackageJsonPath)
|
|
33
|
-
? defaultPackageJsonPath
|
|
34
|
-
: path.join(__dirname, '../package.json');
|
|
35
|
-
const packageJson = fs.readFileSync(packageJsonPath, 'utf-8');
|
|
36
|
-
const { bin, description, version } = JSON.parse(packageJson);
|
|
37
|
-
commander_1.program
|
|
38
|
-
.description(description)
|
|
39
|
-
.name(Object.keys(bin)[0])
|
|
40
|
-
.version(version)
|
|
41
|
-
.option('-i, --input <file>', 'Input PNG file (recommended size: 1024x1024)', './icon.png')
|
|
42
|
-
.option('-o, --output <folder>', 'Folder to output new icons folder', './')
|
|
43
|
-
.option('-s, --silent', `Don't log anything beside errors`, false)
|
|
44
|
-
.parse(process.argv);
|
|
45
|
-
const commanderOptions = commander_1.program.opts();
|
|
46
|
-
new _1.IconGenerator({
|
|
47
|
-
input: commanderOptions.input,
|
|
48
|
-
output: commanderOptions.output,
|
|
49
|
-
silent: commanderOptions.silent,
|
|
50
|
-
})
|
|
51
|
-
.start()
|
|
52
|
-
.then(() => process.exit())
|
|
53
|
-
.catch(error => {
|
|
54
|
-
console.error(error);
|
|
55
|
-
process.exit(1);
|
|
56
|
-
});
|
|
57
|
-
//# sourceMappingURL=cli.js.map
|
package/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAA+C;AAC/C,uCAAyB;AACzB,2CAA6B;AAE7B,yBAAiC;AAEjC,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACpE,MAAM,eAAe,GAAG,EAAE,CAAC,UAAU,CAAC,sBAAsB,CAAC;IAC3D,CAAC,CAAC,sBAAsB;IACxB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAE5C,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AAC9D,MAAM,EAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAE5D,mBAAS;KACN,WAAW,CAAC,WAAW,CAAC;KACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,oBAAoB,EAAE,8CAA8C,EAAE,YAAY,CAAC;KAC1F,MAAM,CAAC,uBAAuB,EAAE,mCAAmC,EAAE,IAAI,CAAC;KAC1E,MAAM,CAAC,cAAc,EAAE,kCAAkC,EAAE,KAAK,CAAC;KACjE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvB,MAAM,gBAAgB,GAAG,mBAAS,CAAC,IAAI,EAAE,CAAC;AAE1C,IAAI,gBAAa,CAAC;IAChB,KAAK,EAAE,gBAAgB,CAAC,KAAK;IAC7B,MAAM,EAAE,gBAAgB,CAAC,MAAM;IAC/B,MAAM,EAAE,gBAAgB,CAAC,MAAM;CAChC,CAAC;KACC,KAAK,EAAE;KACP,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KAC1B,KAAK,CAAC,KAAK,CAAC,EAAE;IACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|