@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.
Files changed (309) 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 +41 -26
  55. package/lib/download/git/reset.cjs +41 -0
  56. package/lib/download/git/reset.d.ts +3 -1
  57. package/lib/download/git/reset.mjs +29 -5
  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 +20 -21
  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 +40 -53
  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 +7 -10
  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 +3 -11
  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 -44
  159. package/lib/index.mjs +83 -94
  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 +18 -15
  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 -14
  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 +99 -94
  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 -75
  251. package/lib/download/git/reset.js +0 -16
  252. package/lib/download/github/hash.js +0 -28
  253. package/lib/download/github/index.js +0 -116
  254. package/lib/download/github/types.js +0 -2
  255. package/lib/download/gitlab/hash.js +0 -27
  256. package/lib/download/gitlab/index.js +0 -115
  257. package/lib/download/gitlab/types.js +0 -7
  258. package/lib/download/helpers/untar.js +0 -14
  259. package/lib/download/helpers/unzip.js +0 -18
  260. package/lib/download/index.js +0 -27
  261. package/lib/download/npm/index.js +0 -91
  262. package/lib/download/npm/types.js +0 -2
  263. package/lib/download/npm/version.js +0 -27
  264. package/lib/download/types/modified.js +0 -2
  265. package/lib/download/types/sources.js +0 -2
  266. package/lib/export/directory.js +0 -52
  267. package/lib/export/helpers/custom-files.js +0 -32
  268. package/lib/export/helpers/prepare.js +0 -49
  269. package/lib/export/helpers/types-version.js +0 -12
  270. package/lib/export/icon-package.js +0 -77
  271. package/lib/export/json-package.js +0 -156
  272. package/lib/icon-set/index.js +0 -749
  273. package/lib/icon-set/match.js +0 -66
  274. package/lib/icon-set/merge.js +0 -90
  275. package/lib/icon-set/props.js +0 -34
  276. package/lib/icon-set/types.js +0 -2
  277. package/lib/import/directory.js +0 -59
  278. package/lib/import/figma/index.js +0 -90
  279. package/lib/import/figma/nodes.js +0 -106
  280. package/lib/import/figma/query.js +0 -244
  281. package/lib/import/figma/types/api.js +0 -12
  282. package/lib/import/figma/types/nodes.js +0 -2
  283. package/lib/import/figma/types/options.js +0 -2
  284. package/lib/import/figma/types/result.js +0 -2
  285. package/lib/index.js +0 -103
  286. package/lib/misc/bump-version.js +0 -19
  287. package/lib/misc/compare-dirs.js +0 -84
  288. package/lib/misc/exec.js +0 -26
  289. package/lib/misc/keyword.js +0 -31
  290. package/lib/misc/scan.js +0 -55
  291. package/lib/misc/write-json.js +0 -11
  292. package/lib/optimise/flags.js +0 -312
  293. package/lib/optimise/global-style.js +0 -185
  294. package/lib/optimise/scale.js +0 -42
  295. package/lib/optimise/svgo.js +0 -99
  296. package/lib/svg/analyse/error.js +0 -22
  297. package/lib/svg/analyse/types.js +0 -2
  298. package/lib/svg/analyse.js +0 -352
  299. package/lib/svg/cleanup/attribs.js +0 -51
  300. package/lib/svg/cleanup/bad-tags.js +0 -65
  301. package/lib/svg/cleanup/inline-style.js +0 -77
  302. package/lib/svg/cleanup/root-svg.js +0 -107
  303. package/lib/svg/cleanup/svgo-style.js +0 -35
  304. package/lib/svg/cleanup.js +0 -24
  305. package/lib/svg/data/attributes.js +0 -403
  306. package/lib/svg/data/tags.js +0 -188
  307. package/lib/svg/index.js +0 -134
  308. package/lib/svg/parse-style.js +0 -151
  309. 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;