@iconify/tools 2.0.12 → 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.
Files changed (308) hide show
  1. package/lib/colors/attribs.cjs +30 -0
  2. package/lib/colors/attribs.d.ts +13 -10
  3. package/lib/colors/attribs.mjs +7 -13
  4. package/lib/colors/parse.cjs +269 -0
  5. package/lib/colors/parse.d.ts +15 -11
  6. package/lib/colors/parse.mjs +27 -31
  7. package/lib/colors/validate.cjs +52 -0
  8. package/lib/colors/validate.d.ts +11 -4
  9. package/lib/colors/validate.mjs +19 -6
  10. package/lib/css/parse.cjs +26 -0
  11. package/lib/css/parse.d.ts +3 -1
  12. package/lib/css/parse.mjs +8 -6
  13. package/lib/css/parser/error.cjs +25 -0
  14. package/lib/css/parser/error.d.ts +4 -2
  15. package/lib/css/parser/error.mjs +2 -4
  16. package/lib/css/parser/export.cjs +48 -0
  17. package/lib/css/parser/export.d.ts +5 -2
  18. package/lib/css/parser/export.mjs +4 -6
  19. package/lib/css/parser/strings.cjs +77 -0
  20. package/lib/css/parser/strings.d.ts +6 -3
  21. package/lib/css/parser/strings.mjs +4 -6
  22. package/lib/css/parser/text.cjs +135 -0
  23. package/lib/css/parser/text.d.ts +8 -5
  24. package/lib/css/parser/text.mjs +3 -8
  25. package/lib/css/parser/tokens.cjs +184 -0
  26. package/lib/css/parser/tokens.d.ts +6 -3
  27. package/lib/css/parser/tokens.mjs +7 -13
  28. package/lib/css/parser/tree.cjs +42 -0
  29. package/lib/css/parser/tree.d.ts +5 -2
  30. package/lib/css/parser/tree.mjs +2 -4
  31. package/lib/css/parser/types.cjs +2 -0
  32. package/lib/css/parser/types.d.ts +13 -11
  33. package/lib/css/parser/types.mjs +1 -0
  34. package/lib/download/api/cache.cjs +86 -0
  35. package/lib/download/api/cache.d.ts +8 -5
  36. package/lib/download/api/cache.mjs +14 -19
  37. package/lib/download/api/download.cjs +28 -0
  38. package/lib/download/api/download.d.ts +5 -2
  39. package/lib/download/api/download.mjs +8 -9
  40. package/lib/download/api/index.cjs +51 -0
  41. package/lib/download/api/index.d.ts +5 -2
  42. package/lib/download/api/index.mjs +8 -6
  43. package/lib/download/api/types.cjs +2 -0
  44. package/lib/download/api/types.d.ts +4 -2
  45. package/lib/download/api/types.mjs +1 -0
  46. package/lib/download/git/branch.cjs +22 -0
  47. package/lib/download/git/branch.d.ts +5 -2
  48. package/lib/download/git/branch.mjs +5 -5
  49. package/lib/download/git/hash.cjs +15 -0
  50. package/lib/download/git/hash.d.ts +5 -2
  51. package/lib/download/git/hash.mjs +5 -5
  52. package/lib/download/git/index.cjs +76 -0
  53. package/lib/download/git/index.d.ts +10 -8
  54. package/lib/download/git/index.mjs +42 -20
  55. package/lib/download/git/reset.cjs +41 -0
  56. package/lib/download/git/reset.d.ts +6 -0
  57. package/lib/download/git/reset.mjs +37 -0
  58. package/lib/download/github/hash.cjs +32 -0
  59. package/lib/download/github/hash.d.ts +5 -2
  60. package/lib/download/github/hash.mjs +10 -7
  61. package/lib/download/github/index.cjs +98 -0
  62. package/lib/download/github/index.d.ts +11 -9
  63. package/lib/download/github/index.mjs +23 -17
  64. package/lib/download/github/types.cjs +2 -0
  65. package/lib/download/github/types.d.ts +3 -1
  66. package/lib/download/github/types.mjs +1 -0
  67. package/lib/download/gitlab/hash.cjs +32 -0
  68. package/lib/download/gitlab/hash.d.ts +5 -2
  69. package/lib/download/gitlab/hash.mjs +10 -6
  70. package/lib/download/gitlab/index.cjs +98 -0
  71. package/lib/download/gitlab/index.d.ts +11 -9
  72. package/lib/download/gitlab/index.mjs +24 -18
  73. package/lib/download/gitlab/types.cjs +7 -0
  74. package/lib/download/gitlab/types.d.ts +4 -2
  75. package/lib/download/gitlab/types.mjs +3 -5
  76. package/lib/download/helpers/untar.cjs +14 -0
  77. package/lib/download/helpers/untar.d.ts +3 -1
  78. package/lib/download/helpers/untar.mjs +4 -5
  79. package/lib/download/helpers/unzip.cjs +19 -0
  80. package/lib/download/helpers/unzip.d.ts +3 -1
  81. package/lib/download/helpers/unzip.mjs +6 -7
  82. package/lib/download/index.cjs +64 -0
  83. package/lib/download/index.d.ts +18 -13
  84. package/lib/download/index.mjs +46 -19
  85. package/lib/download/npm/index.cjs +82 -0
  86. package/lib/download/npm/index.d.ts +10 -8
  87. package/lib/download/npm/index.mjs +16 -13
  88. package/lib/download/npm/types.cjs +2 -0
  89. package/lib/download/npm/types.d.ts +3 -1
  90. package/lib/download/npm/types.mjs +1 -0
  91. package/lib/download/npm/version.cjs +23 -0
  92. package/lib/download/npm/version.d.ts +7 -4
  93. package/lib/download/npm/version.mjs +8 -10
  94. package/lib/download/types/modified.cjs +2 -0
  95. package/lib/download/types/modified.d.ts +3 -1
  96. package/lib/download/types/modified.mjs +1 -0
  97. package/lib/download/types/sources.cjs +2 -0
  98. package/lib/download/types/sources.d.ts +4 -2
  99. package/lib/download/types/sources.mjs +1 -0
  100. package/lib/export/directory.cjs +45 -0
  101. package/lib/export/directory.d.ts +11 -4
  102. package/lib/export/directory.mjs +8 -8
  103. package/lib/export/helpers/custom-files.cjs +28 -0
  104. package/lib/export/helpers/custom-files.d.ts +4 -2
  105. package/lib/export/helpers/custom-files.mjs +8 -9
  106. package/lib/export/helpers/prepare.cjs +36 -0
  107. package/lib/export/helpers/prepare.d.ts +5 -3
  108. package/lib/export/helpers/prepare.mjs +7 -9
  109. package/lib/export/helpers/types-version.cjs +22 -0
  110. package/lib/export/helpers/types-version.d.ts +3 -1
  111. package/lib/export/helpers/types-version.mjs +15 -37
  112. package/lib/export/icon-package.cjs +59 -0
  113. package/lib/export/icon-package.d.ts +12 -5
  114. package/lib/export/icon-package.mjs +15 -16
  115. package/lib/export/json-package.cjs +133 -0
  116. package/lib/export/json-package.d.ts +12 -5
  117. package/lib/export/json-package.mjs +24 -22
  118. package/lib/icon-set/index.cjs +589 -0
  119. package/lib/icon-set/index.d.ts +9 -6
  120. package/lib/icon-set/index.mjs +47 -57
  121. package/lib/icon-set/match.cjs +58 -0
  122. package/lib/icon-set/match.d.ts +10 -3
  123. package/lib/icon-set/match.mjs +5 -6
  124. package/lib/icon-set/merge.cjs +83 -0
  125. package/lib/icon-set/merge.d.ts +9 -2
  126. package/lib/icon-set/merge.mjs +15 -10
  127. package/lib/icon-set/props.cjs +28 -0
  128. package/lib/icon-set/props.d.ts +8 -4
  129. package/lib/icon-set/props.mjs +9 -12
  130. package/lib/icon-set/types.cjs +2 -0
  131. package/lib/icon-set/types.d.ts +19 -17
  132. package/lib/icon-set/types.mjs +1 -0
  133. package/lib/import/directory.cjs +76 -0
  134. package/lib/import/directory.d.ts +11 -5
  135. package/lib/import/directory.mjs +36 -11
  136. package/lib/import/figma/index.cjs +105 -0
  137. package/lib/import/figma/index.d.ts +15 -5
  138. package/lib/import/figma/index.mjs +40 -13
  139. package/lib/import/figma/nodes.cjs +86 -0
  140. package/lib/import/figma/nodes.d.ts +13 -4
  141. package/lib/import/figma/nodes.mjs +6 -16
  142. package/lib/import/figma/query.cjs +218 -0
  143. package/lib/import/figma/query.d.ts +18 -9
  144. package/lib/import/figma/query.mjs +9 -12
  145. package/lib/import/figma/types/api.cjs +2 -0
  146. package/lib/import/figma/types/api.d.ts +8 -7
  147. package/lib/import/figma/types/api.mjs +1 -0
  148. package/lib/import/figma/types/nodes.cjs +2 -0
  149. package/lib/import/figma/types/nodes.d.ts +16 -9
  150. package/lib/import/figma/types/nodes.mjs +1 -0
  151. package/lib/import/figma/types/options.cjs +2 -0
  152. package/lib/import/figma/types/options.d.ts +17 -10
  153. package/lib/import/figma/types/options.mjs +1 -0
  154. package/lib/import/figma/types/result.cjs +2 -0
  155. package/lib/import/figma/types/result.d.ts +12 -5
  156. package/lib/import/figma/types/result.mjs +1 -0
  157. package/lib/index.cjs +137 -0
  158. package/lib/index.d.ts +65 -43
  159. package/lib/index.mjs +83 -92
  160. package/lib/misc/bump-version.cjs +17 -0
  161. package/lib/misc/bump-version.d.ts +3 -1
  162. package/lib/misc/bump-version.mjs +2 -4
  163. package/lib/misc/compare-dirs.cjs +75 -0
  164. package/lib/misc/compare-dirs.d.ts +4 -2
  165. package/lib/misc/compare-dirs.mjs +12 -12
  166. package/lib/misc/exec.cjs +25 -0
  167. package/lib/misc/exec.d.ts +6 -4
  168. package/lib/misc/exec.mjs +4 -5
  169. package/lib/misc/keyword.cjs +19 -0
  170. package/lib/misc/keyword.d.ts +3 -1
  171. package/lib/misc/keyword.mjs +2 -4
  172. package/lib/misc/scan.cjs +51 -0
  173. package/lib/misc/scan.d.ts +7 -6
  174. package/lib/misc/scan.mjs +6 -7
  175. package/lib/misc/write-json.cjs +11 -0
  176. package/lib/misc/write-json.d.ts +3 -1
  177. package/lib/misc/write-json.mjs +5 -6
  178. package/lib/optimise/flags.cjs +252 -0
  179. package/lib/optimise/flags.d.ts +7 -2
  180. package/lib/optimise/flags.mjs +18 -19
  181. package/lib/optimise/global-style.cjs +154 -0
  182. package/lib/optimise/global-style.d.ts +7 -2
  183. package/lib/optimise/global-style.mjs +68 -47
  184. package/lib/optimise/scale.cjs +26 -0
  185. package/lib/optimise/scale.d.ts +7 -2
  186. package/lib/optimise/scale.mjs +5 -5
  187. package/lib/optimise/svgo.cjs +83 -0
  188. package/lib/optimise/svgo.d.ts +10 -6
  189. package/lib/optimise/svgo.mjs +6 -9
  190. package/lib/svg/analyse/error.cjs +18 -0
  191. package/lib/svg/analyse/error.d.ts +5 -2
  192. package/lib/svg/analyse/error.mjs +2 -4
  193. package/lib/svg/analyse/types.cjs +2 -0
  194. package/lib/svg/analyse/types.d.ts +11 -11
  195. package/lib/svg/analyse/types.mjs +1 -0
  196. package/lib/svg/analyse.cjs +291 -0
  197. package/lib/svg/analyse.d.ts +8 -3
  198. package/lib/svg/analyse.mjs +15 -30
  199. package/lib/svg/cleanup/attribs.cjs +41 -0
  200. package/lib/svg/cleanup/attribs.d.ts +7 -2
  201. package/lib/svg/cleanup/attribs.mjs +6 -12
  202. package/lib/svg/cleanup/bad-tags.cjs +51 -0
  203. package/lib/svg/cleanup/bad-tags.d.ts +7 -2
  204. package/lib/svg/cleanup/bad-tags.mjs +10 -25
  205. package/lib/svg/cleanup/inline-style.cjs +64 -0
  206. package/lib/svg/cleanup/inline-style.d.ts +7 -2
  207. package/lib/svg/cleanup/inline-style.mjs +14 -19
  208. package/lib/svg/cleanup/root-svg.cjs +81 -0
  209. package/lib/svg/cleanup/root-svg.d.ts +7 -2
  210. package/lib/svg/cleanup/root-svg.mjs +7 -18
  211. package/lib/svg/cleanup/svgo-style.cjs +38 -0
  212. package/lib/svg/cleanup/svgo-style.d.ts +7 -2
  213. package/lib/svg/cleanup/svgo-style.mjs +16 -11
  214. package/lib/svg/cleanup.cjs +32 -0
  215. package/lib/svg/cleanup.d.ts +7 -2
  216. package/lib/svg/cleanup.mjs +21 -9
  217. package/lib/svg/data/attributes.cjs +355 -0
  218. package/lib/svg/data/attributes.d.ts +27 -25
  219. package/lib/svg/data/attributes.mjs +90 -115
  220. package/lib/svg/data/tags.cjs +137 -0
  221. package/lib/svg/data/tags.d.ts +25 -23
  222. package/lib/svg/data/tags.mjs +25 -49
  223. package/lib/svg/index.cjs +130 -0
  224. package/lib/svg/index.d.ts +16 -5
  225. package/lib/svg/index.mjs +48 -11
  226. package/lib/svg/parse-style.cjs +134 -0
  227. package/lib/svg/parse-style.d.ts +12 -8
  228. package/lib/svg/parse-style.mjs +11 -9
  229. package/lib/svg/parse.cjs +42 -0
  230. package/lib/svg/parse.d.ts +11 -7
  231. package/lib/svg/parse.mjs +2 -4
  232. package/package.json +102 -93
  233. package/lib/colors/attribs.js +0 -26
  234. package/lib/colors/parse.js +0 -341
  235. package/lib/colors/validate.js +0 -48
  236. package/lib/css/parse.js +0 -23
  237. package/lib/css/parser/error.js +0 -27
  238. package/lib/css/parser/export.js +0 -69
  239. package/lib/css/parser/strings.js +0 -93
  240. package/lib/css/parser/text.js +0 -171
  241. package/lib/css/parser/tokens.js +0 -200
  242. package/lib/css/parser/tree.js +0 -44
  243. package/lib/css/parser/types.js +0 -2
  244. package/lib/download/api/cache.js +0 -108
  245. package/lib/download/api/download.js +0 -27
  246. package/lib/download/api/index.js +0 -52
  247. package/lib/download/api/types.js +0 -2
  248. package/lib/download/git/branch.js +0 -22
  249. package/lib/download/git/hash.js +0 -14
  250. package/lib/download/git/index.js +0 -63
  251. package/lib/download/github/hash.js +0 -28
  252. package/lib/download/github/index.js +0 -116
  253. package/lib/download/github/types.js +0 -2
  254. package/lib/download/gitlab/hash.js +0 -27
  255. package/lib/download/gitlab/index.js +0 -115
  256. package/lib/download/gitlab/types.js +0 -7
  257. package/lib/download/helpers/untar.js +0 -14
  258. package/lib/download/helpers/unzip.js +0 -18
  259. package/lib/download/index.js +0 -27
  260. package/lib/download/npm/index.js +0 -91
  261. package/lib/download/npm/types.js +0 -2
  262. package/lib/download/npm/version.js +0 -27
  263. package/lib/download/types/modified.js +0 -2
  264. package/lib/download/types/sources.js +0 -2
  265. package/lib/export/directory.js +0 -52
  266. package/lib/export/helpers/custom-files.js +0 -32
  267. package/lib/export/helpers/prepare.js +0 -49
  268. package/lib/export/helpers/types-version.js +0 -12
  269. package/lib/export/icon-package.js +0 -77
  270. package/lib/export/json-package.js +0 -151
  271. package/lib/icon-set/index.js +0 -746
  272. package/lib/icon-set/match.js +0 -66
  273. package/lib/icon-set/merge.js +0 -90
  274. package/lib/icon-set/props.js +0 -33
  275. package/lib/icon-set/types.js +0 -2
  276. package/lib/import/directory.js +0 -59
  277. package/lib/import/figma/index.js +0 -90
  278. package/lib/import/figma/nodes.js +0 -108
  279. package/lib/import/figma/query.js +0 -244
  280. package/lib/import/figma/types/api.js +0 -12
  281. package/lib/import/figma/types/nodes.js +0 -2
  282. package/lib/import/figma/types/options.js +0 -2
  283. package/lib/import/figma/types/result.js +0 -2
  284. package/lib/index.js +0 -101
  285. package/lib/misc/bump-version.js +0 -19
  286. package/lib/misc/compare-dirs.js +0 -84
  287. package/lib/misc/exec.js +0 -26
  288. package/lib/misc/keyword.js +0 -31
  289. package/lib/misc/scan.js +0 -55
  290. package/lib/misc/write-json.js +0 -11
  291. package/lib/optimise/flags.js +0 -312
  292. package/lib/optimise/global-style.js +0 -158
  293. package/lib/optimise/scale.js +0 -42
  294. package/lib/optimise/svgo.js +0 -99
  295. package/lib/svg/analyse/error.js +0 -22
  296. package/lib/svg/analyse/types.js +0 -2
  297. package/lib/svg/analyse.js +0 -352
  298. package/lib/svg/cleanup/attribs.js +0 -51
  299. package/lib/svg/cleanup/bad-tags.js +0 -65
  300. package/lib/svg/cleanup/inline-style.js +0 -77
  301. package/lib/svg/cleanup/root-svg.js +0 -107
  302. package/lib/svg/cleanup/svgo-style.js +0 -35
  303. package/lib/svg/cleanup.js +0 -24
  304. package/lib/svg/data/attributes.js +0 -403
  305. package/lib/svg/data/tags.js +0 -188
  306. package/lib/svg/index.js +0 -125
  307. package/lib/svg/parse-style.js +0 -151
  308. 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,151 +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
- const contents = {
56
- icons,
57
- info,
58
- metadata: hasMetadata ? metadata : void 0,
59
- chars: exportedJSON.chars,
60
- };
61
- // Generate package.json
62
- const { name, description, version, dependencies, ...customPackageProps } = options.package || {};
63
- const packageJSONIconSet = {};
64
- const packageJSONExports = {
65
- './*': './*',
66
- '.': {
67
- require: './index.js',
68
- import: './index.mjs',
69
- },
70
- };
71
- const packageJSON = {
72
- name: name || `@iconify-json/${iconSet.prefix}`,
73
- description: description ||
74
- `${info ? info.name : iconSet.prefix} icon set in Iconify JSON format`,
75
- version,
76
- iconSetVersion: info === null || info === void 0 ? void 0 : info.version,
77
- main: 'index.js',
78
- module: 'index.mjs',
79
- types: 'index.d.ts',
80
- ...customPackageProps,
81
- exports: packageJSONExports,
82
- iconSet: packageJSONIconSet,
83
- dependencies: dependencies || {
84
- '@iconify/types': '^' + (0, types_version_1.getTypesVersion)(),
85
- },
86
- };
87
- // Save all files, generate exports
88
- const dtsContent = [];
89
- const cjsImports = [];
90
- const cjsExports = [];
91
- const mjsImports = [];
92
- const mjsConsts = [];
93
- const mjsExports = [];
94
- for (const key in contents) {
95
- const attr = key;
96
- const data = contents[attr];
97
- const type = exportTypes[attr];
98
- const jsonFilename = attr + '.json';
99
- const relativeFile = `./${jsonFilename}`;
100
- // Add type
101
- dtsContent.push(`export declare const ${attr}: ${type};`);
102
- // Export variable
103
- cjsExports.push(`exports.${attr} = ${attr};`);
104
- mjsExports.push(attr);
105
- if (data !== void 0) {
106
- // Save JSON file
107
- await (0, write_json_1.writeJSONFile)(`${dir}/${jsonFilename}`, data);
108
- // Import data from JSON file
109
- cjsImports.push(`const ${attr} = require('${relativeFile}');`);
110
- mjsImports.push(`import ${attr} from '${relativeFile}';`);
111
- // Add data to package.json
112
- packageJSONIconSet[attr] = attr + '.json';
113
- packageJSONExports[relativeFile] = relativeFile;
114
- }
115
- else {
116
- // Create empty data
117
- await (0, write_json_1.writeJSONFile)(`${dir}/${jsonFilename}`, {});
118
- cjsImports.push(`const ${attr} = {};`);
119
- mjsConsts.push(`const ${attr} = {};`);
120
- }
121
- files.add(jsonFilename);
122
- }
123
- // Generate CJS index file
124
- const cjsContent = cjsImports.concat([''], cjsExports);
125
- await fs_1.promises.writeFile(dir + '/index.js', cjsContent.join('\n') + '\n', 'utf8');
126
- files.add('index.js');
127
- // Generate MJS index file
128
- const mjsContent = mjsImports.concat([''], mjsConsts, [
129
- `export { ${mjsExports.join(', ')} };`,
130
- ]);
131
- await fs_1.promises.writeFile(dir + '/index.mjs', mjsContent.join('\n') + '\n', 'utf8');
132
- files.add('index.mjs');
133
- // Generate types file
134
- const usedTypes = Object.values(exportTypes);
135
- const typesData = [
136
- `import type { ${usedTypes.join(', ')} } from '@iconify/types';`,
137
- '',
138
- `export { ${usedTypes.join(', ')} };`,
139
- '',
140
- ].concat(dtsContent);
141
- await fs_1.promises.writeFile(dir + '/index.d.ts', typesData.join('\n') + '\n', 'utf8');
142
- files.add('index.d.ts');
143
- // Write custom files
144
- await (0, custom_files_1.exportCustomFiles)(dir, options, files);
145
- // Save package.json
146
- await (0, write_json_1.writeJSONFile)(dir + '/package.json', packageJSON);
147
- files.add('package.json');
148
- // Return list of stored files as array
149
- return Array.from(files);
150
- }
151
- exports.exportJSONPackage = exportJSONPackage;