@iconify/tools 2.0.14 → 2.0.15
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/lib/colors/attribs.cjs +30 -0
- package/lib/colors/attribs.d.ts +13 -10
- package/lib/colors/attribs.mjs +7 -13
- package/lib/colors/parse.cjs +269 -0
- package/lib/colors/parse.d.ts +15 -11
- package/lib/colors/parse.mjs +27 -31
- package/lib/colors/validate.cjs +52 -0
- package/lib/colors/validate.d.ts +11 -4
- package/lib/colors/validate.mjs +19 -6
- package/lib/css/parse.cjs +26 -0
- package/lib/css/parse.d.ts +3 -1
- package/lib/css/parse.mjs +8 -6
- package/lib/css/parser/error.cjs +25 -0
- package/lib/css/parser/error.d.ts +4 -2
- package/lib/css/parser/error.mjs +2 -4
- package/lib/css/parser/export.cjs +48 -0
- package/lib/css/parser/export.d.ts +5 -2
- package/lib/css/parser/export.mjs +4 -6
- package/lib/css/parser/strings.cjs +77 -0
- package/lib/css/parser/strings.d.ts +6 -3
- package/lib/css/parser/strings.mjs +4 -6
- package/lib/css/parser/text.cjs +135 -0
- package/lib/css/parser/text.d.ts +8 -5
- package/lib/css/parser/text.mjs +3 -8
- package/lib/css/parser/tokens.cjs +184 -0
- package/lib/css/parser/tokens.d.ts +6 -3
- package/lib/css/parser/tokens.mjs +7 -13
- package/lib/css/parser/tree.cjs +42 -0
- package/lib/css/parser/tree.d.ts +5 -2
- package/lib/css/parser/tree.mjs +2 -4
- package/lib/css/parser/types.cjs +2 -0
- package/lib/css/parser/types.d.ts +13 -11
- package/lib/css/parser/types.mjs +1 -0
- package/lib/download/api/cache.cjs +86 -0
- package/lib/download/api/cache.d.ts +8 -5
- package/lib/download/api/cache.mjs +14 -19
- package/lib/download/api/download.cjs +28 -0
- package/lib/download/api/download.d.ts +5 -2
- package/lib/download/api/download.mjs +8 -9
- package/lib/download/api/index.cjs +51 -0
- package/lib/download/api/index.d.ts +5 -2
- package/lib/download/api/index.mjs +8 -6
- package/lib/download/api/types.cjs +2 -0
- package/lib/download/api/types.d.ts +4 -2
- package/lib/download/api/types.mjs +1 -0
- package/lib/download/git/branch.cjs +22 -0
- package/lib/download/git/branch.d.ts +5 -2
- package/lib/download/git/branch.mjs +5 -5
- package/lib/download/git/hash.cjs +15 -0
- package/lib/download/git/hash.d.ts +5 -2
- package/lib/download/git/hash.mjs +5 -5
- package/lib/download/git/index.cjs +76 -0
- package/lib/download/git/index.d.ts +10 -8
- package/lib/download/git/index.mjs +41 -26
- package/lib/download/git/reset.cjs +41 -0
- package/lib/download/git/reset.d.ts +3 -1
- package/lib/download/git/reset.mjs +29 -5
- package/lib/download/github/hash.cjs +32 -0
- package/lib/download/github/hash.d.ts +5 -2
- package/lib/download/github/hash.mjs +10 -7
- package/lib/download/github/index.cjs +98 -0
- package/lib/download/github/index.d.ts +11 -9
- package/lib/download/github/index.mjs +23 -17
- package/lib/download/github/types.cjs +2 -0
- package/lib/download/github/types.d.ts +3 -1
- package/lib/download/github/types.mjs +1 -0
- package/lib/download/gitlab/hash.cjs +32 -0
- package/lib/download/gitlab/hash.d.ts +5 -2
- package/lib/download/gitlab/hash.mjs +10 -6
- package/lib/download/gitlab/index.cjs +98 -0
- package/lib/download/gitlab/index.d.ts +11 -9
- package/lib/download/gitlab/index.mjs +24 -18
- package/lib/download/gitlab/types.cjs +7 -0
- package/lib/download/gitlab/types.d.ts +4 -2
- package/lib/download/gitlab/types.mjs +3 -5
- package/lib/download/helpers/untar.cjs +14 -0
- package/lib/download/helpers/untar.d.ts +3 -1
- package/lib/download/helpers/untar.mjs +4 -5
- package/lib/download/helpers/unzip.cjs +19 -0
- package/lib/download/helpers/unzip.d.ts +3 -1
- package/lib/download/helpers/unzip.mjs +6 -7
- package/lib/download/index.cjs +64 -0
- package/lib/download/index.d.ts +18 -13
- package/lib/download/index.mjs +46 -19
- package/lib/download/npm/index.cjs +82 -0
- package/lib/download/npm/index.d.ts +10 -8
- package/lib/download/npm/index.mjs +16 -13
- package/lib/download/npm/types.cjs +2 -0
- package/lib/download/npm/types.d.ts +3 -1
- package/lib/download/npm/types.mjs +1 -0
- package/lib/download/npm/version.cjs +23 -0
- package/lib/download/npm/version.d.ts +7 -4
- package/lib/download/npm/version.mjs +8 -10
- package/lib/download/types/modified.cjs +2 -0
- package/lib/download/types/modified.d.ts +3 -1
- package/lib/download/types/modified.mjs +1 -0
- package/lib/download/types/sources.cjs +2 -0
- package/lib/download/types/sources.d.ts +4 -2
- package/lib/download/types/sources.mjs +1 -0
- package/lib/export/directory.cjs +45 -0
- package/lib/export/directory.d.ts +11 -4
- package/lib/export/directory.mjs +8 -8
- package/lib/export/helpers/custom-files.cjs +28 -0
- package/lib/export/helpers/custom-files.d.ts +4 -2
- package/lib/export/helpers/custom-files.mjs +8 -9
- package/lib/export/helpers/prepare.cjs +36 -0
- package/lib/export/helpers/prepare.d.ts +5 -3
- package/lib/export/helpers/prepare.mjs +7 -9
- package/lib/export/helpers/types-version.cjs +22 -0
- package/lib/export/helpers/types-version.d.ts +3 -1
- package/lib/export/helpers/types-version.mjs +15 -37
- package/lib/export/icon-package.cjs +59 -0
- package/lib/export/icon-package.d.ts +12 -5
- package/lib/export/icon-package.mjs +15 -16
- package/lib/export/json-package.cjs +133 -0
- package/lib/export/json-package.d.ts +12 -5
- package/lib/export/json-package.mjs +20 -21
- package/lib/icon-set/index.cjs +589 -0
- package/lib/icon-set/index.d.ts +9 -6
- package/lib/icon-set/index.mjs +40 -53
- package/lib/icon-set/match.cjs +58 -0
- package/lib/icon-set/match.d.ts +10 -3
- package/lib/icon-set/match.mjs +5 -6
- package/lib/icon-set/merge.cjs +83 -0
- package/lib/icon-set/merge.d.ts +9 -2
- package/lib/icon-set/merge.mjs +15 -10
- package/lib/icon-set/props.cjs +28 -0
- package/lib/icon-set/props.d.ts +8 -4
- package/lib/icon-set/props.mjs +7 -10
- package/lib/icon-set/types.cjs +2 -0
- package/lib/icon-set/types.d.ts +19 -17
- package/lib/icon-set/types.mjs +1 -0
- package/lib/import/directory.cjs +76 -0
- package/lib/import/directory.d.ts +11 -5
- package/lib/import/directory.mjs +36 -11
- package/lib/import/figma/index.cjs +105 -0
- package/lib/import/figma/index.d.ts +15 -5
- package/lib/import/figma/index.mjs +40 -13
- package/lib/import/figma/nodes.cjs +86 -0
- package/lib/import/figma/nodes.d.ts +13 -4
- package/lib/import/figma/nodes.mjs +3 -11
- package/lib/import/figma/query.cjs +218 -0
- package/lib/import/figma/query.d.ts +18 -9
- package/lib/import/figma/query.mjs +9 -12
- package/lib/import/figma/types/api.cjs +2 -0
- package/lib/import/figma/types/api.d.ts +8 -7
- package/lib/import/figma/types/api.mjs +1 -0
- package/lib/import/figma/types/nodes.cjs +2 -0
- package/lib/import/figma/types/nodes.d.ts +16 -9
- package/lib/import/figma/types/nodes.mjs +1 -0
- package/lib/import/figma/types/options.cjs +2 -0
- package/lib/import/figma/types/options.d.ts +17 -10
- package/lib/import/figma/types/options.mjs +1 -0
- package/lib/import/figma/types/result.cjs +2 -0
- package/lib/import/figma/types/result.d.ts +12 -5
- package/lib/import/figma/types/result.mjs +1 -0
- package/lib/index.cjs +137 -0
- package/lib/index.d.ts +65 -44
- package/lib/index.mjs +83 -94
- package/lib/misc/bump-version.cjs +17 -0
- package/lib/misc/bump-version.d.ts +3 -1
- package/lib/misc/bump-version.mjs +2 -4
- package/lib/misc/compare-dirs.cjs +75 -0
- package/lib/misc/compare-dirs.d.ts +4 -2
- package/lib/misc/compare-dirs.mjs +12 -12
- package/lib/misc/exec.cjs +25 -0
- package/lib/misc/exec.d.ts +6 -4
- package/lib/misc/exec.mjs +4 -5
- package/lib/misc/keyword.cjs +19 -0
- package/lib/misc/keyword.d.ts +3 -1
- package/lib/misc/keyword.mjs +2 -4
- package/lib/misc/scan.cjs +51 -0
- package/lib/misc/scan.d.ts +7 -6
- package/lib/misc/scan.mjs +6 -7
- package/lib/misc/write-json.cjs +11 -0
- package/lib/misc/write-json.d.ts +3 -1
- package/lib/misc/write-json.mjs +5 -6
- package/lib/optimise/flags.cjs +252 -0
- package/lib/optimise/flags.d.ts +7 -2
- package/lib/optimise/flags.mjs +18 -19
- package/lib/optimise/global-style.cjs +154 -0
- package/lib/optimise/global-style.d.ts +7 -2
- package/lib/optimise/global-style.mjs +18 -15
- package/lib/optimise/scale.cjs +26 -0
- package/lib/optimise/scale.d.ts +7 -2
- package/lib/optimise/scale.mjs +5 -5
- package/lib/optimise/svgo.cjs +83 -0
- package/lib/optimise/svgo.d.ts +10 -6
- package/lib/optimise/svgo.mjs +6 -9
- package/lib/svg/analyse/error.cjs +18 -0
- package/lib/svg/analyse/error.d.ts +5 -2
- package/lib/svg/analyse/error.mjs +2 -4
- package/lib/svg/analyse/types.cjs +2 -0
- package/lib/svg/analyse/types.d.ts +11 -11
- package/lib/svg/analyse/types.mjs +1 -0
- package/lib/svg/analyse.cjs +291 -0
- package/lib/svg/analyse.d.ts +8 -3
- package/lib/svg/analyse.mjs +15 -30
- package/lib/svg/cleanup/attribs.cjs +41 -0
- package/lib/svg/cleanup/attribs.d.ts +7 -2
- package/lib/svg/cleanup/attribs.mjs +6 -12
- package/lib/svg/cleanup/bad-tags.cjs +51 -0
- package/lib/svg/cleanup/bad-tags.d.ts +7 -2
- package/lib/svg/cleanup/bad-tags.mjs +10 -25
- package/lib/svg/cleanup/inline-style.cjs +64 -0
- package/lib/svg/cleanup/inline-style.d.ts +7 -2
- package/lib/svg/cleanup/inline-style.mjs +14 -19
- package/lib/svg/cleanup/root-svg.cjs +81 -0
- package/lib/svg/cleanup/root-svg.d.ts +7 -2
- package/lib/svg/cleanup/root-svg.mjs +7 -18
- package/lib/svg/cleanup/svgo-style.cjs +38 -0
- package/lib/svg/cleanup/svgo-style.d.ts +7 -2
- package/lib/svg/cleanup/svgo-style.mjs +16 -11
- package/lib/svg/cleanup.cjs +32 -0
- package/lib/svg/cleanup.d.ts +7 -2
- package/lib/svg/cleanup.mjs +21 -9
- package/lib/svg/data/attributes.cjs +355 -0
- package/lib/svg/data/attributes.d.ts +27 -25
- package/lib/svg/data/attributes.mjs +90 -115
- package/lib/svg/data/tags.cjs +137 -0
- package/lib/svg/data/tags.d.ts +25 -23
- package/lib/svg/data/tags.mjs +25 -49
- package/lib/svg/index.cjs +130 -0
- package/lib/svg/index.d.ts +16 -5
- package/lib/svg/index.mjs +48 -14
- package/lib/svg/parse-style.cjs +134 -0
- package/lib/svg/parse-style.d.ts +12 -8
- package/lib/svg/parse-style.mjs +11 -9
- package/lib/svg/parse.cjs +42 -0
- package/lib/svg/parse.d.ts +11 -7
- package/lib/svg/parse.mjs +2 -4
- package/package.json +99 -94
- package/lib/colors/attribs.js +0 -26
- package/lib/colors/parse.js +0 -341
- package/lib/colors/validate.js +0 -48
- package/lib/css/parse.js +0 -23
- package/lib/css/parser/error.js +0 -27
- package/lib/css/parser/export.js +0 -69
- package/lib/css/parser/strings.js +0 -93
- package/lib/css/parser/text.js +0 -171
- package/lib/css/parser/tokens.js +0 -200
- package/lib/css/parser/tree.js +0 -44
- package/lib/css/parser/types.js +0 -2
- package/lib/download/api/cache.js +0 -108
- package/lib/download/api/download.js +0 -27
- package/lib/download/api/index.js +0 -52
- package/lib/download/api/types.js +0 -2
- package/lib/download/git/branch.js +0 -22
- package/lib/download/git/hash.js +0 -14
- package/lib/download/git/index.js +0 -75
- package/lib/download/git/reset.js +0 -16
- package/lib/download/github/hash.js +0 -28
- package/lib/download/github/index.js +0 -116
- package/lib/download/github/types.js +0 -2
- package/lib/download/gitlab/hash.js +0 -27
- package/lib/download/gitlab/index.js +0 -115
- package/lib/download/gitlab/types.js +0 -7
- package/lib/download/helpers/untar.js +0 -14
- package/lib/download/helpers/unzip.js +0 -18
- package/lib/download/index.js +0 -27
- package/lib/download/npm/index.js +0 -91
- package/lib/download/npm/types.js +0 -2
- package/lib/download/npm/version.js +0 -27
- package/lib/download/types/modified.js +0 -2
- package/lib/download/types/sources.js +0 -2
- package/lib/export/directory.js +0 -52
- package/lib/export/helpers/custom-files.js +0 -32
- package/lib/export/helpers/prepare.js +0 -49
- package/lib/export/helpers/types-version.js +0 -12
- package/lib/export/icon-package.js +0 -77
- package/lib/export/json-package.js +0 -156
- package/lib/icon-set/index.js +0 -749
- package/lib/icon-set/match.js +0 -66
- package/lib/icon-set/merge.js +0 -90
- package/lib/icon-set/props.js +0 -34
- package/lib/icon-set/types.js +0 -2
- package/lib/import/directory.js +0 -59
- package/lib/import/figma/index.js +0 -90
- package/lib/import/figma/nodes.js +0 -106
- package/lib/import/figma/query.js +0 -244
- package/lib/import/figma/types/api.js +0 -12
- package/lib/import/figma/types/nodes.js +0 -2
- package/lib/import/figma/types/options.js +0 -2
- package/lib/import/figma/types/result.js +0 -2
- package/lib/index.js +0 -103
- package/lib/misc/bump-version.js +0 -19
- package/lib/misc/compare-dirs.js +0 -84
- package/lib/misc/exec.js +0 -26
- package/lib/misc/keyword.js +0 -31
- package/lib/misc/scan.js +0 -55
- package/lib/misc/write-json.js +0 -11
- package/lib/optimise/flags.js +0 -312
- package/lib/optimise/global-style.js +0 -185
- package/lib/optimise/scale.js +0 -42
- package/lib/optimise/svgo.js +0 -99
- package/lib/svg/analyse/error.js +0 -22
- package/lib/svg/analyse/types.js +0 -2
- package/lib/svg/analyse.js +0 -352
- package/lib/svg/cleanup/attribs.js +0 -51
- package/lib/svg/cleanup/bad-tags.js +0 -65
- package/lib/svg/cleanup/inline-style.js +0 -77
- package/lib/svg/cleanup/root-svg.js +0 -107
- package/lib/svg/cleanup/svgo-style.js +0 -35
- package/lib/svg/cleanup.js +0 -24
- package/lib/svg/data/attributes.js +0 -403
- package/lib/svg/data/tags.js +0 -188
- package/lib/svg/index.js +0 -134
- package/lib/svg/parse-style.js +0 -151
- package/lib/svg/parse.js +0 -49
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.prepareDirectoryForExport = exports.normalizeDir = void 0;
|
|
4
|
-
const fs_1 = require("fs");
|
|
5
|
-
const pathe_1 = require("pathe");
|
|
6
|
-
/**
|
|
7
|
-
* Normalize directory
|
|
8
|
-
*/
|
|
9
|
-
function normalizeDir(dir) {
|
|
10
|
-
// Normalise directory
|
|
11
|
-
dir = (0, pathe_1.normalize)(dir);
|
|
12
|
-
if (dir.slice(-1) === '/') {
|
|
13
|
-
dir = dir.slice(0, -1);
|
|
14
|
-
}
|
|
15
|
-
return dir;
|
|
16
|
-
}
|
|
17
|
-
exports.normalizeDir = normalizeDir;
|
|
18
|
-
/**
|
|
19
|
-
* Prepare directory for export
|
|
20
|
-
*
|
|
21
|
-
* Also normalizes directory and returns normalized value
|
|
22
|
-
*/
|
|
23
|
-
async function prepareDirectoryForExport(options) {
|
|
24
|
-
// Normalise directory
|
|
25
|
-
const dir = normalizeDir(options.target);
|
|
26
|
-
if (options.cleanup) {
|
|
27
|
-
// Remove old files
|
|
28
|
-
try {
|
|
29
|
-
await fs_1.promises.rm(dir, {
|
|
30
|
-
recursive: true,
|
|
31
|
-
force: true,
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
catch (err) {
|
|
35
|
-
//
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
// Create directory if missing
|
|
39
|
-
try {
|
|
40
|
-
await fs_1.promises.mkdir(dir, {
|
|
41
|
-
recursive: true,
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
catch (err) {
|
|
45
|
-
//
|
|
46
|
-
}
|
|
47
|
-
return dir;
|
|
48
|
-
}
|
|
49
|
-
exports.prepareDirectoryForExport = prepareDirectoryForExport;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTypesVersion = void 0;
|
|
4
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
5
|
-
const pkg = require('@iconify/types/package.json');
|
|
6
|
-
/**
|
|
7
|
-
* Get current version of Iconify Types package
|
|
8
|
-
*/
|
|
9
|
-
function getTypesVersion() {
|
|
10
|
-
return pkg.version;
|
|
11
|
-
}
|
|
12
|
-
exports.getTypesVersion = getTypesVersion;
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.exportIconPackage = void 0;
|
|
4
|
-
const fs_1 = require("fs");
|
|
5
|
-
const prepare_1 = require("./helpers/prepare");
|
|
6
|
-
const write_json_1 = require("../misc/write-json");
|
|
7
|
-
const types_version_1 = require("./helpers/types-version");
|
|
8
|
-
const custom_files_1 = require("./helpers/custom-files");
|
|
9
|
-
/**
|
|
10
|
-
* Content for .d.ts files
|
|
11
|
-
*/
|
|
12
|
-
const defaultTypesContent = `import type { IconifyIcon } from '@iconify/types';
|
|
13
|
-
declare const data: IconifyIcon;
|
|
14
|
-
export default data;
|
|
15
|
-
`;
|
|
16
|
-
/**
|
|
17
|
-
* Export icon set as single icon packages
|
|
18
|
-
*
|
|
19
|
-
* Used for exporting `@iconify-icons/{prefix}` packages
|
|
20
|
-
*/
|
|
21
|
-
async function exportIconPackage(iconSet, options) {
|
|
22
|
-
const files = new Set();
|
|
23
|
-
const esm = options.module !== false;
|
|
24
|
-
// Normalise and prepare directory
|
|
25
|
-
const dir = await (0, prepare_1.prepareDirectoryForExport)(options);
|
|
26
|
-
// Write all icons
|
|
27
|
-
const typesContent = options.typesContent || defaultTypesContent;
|
|
28
|
-
await iconSet.forEach(async (name) => {
|
|
29
|
-
const data = iconSet.resolve(name, false);
|
|
30
|
-
if (!data) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
// Store types
|
|
34
|
-
const typesFilename = name + '.d.ts';
|
|
35
|
-
await fs_1.promises.writeFile(`${dir}/${typesFilename}`, typesContent, 'utf8');
|
|
36
|
-
files.add(typesFilename);
|
|
37
|
-
// Generate content
|
|
38
|
-
let content = `const data = ` + JSON.stringify(data, null, '\t') + ';\n';
|
|
39
|
-
if (!esm) {
|
|
40
|
-
// CJS module
|
|
41
|
-
content += 'exports.__esModule = true;\nexports.default = data;\n';
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
// ES module
|
|
45
|
-
content += 'export default data;\n';
|
|
46
|
-
}
|
|
47
|
-
const contentFilename = name + '.js';
|
|
48
|
-
await fs_1.promises.writeFile(`${dir}/${contentFilename}`, content, 'utf8');
|
|
49
|
-
files.add(contentFilename);
|
|
50
|
-
});
|
|
51
|
-
// Write custom files
|
|
52
|
-
await (0, custom_files_1.exportCustomFiles)(dir, options, files);
|
|
53
|
-
// Generate package.json
|
|
54
|
-
const info = iconSet.info;
|
|
55
|
-
const { name, description, version, dependencies, ...customPackageProps } = options.package || {};
|
|
56
|
-
const packageJSON = {
|
|
57
|
-
name: name ||
|
|
58
|
-
(esm
|
|
59
|
-
? `@iconify-icons/${iconSet.prefix}`
|
|
60
|
-
: `@iconify/icons-${iconSet.prefix}`),
|
|
61
|
-
description: description ||
|
|
62
|
-
`Iconify icon components for ${info ? info.name : iconSet.prefix}`,
|
|
63
|
-
version,
|
|
64
|
-
type: esm ? 'module' : void 0,
|
|
65
|
-
iconSetInfo: info,
|
|
66
|
-
...customPackageProps,
|
|
67
|
-
dependencies: dependencies || {
|
|
68
|
-
'@iconify/types': '^' + (0, types_version_1.getTypesVersion)(),
|
|
69
|
-
},
|
|
70
|
-
};
|
|
71
|
-
// Save package.json
|
|
72
|
-
await (0, write_json_1.writeJSONFile)(dir + '/package.json', packageJSON);
|
|
73
|
-
files.add('package.json');
|
|
74
|
-
// Return list of stored files as array
|
|
75
|
-
return Array.from(files);
|
|
76
|
-
}
|
|
77
|
-
exports.exportIconPackage = exportIconPackage;
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.exportJSONPackage = void 0;
|
|
4
|
-
const fs_1 = require("fs");
|
|
5
|
-
const icon_1 = require("@iconify/utils/lib/icon");
|
|
6
|
-
const prepare_1 = require("./helpers/prepare");
|
|
7
|
-
const write_json_1 = require("../misc/write-json");
|
|
8
|
-
const types_version_1 = require("./helpers/types-version");
|
|
9
|
-
const custom_files_1 = require("./helpers/custom-files");
|
|
10
|
-
const exportTypes = {
|
|
11
|
-
icons: 'IconifyJSON',
|
|
12
|
-
info: 'IconifyInfo',
|
|
13
|
-
metadata: 'IconifyMetaData',
|
|
14
|
-
chars: 'IconifyChars',
|
|
15
|
-
};
|
|
16
|
-
const iconsKeys = ['aliases'].concat(Object.keys(icon_1.iconDefaults));
|
|
17
|
-
const metadataKeys = [
|
|
18
|
-
'categories',
|
|
19
|
-
'themes',
|
|
20
|
-
'prefixes',
|
|
21
|
-
'suffixes',
|
|
22
|
-
];
|
|
23
|
-
/**
|
|
24
|
-
* Export icon set as JSON package
|
|
25
|
-
*
|
|
26
|
-
* Used for exporting `@iconify-json/{prefix}` packages
|
|
27
|
-
*/
|
|
28
|
-
async function exportJSONPackage(iconSet, options) {
|
|
29
|
-
const files = new Set();
|
|
30
|
-
// Normalise and prepare directory
|
|
31
|
-
const dir = await (0, prepare_1.prepareDirectoryForExport)(options);
|
|
32
|
-
// Export icon set to IconifyJSON format
|
|
33
|
-
const exportedJSON = iconSet.export(true);
|
|
34
|
-
// Get icons
|
|
35
|
-
const icons = {
|
|
36
|
-
prefix: exportedJSON.prefix,
|
|
37
|
-
icons: exportedJSON.icons,
|
|
38
|
-
};
|
|
39
|
-
iconsKeys.forEach((attr) => {
|
|
40
|
-
if (exportedJSON[attr] !== void 0) {
|
|
41
|
-
icons[attr] = exportedJSON[attr];
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
// Get metadata
|
|
45
|
-
const metadata = {};
|
|
46
|
-
let hasMetadata = false;
|
|
47
|
-
metadataKeys.forEach((attr) => {
|
|
48
|
-
if (exportedJSON[attr]) {
|
|
49
|
-
metadata[attr] = exportedJSON[attr];
|
|
50
|
-
hasMetadata = true;
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
// Contents
|
|
54
|
-
const info = exportedJSON.info
|
|
55
|
-
? {
|
|
56
|
-
prefix: iconSet.prefix,
|
|
57
|
-
...exportedJSON.info,
|
|
58
|
-
}
|
|
59
|
-
: void 0;
|
|
60
|
-
const contents = {
|
|
61
|
-
icons,
|
|
62
|
-
info,
|
|
63
|
-
metadata: hasMetadata ? metadata : void 0,
|
|
64
|
-
chars: exportedJSON.chars,
|
|
65
|
-
};
|
|
66
|
-
// Generate package.json
|
|
67
|
-
const { name, description, version, dependencies, ...customPackageProps } = options.package || {};
|
|
68
|
-
const packageJSONIconSet = {};
|
|
69
|
-
const packageJSONExports = {
|
|
70
|
-
'./*': './*',
|
|
71
|
-
'.': {
|
|
72
|
-
require: './index.js',
|
|
73
|
-
import: './index.mjs',
|
|
74
|
-
},
|
|
75
|
-
};
|
|
76
|
-
const packageJSON = {
|
|
77
|
-
name: name || `@iconify-json/${iconSet.prefix}`,
|
|
78
|
-
description: description ||
|
|
79
|
-
`${info ? info.name : iconSet.prefix} icon set in Iconify JSON format`,
|
|
80
|
-
version,
|
|
81
|
-
iconSetVersion: info === null || info === void 0 ? void 0 : info.version,
|
|
82
|
-
main: 'index.js',
|
|
83
|
-
module: 'index.mjs',
|
|
84
|
-
types: 'index.d.ts',
|
|
85
|
-
...customPackageProps,
|
|
86
|
-
exports: packageJSONExports,
|
|
87
|
-
iconSet: packageJSONIconSet,
|
|
88
|
-
dependencies: dependencies || {
|
|
89
|
-
'@iconify/types': '^' + (0, types_version_1.getTypesVersion)(),
|
|
90
|
-
},
|
|
91
|
-
};
|
|
92
|
-
// Save all files, generate exports
|
|
93
|
-
const dtsContent = [];
|
|
94
|
-
const cjsImports = [];
|
|
95
|
-
const cjsExports = [];
|
|
96
|
-
const mjsImports = [];
|
|
97
|
-
const mjsConsts = [];
|
|
98
|
-
const mjsExports = [];
|
|
99
|
-
for (const key in contents) {
|
|
100
|
-
const attr = key;
|
|
101
|
-
const data = contents[attr];
|
|
102
|
-
const type = exportTypes[attr];
|
|
103
|
-
const jsonFilename = attr + '.json';
|
|
104
|
-
const relativeFile = `./${jsonFilename}`;
|
|
105
|
-
// Add type
|
|
106
|
-
dtsContent.push(`export declare const ${attr}: ${type};`);
|
|
107
|
-
// Export variable
|
|
108
|
-
cjsExports.push(`exports.${attr} = ${attr};`);
|
|
109
|
-
mjsExports.push(attr);
|
|
110
|
-
if (data !== void 0) {
|
|
111
|
-
// Save JSON file
|
|
112
|
-
await (0, write_json_1.writeJSONFile)(`${dir}/${jsonFilename}`, data);
|
|
113
|
-
// Import data from JSON file
|
|
114
|
-
cjsImports.push(`const ${attr} = require('${relativeFile}');`);
|
|
115
|
-
mjsImports.push(`import ${attr} from '${relativeFile}';`);
|
|
116
|
-
// Add data to package.json
|
|
117
|
-
packageJSONIconSet[attr] = attr + '.json';
|
|
118
|
-
packageJSONExports[relativeFile] = relativeFile;
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
// Create empty data
|
|
122
|
-
await (0, write_json_1.writeJSONFile)(`${dir}/${jsonFilename}`, {});
|
|
123
|
-
cjsImports.push(`const ${attr} = {};`);
|
|
124
|
-
mjsConsts.push(`const ${attr} = {};`);
|
|
125
|
-
}
|
|
126
|
-
files.add(jsonFilename);
|
|
127
|
-
}
|
|
128
|
-
// Generate CJS index file
|
|
129
|
-
const cjsContent = cjsImports.concat([''], cjsExports);
|
|
130
|
-
await fs_1.promises.writeFile(dir + '/index.js', cjsContent.join('\n') + '\n', 'utf8');
|
|
131
|
-
files.add('index.js');
|
|
132
|
-
// Generate MJS index file
|
|
133
|
-
const mjsContent = mjsImports.concat([''], mjsConsts, [
|
|
134
|
-
`export { ${mjsExports.join(', ')} };`,
|
|
135
|
-
]);
|
|
136
|
-
await fs_1.promises.writeFile(dir + '/index.mjs', mjsContent.join('\n') + '\n', 'utf8');
|
|
137
|
-
files.add('index.mjs');
|
|
138
|
-
// Generate types file
|
|
139
|
-
const usedTypes = Object.values(exportTypes);
|
|
140
|
-
const typesData = [
|
|
141
|
-
`import type { ${usedTypes.join(', ')} } from '@iconify/types';`,
|
|
142
|
-
'',
|
|
143
|
-
`export { ${usedTypes.join(', ')} };`,
|
|
144
|
-
'',
|
|
145
|
-
].concat(dtsContent);
|
|
146
|
-
await fs_1.promises.writeFile(dir + '/index.d.ts', typesData.join('\n') + '\n', 'utf8');
|
|
147
|
-
files.add('index.d.ts');
|
|
148
|
-
// Write custom files
|
|
149
|
-
await (0, custom_files_1.exportCustomFiles)(dir, options, files);
|
|
150
|
-
// Save package.json
|
|
151
|
-
await (0, write_json_1.writeJSONFile)(dir + '/package.json', packageJSON);
|
|
152
|
-
files.add('package.json');
|
|
153
|
-
// Return list of stored files as array
|
|
154
|
-
return Array.from(files);
|
|
155
|
-
}
|
|
156
|
-
exports.exportJSONPackage = exportJSONPackage;
|