@uxf/icons-generator 10.0.0 → 11.0.0
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 +97 -59
- package/package.json +3 -3
- package/src/adapters/fa-pro.d.ts +5 -0
- package/src/adapters/fa-pro.js +41 -0
- package/src/fa-pro-types.d.ts +1 -0
- package/src/fa-pro-types.js +2 -0
- package/src/scripts/gen.js +20 -2
- package/src/types.d.ts +31 -11
- package/src/types.js +0 -11
- package/src/utils/_compareSprites.d.ts +3 -2
- package/src/utils/_compareSprites.js +2 -2
- package/src/utils/_createDefinitionFileContent.d.ts +3 -2
- package/src/utils/_createDefinitionFileContent.js +21 -8
- package/src/utils/_createSpriteContent.d.ts +3 -2
- package/src/utils/_createSpriteContent.js +16 -4
- package/src/utils/_generateAdaptersFallbackFiles.d.ts +3 -0
- package/src/utils/_generateAdaptersFallbackFiles.js +27 -0
- package/src/utils/_generateDefinitionFile.d.ts +3 -2
- package/src/utils/_generateDefinitionFile.js +2 -1
- package/src/utils/_generateSeparateIconFiles.d.ts +3 -2
- package/src/utils/_generateSeparateIconFiles.js +19 -4
- package/src/utils/_generateSpriteFile.d.ts +3 -2
- package/src/utils/_generateSpriteFile.js +2 -2
- package/src/utils/_getConfig.d.ts +2 -2
- package/src/utils/_getConfig.js +5 -3
- package/src/utils/_getIconFromAdapterName.d.ts +1 -0
- package/src/utils/_getIconFromAdapterName.js +5 -0
- package/src/utils/_removeUnusedSeparateIconFiles.d.ts +3 -2
- package/src/utils/_removeUnusedSeparateIconFiles.js +13 -2
- package/src/utils/check/_check.d.ts +2 -2
- package/src/utils/check/_check.js +7 -1
- package/src/utils/check/_validateDefinitions.d.ts +3 -2
- package/src/utils/check/_validateDefinitions.js +2 -1
- package/src/utils/check/_validateSeparateIcons.js +2 -3
- package/src/utils/check/_validateSourceData.js +2 -3
- package/src/utils/check/_validateSprite.d.ts +3 -2
- package/src/utils/check/_validateSprite.js +2 -2
- package/tests/icons.config.d.ts +1 -0
- package/tests/icons.config.js +11 -1
package/src/scripts/gen.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const _generateAdaptersFallbackFiles_1 = require("../utils/_generateAdaptersFallbackFiles");
|
|
4
5
|
const _generateConfigFile_1 = require("../utils/_generateConfigFile");
|
|
5
6
|
const _generateDefinitionFile_1 = require("../utils/_generateDefinitionFile");
|
|
6
7
|
const _generateSeparateIconFiles_1 = require("../utils/_generateSeparateIconFiles");
|
|
@@ -22,7 +23,12 @@ try {
|
|
|
22
23
|
}
|
|
23
24
|
(0, _validateSourceData_1._validateSourceData)({ source: config.icons, mode: config.mode });
|
|
24
25
|
if (shouldUpdate) {
|
|
25
|
-
(0, _generateSpriteFile_1._generateSpriteFile)({
|
|
26
|
+
(0, _generateSpriteFile_1._generateSpriteFile)({
|
|
27
|
+
source: config.icons,
|
|
28
|
+
spriteFile: config.spriteFile,
|
|
29
|
+
mode: config.mode,
|
|
30
|
+
adapters: config.adapters,
|
|
31
|
+
});
|
|
26
32
|
// eslint-disable-next-line no-console
|
|
27
33
|
console.log("Icon sprite file generated.");
|
|
28
34
|
(0, _generateDefinitionFile_1._generateDefinitionFile)({
|
|
@@ -33,6 +39,7 @@ try {
|
|
|
33
39
|
typeName: config.typeName,
|
|
34
40
|
moduleDefinition: config.moduleDefinition,
|
|
35
41
|
customContent: config.customDefinitionContent,
|
|
42
|
+
adapters: config.adapters,
|
|
36
43
|
});
|
|
37
44
|
// eslint-disable-next-line no-console
|
|
38
45
|
console.log("Definition file generated.");
|
|
@@ -40,8 +47,14 @@ try {
|
|
|
40
47
|
source: config.icons,
|
|
41
48
|
directory: config.generatedDirectory,
|
|
42
49
|
spriteFileName: config.spriteFileName,
|
|
50
|
+
adapters: config.adapters,
|
|
51
|
+
});
|
|
52
|
+
(0, _generateSeparateIconFiles_1._generateSeparateIconFiles)({
|
|
53
|
+
source: config.icons,
|
|
54
|
+
directory: config.generatedDirectory,
|
|
55
|
+
mode: config.mode,
|
|
56
|
+
adapters: config.adapters,
|
|
43
57
|
});
|
|
44
|
-
(0, _generateSeparateIconFiles_1._generateSeparateIconFiles)({ source: config.icons, directory: config.generatedDirectory, mode: config.mode });
|
|
45
58
|
// eslint-disable-next-line no-console
|
|
46
59
|
console.log("Separate icons generated.");
|
|
47
60
|
(0, _generateConfigFile_1._generateConfigFile)({
|
|
@@ -51,6 +64,11 @@ try {
|
|
|
51
64
|
});
|
|
52
65
|
// eslint-disable-next-line no-console
|
|
53
66
|
console.log("Config file generated.");
|
|
67
|
+
(0, _generateAdaptersFallbackFiles_1._generateAdaptersFallbackFiles)({
|
|
68
|
+
configFile: config.configFile,
|
|
69
|
+
});
|
|
70
|
+
// eslint-disable-next-line no-console
|
|
71
|
+
console.log("Fallback files for adapters was generated.");
|
|
54
72
|
}
|
|
55
73
|
else {
|
|
56
74
|
// eslint-disable-next-line no-console
|
package/src/types.d.ts
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
Sizes = "sizes"
|
|
4
|
-
}
|
|
5
|
-
export declare enum ModuleDefinitionFormat {
|
|
6
|
-
Type = "type",
|
|
7
|
-
Interface = "interface"
|
|
8
|
-
}
|
|
1
|
+
export type Mode = "simple" | "sizes";
|
|
2
|
+
export type ModuleDefinitionFormat = "type" | "interface";
|
|
9
3
|
export type ModuleDefinition = {
|
|
10
4
|
moduleName: string;
|
|
11
5
|
typeName: string;
|
|
@@ -19,23 +13,49 @@ export type SimpleIcon = {
|
|
|
19
13
|
export type SizedIcon = Record<number, string>;
|
|
20
14
|
type IconsByMode = {
|
|
21
15
|
icons: Record<string, SimpleIcon>;
|
|
22
|
-
mode:
|
|
16
|
+
mode: "simple";
|
|
23
17
|
} | {
|
|
24
18
|
icons: Record<string, SizedIcon>;
|
|
25
|
-
mode:
|
|
19
|
+
mode: "sizes";
|
|
26
20
|
};
|
|
27
|
-
export type
|
|
21
|
+
export type AdapterType<T extends string> = {
|
|
22
|
+
icons: T[];
|
|
23
|
+
getIcon: (iconName: T) => {
|
|
24
|
+
width: number;
|
|
25
|
+
height: number;
|
|
26
|
+
path: string;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export type AdaptersType<T extends Record<string, string>> = Record<keyof T, {
|
|
30
|
+
[K in keyof T]: AdapterType<T[K]>;
|
|
31
|
+
}[keyof T]>;
|
|
32
|
+
export type _IconsConfig<T extends Record<string, string>> = {
|
|
28
33
|
configDirectory: string;
|
|
29
34
|
configFile: string;
|
|
30
35
|
customDefinitionContent?: string;
|
|
31
36
|
definitionFile: string;
|
|
32
37
|
moduleDefinition?: ModuleDefinition;
|
|
33
38
|
ext: "ts" | "js";
|
|
39
|
+
fallbackFilesDirectory: string;
|
|
34
40
|
generatedDirectory: string;
|
|
35
41
|
generatedRelativeDirectory: string;
|
|
36
42
|
spriteFile: string;
|
|
37
43
|
spriteFileName: string;
|
|
38
44
|
typeName: string;
|
|
39
45
|
typescript: boolean;
|
|
46
|
+
adapters: AdaptersType<T>;
|
|
40
47
|
} & IconsByMode;
|
|
48
|
+
export type IconsConfig<T extends Record<string, string> = Record<string, string>> = {
|
|
49
|
+
configDirectory?: string;
|
|
50
|
+
customDefinitionContent?: string;
|
|
51
|
+
moduleDefinition?: ModuleDefinition;
|
|
52
|
+
generatedDirectory: string;
|
|
53
|
+
spriteFileName?: string;
|
|
54
|
+
typeName?: string;
|
|
55
|
+
typescript?: boolean;
|
|
56
|
+
adapters?: AdaptersType<T>;
|
|
57
|
+
} & (IconsByMode | {
|
|
58
|
+
icons?: never;
|
|
59
|
+
mode?: never;
|
|
60
|
+
});
|
|
41
61
|
export {};
|
package/src/types.js
CHANGED
|
@@ -1,13 +1,2 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ModuleDefinitionFormat = exports.Mode = void 0;
|
|
4
|
-
var Mode;
|
|
5
|
-
(function (Mode) {
|
|
6
|
-
Mode["Simple"] = "simple";
|
|
7
|
-
Mode["Sizes"] = "sizes";
|
|
8
|
-
})(Mode || (exports.Mode = Mode = {}));
|
|
9
|
-
var ModuleDefinitionFormat;
|
|
10
|
-
(function (ModuleDefinitionFormat) {
|
|
11
|
-
ModuleDefinitionFormat["Type"] = "type";
|
|
12
|
-
ModuleDefinitionFormat["Interface"] = "interface";
|
|
13
|
-
})(ModuleDefinitionFormat || (exports.ModuleDefinitionFormat = ModuleDefinitionFormat = {}));
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Mode } from "../types";
|
|
2
|
-
export declare function _compareSprites({ source, spriteFile, mode }: {
|
|
1
|
+
import { AdaptersType, Mode } from "../types";
|
|
2
|
+
export declare function _compareSprites({ source, spriteFile, mode, adapters, }: {
|
|
3
3
|
source: any;
|
|
4
4
|
spriteFile: string;
|
|
5
5
|
mode: Mode;
|
|
6
|
+
adapters: AdaptersType<any>;
|
|
6
7
|
}): boolean;
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports._compareSprites = void 0;
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const _createSpriteContent_1 = require("./_createSpriteContent");
|
|
6
|
-
function _compareSprites({ source, spriteFile, mode }) {
|
|
7
|
-
const spriteTextContent = (0, _createSpriteContent_1._createSpriteContent)({ source, mode });
|
|
6
|
+
function _compareSprites({ source, spriteFile, mode, adapters, }) {
|
|
7
|
+
const spriteTextContent = (0, _createSpriteContent_1._createSpriteContent)({ source, mode, adapters });
|
|
8
8
|
const oldSvgContent = (0, fs_1.existsSync)(spriteFile) ? (0, fs_1.readFileSync)(spriteFile).toString() : "";
|
|
9
9
|
return spriteTextContent === oldSvgContent;
|
|
10
10
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Mode, ModuleDefinition } from "../types";
|
|
2
|
-
export declare function _createDefinitionFileContent({ source, typescript, mode, typeName, moduleDefinition, customContent, }: {
|
|
1
|
+
import { AdaptersType, Mode, ModuleDefinition } from "../types";
|
|
2
|
+
export declare function _createDefinitionFileContent({ source, typescript, mode, typeName, moduleDefinition, customContent, adapters, }: {
|
|
3
3
|
source: any;
|
|
4
4
|
typescript: boolean;
|
|
5
5
|
mode: Mode;
|
|
6
6
|
typeName: string;
|
|
7
7
|
moduleDefinition?: ModuleDefinition;
|
|
8
8
|
customContent?: string;
|
|
9
|
+
adapters: AdaptersType<any>;
|
|
9
10
|
}): string;
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports._createDefinitionFileContent = void 0;
|
|
4
|
-
const
|
|
5
|
-
function _createDefinitionFileContent({ source, typescript, mode, typeName, moduleDefinition, customContent, }) {
|
|
4
|
+
const _getIconFromAdapterName_1 = require("./_getIconFromAdapterName");
|
|
5
|
+
function _createDefinitionFileContent({ source, typescript, mode, typeName, moduleDefinition, customContent, adapters, }) {
|
|
6
|
+
const allIconNames = [];
|
|
6
7
|
let size;
|
|
7
8
|
let newIcons = `// this file is generated automatically, do not change anything manually in the contents of this file\n\nexport const ICONS = {\n`;
|
|
8
9
|
Object.keys(source).map((name) => {
|
|
10
|
+
allIconNames.push(name);
|
|
9
11
|
switch (mode) {
|
|
10
|
-
case
|
|
12
|
+
case "simple":
|
|
11
13
|
newIcons += ` "${name}": { w: ${source[name].width}, h: ${source[name].height} },\n`;
|
|
12
14
|
break;
|
|
13
|
-
case
|
|
15
|
+
case "sizes":
|
|
14
16
|
size = source[name];
|
|
15
17
|
newIcons += ` "${name}": [${Object.keys(size).join(", ")}],\n`;
|
|
16
18
|
break;
|
|
@@ -18,21 +20,32 @@ function _createDefinitionFileContent({ source, typescript, mode, typeName, modu
|
|
|
18
20
|
throw new Error("Unknown mode " + mode);
|
|
19
21
|
}
|
|
20
22
|
});
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
24
|
+
if (adapters) {
|
|
25
|
+
Object.keys(adapters).map((adapterName) => {
|
|
26
|
+
const adapter = adapters[adapterName];
|
|
27
|
+
adapter.icons.map((iconName) => {
|
|
28
|
+
allIconNames.push((0, _getIconFromAdapterName_1._getIconFromAdapterName)(adapterName, iconName));
|
|
29
|
+
const icon = adapter.getIcon(iconName);
|
|
30
|
+
newIcons += ` "${(0, _getIconFromAdapterName_1._getIconFromAdapterName)(adapterName, iconName)}": { w: ${icon.width}, h: ${icon.height} },\n`;
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}
|
|
21
34
|
newIcons += "}";
|
|
22
35
|
if (typescript) {
|
|
23
36
|
newIcons += ` as const;\n\nexport type ${typeName} = keyof typeof ICONS;\n`;
|
|
24
37
|
if (moduleDefinition) {
|
|
25
38
|
newIcons += `\ndeclare module "${moduleDefinition.moduleName}" {\n`;
|
|
26
39
|
switch (moduleDefinition.format) {
|
|
27
|
-
case
|
|
40
|
+
case "interface":
|
|
28
41
|
newIcons += ` interface ${moduleDefinition.typeName} {\n`;
|
|
29
|
-
|
|
42
|
+
allIconNames.map((name) => {
|
|
30
43
|
newIcons += ` "${name}": true;\n`;
|
|
31
44
|
});
|
|
32
45
|
newIcons += ` }\n`;
|
|
33
46
|
break;
|
|
34
|
-
case
|
|
35
|
-
newIcons += ` type ${moduleDefinition.typeName} = "${
|
|
47
|
+
case "type":
|
|
48
|
+
newIcons += ` type ${moduleDefinition.typeName} = "${allIconNames.join('" | "')}";\n`;
|
|
36
49
|
break;
|
|
37
50
|
default:
|
|
38
51
|
throw new Error("Unknown mode " + mode);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Mode } from "../types";
|
|
2
|
-
export declare function _createSpriteContent({ source, mode }: {
|
|
1
|
+
import { AdaptersType, Mode } from "../types";
|
|
2
|
+
export declare function _createSpriteContent({ source, mode, adapters, }: {
|
|
3
3
|
source: any;
|
|
4
4
|
mode: Mode;
|
|
5
|
+
adapters: AdaptersType<any>;
|
|
5
6
|
}): string;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports._createSpriteContent = void 0;
|
|
4
|
-
const
|
|
5
|
-
function _createSpriteContent({ source, mode }) {
|
|
4
|
+
const _getIconFromAdapterName_1 = require("./_getIconFromAdapterName");
|
|
5
|
+
function _createSpriteContent({ source, mode, adapters, }) {
|
|
6
6
|
let spriteTextContent = `<svg xmlns="http://www.w3.org/2000/svg">`;
|
|
7
7
|
switch (mode) {
|
|
8
|
-
case
|
|
8
|
+
case "simple":
|
|
9
9
|
Object.keys(source).map((name) => {
|
|
10
10
|
const svg = source[name];
|
|
11
11
|
spriteTextContent += `<symbol id="icon-sprite--${name}" viewBox="0 0 ${svg.width} ${svg.height}">`;
|
|
@@ -13,7 +13,7 @@ function _createSpriteContent({ source, mode }) {
|
|
|
13
13
|
spriteTextContent += `</symbol>`;
|
|
14
14
|
});
|
|
15
15
|
break;
|
|
16
|
-
case
|
|
16
|
+
case "sizes":
|
|
17
17
|
Object.keys(source).map((name) => {
|
|
18
18
|
const sizes = source[name];
|
|
19
19
|
return Object.keys(sizes).map((s) => {
|
|
@@ -25,6 +25,18 @@ function _createSpriteContent({ source, mode }) {
|
|
|
25
25
|
default:
|
|
26
26
|
throw new Error("Unknown mode " + mode);
|
|
27
27
|
}
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
29
|
+
if (adapters) {
|
|
30
|
+
Object.keys(adapters).map((adapterName) => {
|
|
31
|
+
const adapter = adapters[adapterName];
|
|
32
|
+
adapter.icons.map((iconName) => {
|
|
33
|
+
const icon = adapter.getIcon(iconName);
|
|
34
|
+
spriteTextContent += `<symbol id="icon-sprite--${(0, _getIconFromAdapterName_1._getIconFromAdapterName)(adapterName, iconName)}" viewBox="0 0 ${icon.width} ${icon.height}">`;
|
|
35
|
+
spriteTextContent += icon.path;
|
|
36
|
+
spriteTextContent += `</symbol>`;
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
28
40
|
spriteTextContent += `</svg>`;
|
|
29
41
|
return spriteTextContent;
|
|
30
42
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._generateAdaptersFallbackFiles = void 0;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const _createPath_1 = require("./_createPath");
|
|
6
|
+
const _getConfig_1 = require("./_getConfig");
|
|
7
|
+
function _generateAdaptersFallbackFiles({ configFile }) {
|
|
8
|
+
(0, _createPath_1._createPath)(configFile);
|
|
9
|
+
const config = (0, _getConfig_1._getConfig)();
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
11
|
+
if (config.adapters) {
|
|
12
|
+
const adaptersKeys = Object.keys(config.adapters);
|
|
13
|
+
adaptersKeys.forEach((adapterKey) => {
|
|
14
|
+
let content = "{\n";
|
|
15
|
+
const adapter = config.adapters[adapterKey];
|
|
16
|
+
adapter.icons.forEach((iconKey) => {
|
|
17
|
+
const iconData = adapter.getIcon(iconKey);
|
|
18
|
+
content += ` "${iconKey}": { "width": "${iconData.width}", "height": "${iconData.height}", "path": "${encodeURIComponent(iconData.path)}" },\n`;
|
|
19
|
+
});
|
|
20
|
+
content += "}\n";
|
|
21
|
+
content = content.split("").reverse().join("").replace(",", "").split("").reverse().join("");
|
|
22
|
+
(0, _createPath_1._createPath)(config.fallbackFilesDirectory);
|
|
23
|
+
(0, fs_1.writeFileSync)(config.fallbackFilesDirectory + adapterKey + ".json", content);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports._generateAdaptersFallbackFiles = _generateAdaptersFallbackFiles;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Mode, ModuleDefinition } from "../types";
|
|
2
|
-
export declare function _generateDefinitionFile({ source, resultFile, typescript, mode, typeName, moduleDefinition, customContent, }: {
|
|
1
|
+
import { AdaptersType, Mode, ModuleDefinition } from "../types";
|
|
2
|
+
export declare function _generateDefinitionFile({ source, resultFile, typescript, mode, typeName, moduleDefinition, customContent, adapters, }: {
|
|
3
3
|
source: any;
|
|
4
4
|
resultFile: string;
|
|
5
5
|
typescript: boolean;
|
|
@@ -7,4 +7,5 @@ export declare function _generateDefinitionFile({ source, resultFile, typescript
|
|
|
7
7
|
typeName: string;
|
|
8
8
|
moduleDefinition?: ModuleDefinition;
|
|
9
9
|
customContent?: string;
|
|
10
|
+
adapters: AdaptersType<any>;
|
|
10
11
|
}): void;
|
|
@@ -4,7 +4,7 @@ exports._generateDefinitionFile = void 0;
|
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const _createDefinitionFileContent_1 = require("./_createDefinitionFileContent");
|
|
6
6
|
const _createPath_1 = require("./_createPath");
|
|
7
|
-
function _generateDefinitionFile({ source, resultFile, typescript, mode, typeName, moduleDefinition, customContent, }) {
|
|
7
|
+
function _generateDefinitionFile({ source, resultFile, typescript, mode, typeName, moduleDefinition, customContent, adapters, }) {
|
|
8
8
|
const newIcons = (0, _createDefinitionFileContent_1._createDefinitionFileContent)({
|
|
9
9
|
source,
|
|
10
10
|
typescript,
|
|
@@ -12,6 +12,7 @@ function _generateDefinitionFile({ source, resultFile, typescript, mode, typeNam
|
|
|
12
12
|
typeName,
|
|
13
13
|
moduleDefinition,
|
|
14
14
|
customContent,
|
|
15
|
+
adapters,
|
|
15
16
|
});
|
|
16
17
|
(0, _createPath_1._createPath)(resultFile);
|
|
17
18
|
(0, fs_1.writeFileSync)(resultFile, newIcons);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Mode } from "../types";
|
|
2
|
-
export declare function _generateSeparateIconFiles({ source, directory, mode, }: {
|
|
1
|
+
import { AdaptersType, Mode } from "../types";
|
|
2
|
+
export declare function _generateSeparateIconFiles({ source, directory, mode, adapters, }: {
|
|
3
3
|
source: any;
|
|
4
4
|
directory: string;
|
|
5
5
|
mode: Mode;
|
|
6
|
+
adapters: AdaptersType<any>;
|
|
6
7
|
}): void;
|
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports._generateSeparateIconFiles = void 0;
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
|
-
const types_1 = require("../types");
|
|
6
5
|
const _createIconContent_1 = require("./_createIconContent");
|
|
7
6
|
const _createPath_1 = require("./_createPath");
|
|
8
|
-
|
|
7
|
+
const _getIconFromAdapterName_1 = require("./_getIconFromAdapterName");
|
|
8
|
+
function _generateSeparateIconFiles({ source, directory, mode, adapters, }) {
|
|
9
9
|
(0, _createPath_1._createPath)(directory, false);
|
|
10
10
|
switch (mode) {
|
|
11
|
-
case
|
|
11
|
+
case "simple":
|
|
12
12
|
Object.keys(source).map((name) => {
|
|
13
13
|
const svg = source[name];
|
|
14
14
|
const content = (0, _createIconContent_1._createIconContent)({ width: svg.width, height: svg.height, content: svg.data });
|
|
15
15
|
(0, fs_1.writeFileSync)(directory + name + ".svg", content);
|
|
16
16
|
});
|
|
17
17
|
break;
|
|
18
|
-
case
|
|
18
|
+
case "sizes":
|
|
19
19
|
Object.keys(source).map((name) => {
|
|
20
20
|
const size = source[name];
|
|
21
21
|
Object.keys(size).map((s) => {
|
|
@@ -28,5 +28,20 @@ function _generateSeparateIconFiles({ source, directory, mode, }) {
|
|
|
28
28
|
default:
|
|
29
29
|
throw new Error("Unknown mode " + mode);
|
|
30
30
|
}
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
32
|
+
if (adapters) {
|
|
33
|
+
Object.keys(adapters).map((adapterName) => {
|
|
34
|
+
const adapter = adapters[adapterName];
|
|
35
|
+
adapter.icons.map((iconName) => {
|
|
36
|
+
const icon = adapter.getIcon(iconName);
|
|
37
|
+
const content = (0, _createIconContent_1._createIconContent)({
|
|
38
|
+
width: icon.width.toString(),
|
|
39
|
+
height: icon.height.toString(),
|
|
40
|
+
content: icon.path,
|
|
41
|
+
});
|
|
42
|
+
(0, fs_1.writeFileSync)(directory + (0, _getIconFromAdapterName_1._getIconFromAdapterName)(adapterName, iconName) + ".svg", content);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}
|
|
31
46
|
}
|
|
32
47
|
exports._generateSeparateIconFiles = _generateSeparateIconFiles;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Mode } from "../types";
|
|
2
|
-
export declare function _generateSpriteFile({ source, spriteFile, mode }: {
|
|
1
|
+
import { AdaptersType, Mode } from "../types";
|
|
2
|
+
export declare function _generateSpriteFile({ source, spriteFile, mode, adapters, }: {
|
|
3
3
|
source: any;
|
|
4
4
|
spriteFile: string;
|
|
5
5
|
mode: Mode;
|
|
6
|
+
adapters: AdaptersType<any>;
|
|
6
7
|
}): void;
|
|
@@ -4,8 +4,8 @@ exports._generateSpriteFile = void 0;
|
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const _createPath_1 = require("./_createPath");
|
|
6
6
|
const _createSpriteContent_1 = require("./_createSpriteContent");
|
|
7
|
-
function _generateSpriteFile({ source, spriteFile, mode }) {
|
|
7
|
+
function _generateSpriteFile({ source, spriteFile, mode, adapters, }) {
|
|
8
8
|
(0, _createPath_1._createPath)(spriteFile);
|
|
9
|
-
(0, fs_1.writeFileSync)(spriteFile, (0, _createSpriteContent_1._createSpriteContent)({ source, mode }));
|
|
9
|
+
(0, fs_1.writeFileSync)(spriteFile, (0, _createSpriteContent_1._createSpriteContent)({ source, mode, adapters }));
|
|
10
10
|
}
|
|
11
11
|
exports._generateSpriteFile = _generateSpriteFile;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function _getConfig():
|
|
1
|
+
import { _IconsConfig } from "../types";
|
|
2
|
+
export declare function _getConfig(): _IconsConfig<Record<string, string>>;
|
package/src/utils/_getConfig.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports._getConfig = void 0;
|
|
4
|
-
const types_1 = require("../types");
|
|
5
4
|
function _getModuleDefinition(data) {
|
|
6
5
|
if (!data) {
|
|
7
6
|
return undefined;
|
|
@@ -16,18 +15,20 @@ function _getConfig() {
|
|
|
16
15
|
var _a;
|
|
17
16
|
const confFile = (_a = process.argv.filter((c) => c.includes("--configFile="))[0]) === null || _a === void 0 ? void 0 : _a.split("=")[1];
|
|
18
17
|
/* eslint-disable-next-line @typescript-eslint/no-var-requires */
|
|
19
|
-
const loadedConfig = require(process.cwd() + "/" + (confFile || "icons.config.
|
|
18
|
+
const loadedConfig = require(process.cwd() + "/" + (confFile || "icons.config.ts"));
|
|
20
19
|
const config = {
|
|
21
20
|
configDirectory: loadedConfig.configDirectory || "/src/config/",
|
|
22
21
|
icons: loadedConfig.icons || {},
|
|
23
|
-
mode: loadedConfig.mode ||
|
|
22
|
+
mode: loadedConfig.mode || "simple",
|
|
24
23
|
spriteFileName: loadedConfig.spriteFileName || "_icon-sprite.svg",
|
|
25
24
|
typeName: loadedConfig.typeName || "IconsSet",
|
|
26
25
|
typescript: loadedConfig.typescript || true,
|
|
27
26
|
customDefinitionContent: loadedConfig.customDefinitionContent || undefined,
|
|
28
27
|
moduleDefinition: _getModuleDefinition(loadedConfig.moduleDefinition),
|
|
28
|
+
adapters: loadedConfig.adapters || {},
|
|
29
29
|
};
|
|
30
30
|
const ext = config.typescript ? "ts" : "js";
|
|
31
|
+
const fallbackFilesDirectory = process.cwd() + config.configDirectory + `icons-fallbacks/`;
|
|
31
32
|
const definitionFile = process.cwd() + config.configDirectory + `icons.${ext}`;
|
|
32
33
|
const configFile = process.cwd() + config.configDirectory + `icons-config.${ext}`;
|
|
33
34
|
const generatedRelativeDirectory = loadedConfig.generatedDirectory || "/public/icons-generated/";
|
|
@@ -38,6 +39,7 @@ function _getConfig() {
|
|
|
38
39
|
configFile,
|
|
39
40
|
definitionFile,
|
|
40
41
|
ext,
|
|
42
|
+
fallbackFilesDirectory,
|
|
41
43
|
generatedDirectory,
|
|
42
44
|
generatedRelativeDirectory,
|
|
43
45
|
spriteFile,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const _getIconFromAdapterName: (adapterName: string, iconName: string) => string;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._getIconFromAdapterName = void 0;
|
|
4
|
+
const _getIconFromAdapterName = (adapterName, iconName) => `${adapterName}_${iconName}`;
|
|
5
|
+
exports._getIconFromAdapterName = _getIconFromAdapterName;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { SimpleIcon, SizedIcon } from "../types";
|
|
2
|
-
export declare function _removeUnusedSeparateIconFiles({ source, directory, spriteFileName, }: {
|
|
1
|
+
import { AdaptersType, SimpleIcon, SizedIcon } from "../types";
|
|
2
|
+
export declare function _removeUnusedSeparateIconFiles({ source, directory, spriteFileName, adapters, }: {
|
|
3
3
|
source: Record<string, SimpleIcon | SizedIcon>;
|
|
4
4
|
directory: string;
|
|
5
5
|
spriteFileName: string;
|
|
6
|
+
adapters: AdaptersType<any>;
|
|
6
7
|
}): void;
|
|
@@ -3,11 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports._removeUnusedSeparateIconFiles = void 0;
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const _createPath_1 = require("./_createPath");
|
|
6
|
-
|
|
6
|
+
const _getIconFromAdapterName_1 = require("./_getIconFromAdapterName");
|
|
7
|
+
function _removeUnusedSeparateIconFiles({ source, directory, spriteFileName, adapters, }) {
|
|
7
8
|
(0, _createPath_1._createPath)(directory, false);
|
|
8
9
|
const dir = (0, fs_1.readdirSync)(directory, { withFileTypes: true });
|
|
10
|
+
const allIconNames = Object.keys(source);
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
12
|
+
if (adapters) {
|
|
13
|
+
Object.keys(adapters).map((adapterName) => {
|
|
14
|
+
const adapter = adapters[adapterName];
|
|
15
|
+
adapter.icons.map((iconName) => {
|
|
16
|
+
allIconNames.push((0, _getIconFromAdapterName_1._getIconFromAdapterName)(adapterName, iconName));
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
}
|
|
9
20
|
dir.map((file) => {
|
|
10
|
-
if (file.isFile() && !(file.name
|
|
21
|
+
if (file.isFile() && !allIconNames.includes(file.name) && file.name !== spriteFileName) {
|
|
11
22
|
(0, fs_1.unlinkSync)(directory + file.name);
|
|
12
23
|
}
|
|
13
24
|
});
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function _check(config:
|
|
1
|
+
import { _IconsConfig } from "../../types";
|
|
2
|
+
export declare function _check(config: _IconsConfig<any>): void;
|
|
@@ -8,7 +8,12 @@ const _validateSourceData_1 = require("./_validateSourceData");
|
|
|
8
8
|
const _validateSprite_1 = require("./_validateSprite");
|
|
9
9
|
function _check(config) {
|
|
10
10
|
(0, _validateSourceData_1._validateSourceData)({ source: config.icons, mode: config.mode });
|
|
11
|
-
(0, _validateSprite_1._validateSprite)({
|
|
11
|
+
(0, _validateSprite_1._validateSprite)({
|
|
12
|
+
source: config.icons,
|
|
13
|
+
spriteFile: config.spriteFile,
|
|
14
|
+
mode: config.mode,
|
|
15
|
+
adapters: config.adapters,
|
|
16
|
+
});
|
|
12
17
|
(0, _validateDefinitions_1._validateDefinitions)({
|
|
13
18
|
source: config.icons,
|
|
14
19
|
resultFile: config.definitionFile,
|
|
@@ -17,6 +22,7 @@ function _check(config) {
|
|
|
17
22
|
typeName: config.typeName,
|
|
18
23
|
moduleDefinition: config.moduleDefinition,
|
|
19
24
|
customContent: config.customDefinitionContent,
|
|
25
|
+
adapters: config.adapters,
|
|
20
26
|
});
|
|
21
27
|
(0, _validateSeparateIcons_1._validateSeparateIcons)({ source: config.icons, generatedDir: config.generatedDirectory, mode: config.mode });
|
|
22
28
|
(0, _validateConfigFile_1._validateConfigFile)({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Mode, ModuleDefinition } from "../../types";
|
|
2
|
-
export declare function _validateDefinitions({ source, resultFile, typescript, mode, typeName, moduleDefinition, customContent, }: {
|
|
1
|
+
import { AdaptersType, Mode, ModuleDefinition } from "../../types";
|
|
2
|
+
export declare function _validateDefinitions({ source, resultFile, typescript, mode, typeName, moduleDefinition, customContent, adapters, }: {
|
|
3
3
|
source: any;
|
|
4
4
|
resultFile: string;
|
|
5
5
|
typescript: boolean;
|
|
@@ -7,4 +7,5 @@ export declare function _validateDefinitions({ source, resultFile, typescript, m
|
|
|
7
7
|
typeName: string;
|
|
8
8
|
moduleDefinition?: ModuleDefinition;
|
|
9
9
|
customContent?: string;
|
|
10
|
+
adapters: AdaptersType<any>;
|
|
10
11
|
}): void;
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports._validateDefinitions = void 0;
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const _createDefinitionFileContent_1 = require("../_createDefinitionFileContent");
|
|
6
|
-
function _validateDefinitions({ source, resultFile, typescript, mode, typeName, moduleDefinition, customContent, }) {
|
|
6
|
+
function _validateDefinitions({ source, resultFile, typescript, mode, typeName, moduleDefinition, customContent, adapters, }) {
|
|
7
7
|
const newContent = (0, _createDefinitionFileContent_1._createDefinitionFileContent)({
|
|
8
8
|
source,
|
|
9
9
|
typescript,
|
|
@@ -11,6 +11,7 @@ function _validateDefinitions({ source, resultFile, typescript, mode, typeName,
|
|
|
11
11
|
typeName,
|
|
12
12
|
moduleDefinition,
|
|
13
13
|
customContent,
|
|
14
|
+
adapters,
|
|
14
15
|
});
|
|
15
16
|
const oldContent = (0, fs_1.existsSync)(resultFile) ? (0, fs_1.readFileSync)(resultFile).toString() : "";
|
|
16
17
|
if (newContent !== oldContent) {
|
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports._validateSeparateIcons = void 0;
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
|
-
const types_1 = require("../../types");
|
|
6
5
|
const _createIconContent_1 = require("../_createIconContent");
|
|
7
6
|
function _validateSeparateIcons({ source, generatedDir, mode, }) {
|
|
8
7
|
switch (mode) {
|
|
9
|
-
case
|
|
8
|
+
case "simple":
|
|
10
9
|
Object.keys(source).map((name) => {
|
|
11
10
|
const svg = source[name];
|
|
12
11
|
const content = (0, _createIconContent_1._createIconContent)({ width: svg.width, height: svg.height, content: svg.data });
|
|
@@ -18,7 +17,7 @@ function _validateSeparateIcons({ source, generatedDir, mode, }) {
|
|
|
18
17
|
}
|
|
19
18
|
});
|
|
20
19
|
break;
|
|
21
|
-
case
|
|
20
|
+
case "sizes":
|
|
22
21
|
Object.keys(source).map((name) => {
|
|
23
22
|
const size = source[name];
|
|
24
23
|
Object.keys(size).map((s) => {
|
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports._validateSourceData = void 0;
|
|
4
4
|
const fast_xml_parser_1 = require("fast-xml-parser");
|
|
5
|
-
const types_1 = require("../../types");
|
|
6
5
|
function _validateSourceData({ source, mode }) {
|
|
7
6
|
switch (mode) {
|
|
8
|
-
case
|
|
7
|
+
case "simple":
|
|
9
8
|
Object.keys(source).map((name) => {
|
|
10
9
|
const svg = source[name];
|
|
11
10
|
if (fast_xml_parser_1.XMLValidator.validate(`<svg>${svg.data}</svg>`) !== true) {
|
|
@@ -13,7 +12,7 @@ function _validateSourceData({ source, mode }) {
|
|
|
13
12
|
}
|
|
14
13
|
});
|
|
15
14
|
break;
|
|
16
|
-
case
|
|
15
|
+
case "sizes":
|
|
17
16
|
Object.keys(source).map((name) => {
|
|
18
17
|
const sizes = source[name];
|
|
19
18
|
return Object.keys(sizes).map((s) => {
|