@iconify/tools 2.2.6 → 3.0.0-beta.2

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 (85) hide show
  1. package/README.md +8 -2
  2. package/lib/colors/detect.cjs +4 -4
  3. package/lib/colors/detect.d.ts +1 -1
  4. package/lib/colors/detect.mjs +5 -5
  5. package/lib/colors/parse.cjs +275 -129
  6. package/lib/colors/parse.d.ts +14 -5
  7. package/lib/colors/parse.mjs +278 -133
  8. package/lib/colors/validate.cjs +11 -2
  9. package/lib/colors/validate.d.ts +10 -2
  10. package/lib/colors/validate.mjs +12 -4
  11. package/lib/css/parser/export.cjs +1 -10
  12. package/lib/css/parser/export.mjs +1 -10
  13. package/lib/css/parser/text.cjs +6 -25
  14. package/lib/css/parser/text.mjs +6 -25
  15. package/lib/css/parser/types.d.ts +2 -3
  16. package/lib/download/api/download.cjs +4 -4
  17. package/lib/download/api/download.mjs +4 -4
  18. package/lib/download/api/index.cjs +0 -1
  19. package/lib/download/api/index.mjs +0 -1
  20. package/lib/download/git/index.cjs +1 -1
  21. package/lib/download/git/index.mjs +1 -1
  22. package/lib/download/git/reset.cjs +1 -1
  23. package/lib/download/git/reset.mjs +1 -1
  24. package/lib/download/github/hash.cjs +0 -1
  25. package/lib/download/github/hash.mjs +0 -1
  26. package/lib/download/github/index.cjs +1 -1
  27. package/lib/download/github/index.mjs +1 -1
  28. package/lib/download/gitlab/hash.cjs +0 -1
  29. package/lib/download/gitlab/hash.mjs +0 -1
  30. package/lib/download/gitlab/index.cjs +1 -1
  31. package/lib/download/gitlab/index.mjs +1 -1
  32. package/lib/download/helpers/unzip.cjs +5 -1
  33. package/lib/download/index.cjs +1 -1
  34. package/lib/download/index.mjs +1 -1
  35. package/lib/download/npm/index.cjs +1 -1
  36. package/lib/download/npm/index.mjs +1 -1
  37. package/lib/icon-set/index.cjs +18 -0
  38. package/lib/icon-set/index.d.ts +7 -1
  39. package/lib/icon-set/index.mjs +18 -0
  40. package/lib/icon-set/tags.cjs +2 -2
  41. package/lib/icon-set/tags.d.ts +1 -1
  42. package/lib/icon-set/tags.mjs +2 -2
  43. package/lib/icon-set/types.d.ts +5 -4
  44. package/lib/import/directory.cjs +101 -28
  45. package/lib/import/directory.d.ts +12 -5
  46. package/lib/import/directory.mjs +103 -31
  47. package/lib/import/figma/index.cjs +1 -2
  48. package/lib/import/figma/index.mjs +1 -2
  49. package/lib/import/figma/query.cjs +0 -1
  50. package/lib/import/figma/query.mjs +0 -1
  51. package/lib/index.cjs +7 -1
  52. package/lib/index.d.ts +6 -6
  53. package/lib/index.mjs +7 -7
  54. package/lib/misc/scan.cjs +61 -8
  55. package/lib/misc/scan.d.ts +12 -6
  56. package/lib/misc/scan.mjs +62 -10
  57. package/lib/svg/analyse.cjs +2 -2
  58. package/lib/svg/analyse.d.ts +1 -1
  59. package/lib/svg/analyse.mjs +4 -4
  60. package/lib/svg/cleanup/attribs.cjs +2 -2
  61. package/lib/svg/cleanup/attribs.d.ts +1 -1
  62. package/lib/svg/cleanup/attribs.mjs +3 -3
  63. package/lib/svg/cleanup/bad-tags.cjs +2 -2
  64. package/lib/svg/cleanup/bad-tags.d.ts +1 -1
  65. package/lib/svg/cleanup/bad-tags.mjs +3 -3
  66. package/lib/svg/cleanup/inline-style.cjs +2 -2
  67. package/lib/svg/cleanup/inline-style.d.ts +1 -1
  68. package/lib/svg/cleanup/inline-style.mjs +3 -3
  69. package/lib/svg/cleanup/root-style.cjs +19 -8
  70. package/lib/svg/cleanup/root-style.d.ts +5 -5
  71. package/lib/svg/cleanup/root-style.mjs +20 -9
  72. package/lib/svg/cleanup/svgo-style.cjs +5 -2
  73. package/lib/svg/cleanup/svgo-style.d.ts +1 -1
  74. package/lib/svg/cleanup/svgo-style.mjs +6 -3
  75. package/lib/svg/cleanup.cjs +6 -6
  76. package/lib/svg/cleanup.d.ts +1 -1
  77. package/lib/svg/cleanup.mjs +6 -6
  78. package/lib/svg/index.cjs +5 -1
  79. package/lib/svg/parse-style.cjs +266 -103
  80. package/lib/svg/parse-style.d.ts +21 -3
  81. package/lib/svg/parse-style.mjs +267 -105
  82. package/lib/svg/parse.cjs +56 -18
  83. package/lib/svg/parse.d.ts +8 -2
  84. package/lib/svg/parse.mjs +56 -19
  85. package/package.json +15 -17
@@ -81,7 +81,6 @@ function textTokensToRule(tokens) {
81
81
  });
82
82
  return result.value.length ? result : null;
83
83
  }
84
- const nestableAtRules = ["media", "supports"];
85
84
  function textTokensToSelector(tokens) {
86
85
  const selectors = getSelectors(tokens);
87
86
  const code = mergeTextTokens(tokens);
@@ -89,33 +88,15 @@ function textTokensToSelector(tokens) {
89
88
  if (!selectors.length) {
90
89
  return null;
91
90
  }
92
- if (selectors[0].charAt(0) === "@") {
93
- const atRule = selectors[0].split(/\s+/, 1)[0].slice(1).toLowerCase();
94
- selectors[0] = selectors[0].slice(1 + atRule.length).trim();
95
- const atValues = selectors;
96
- if (nestableAtRules.indexOf(atRule) !== -1) {
97
- atValues.forEach((item, index2) => {
98
- if (typeof item !== "string" || item.charAt(0) !== "(" || item.charAt(item.length - 1) !== ")") {
99
- return;
100
- }
101
- const list = item.slice(1, -1).split(/\)\s?and\s?\(/i).map((item2) => item2.trim());
102
- let match = true;
103
- list.forEach((item2) => {
104
- if (item2.indexOf("(") !== -1 || item2.indexOf(")") !== -1) {
105
- match = false;
106
- }
107
- });
108
- if (match) {
109
- atValues[index2] = list;
110
- }
111
- });
112
- }
91
+ if (code.charAt(0) === "@") {
92
+ const parts = code.split(/\s+/);
93
+ const rule = parts.shift().slice(1);
94
+ const value = parts.join(" ").trim();
113
95
  return {
114
96
  type: "at-rule",
115
- code,
116
97
  index,
117
- atRule,
118
- atValues
98
+ rule,
99
+ value
119
100
  };
120
101
  } else {
121
102
  return {
@@ -79,7 +79,6 @@ function textTokensToRule(tokens) {
79
79
  });
80
80
  return result.value.length ? result : null;
81
81
  }
82
- const nestableAtRules = ["media", "supports"];
83
82
  function textTokensToSelector(tokens) {
84
83
  const selectors = getSelectors(tokens);
85
84
  const code = mergeTextTokens(tokens);
@@ -87,33 +86,15 @@ function textTokensToSelector(tokens) {
87
86
  if (!selectors.length) {
88
87
  return null;
89
88
  }
90
- if (selectors[0].charAt(0) === "@") {
91
- const atRule = selectors[0].split(/\s+/, 1)[0].slice(1).toLowerCase();
92
- selectors[0] = selectors[0].slice(1 + atRule.length).trim();
93
- const atValues = selectors;
94
- if (nestableAtRules.indexOf(atRule) !== -1) {
95
- atValues.forEach((item, index2) => {
96
- if (typeof item !== "string" || item.charAt(0) !== "(" || item.charAt(item.length - 1) !== ")") {
97
- return;
98
- }
99
- const list = item.slice(1, -1).split(/\)\s?and\s?\(/i).map((item2) => item2.trim());
100
- let match = true;
101
- list.forEach((item2) => {
102
- if (item2.indexOf("(") !== -1 || item2.indexOf(")") !== -1) {
103
- match = false;
104
- }
105
- });
106
- if (match) {
107
- atValues[index2] = list;
108
- }
109
- });
110
- }
89
+ if (code.charAt(0) === "@") {
90
+ const parts = code.split(/\s+/);
91
+ const rule = parts.shift().slice(1);
92
+ const value = parts.join(" ").trim();
111
93
  return {
112
94
  type: "at-rule",
113
- code,
114
95
  index,
115
- atRule,
116
- atValues
96
+ rule,
97
+ value
117
98
  };
118
99
  } else {
119
100
  return {
@@ -29,9 +29,8 @@ interface CSSSelectorToken {
29
29
  interface CSSAtRuleToken {
30
30
  type: 'at-rule';
31
31
  index: number;
32
- code: string;
33
- atRule: string;
34
- atValues: CSSATValue[];
32
+ rule: string;
33
+ value: string;
35
34
  }
36
35
  interface CSSCloseToken {
37
36
  type: 'close';
@@ -1,11 +1,10 @@
1
1
  'use strict';
2
2
 
3
- const fetch = require('node-fetch');
4
3
  const util = require('util');
5
4
  const stream = require('stream');
6
- const fs = require('fs');
5
+ const promises = require('fs/promises');
7
6
 
8
- const streamPipeline = util.promisify(stream.pipeline);
7
+ util.promisify(stream.pipeline);
9
8
  async function downloadFile(query, target) {
10
9
  const params = query.params ? query.params.toString() : "";
11
10
  const url = query.uri + (params ? "?" + params : "");
@@ -16,7 +15,8 @@ async function downloadFile(query, target) {
16
15
  if (!response.ok || !response.body) {
17
16
  throw new Error(`Error downloading ${url}: ${response.status}`);
18
17
  }
19
- await streamPipeline(response.body, fs.createWriteStream(target));
18
+ const data = await response.arrayBuffer();
19
+ await promises.writeFile(target, Buffer.from(data));
20
20
  }
21
21
 
22
22
  exports.downloadFile = downloadFile;
@@ -1,9 +1,8 @@
1
- import fetch from 'node-fetch';
2
1
  import { promisify } from 'util';
3
2
  import { pipeline } from 'stream';
4
- import { createWriteStream } from 'fs';
3
+ import { writeFile } from 'fs/promises';
5
4
 
6
- const streamPipeline = promisify(pipeline);
5
+ promisify(pipeline);
7
6
  async function downloadFile(query, target) {
8
7
  const params = query.params ? query.params.toString() : "";
9
8
  const url = query.uri + (params ? "?" + params : "");
@@ -14,7 +13,8 @@ async function downloadFile(query, target) {
14
13
  if (!response.ok || !response.body) {
15
14
  throw new Error(`Error downloading ${url}: ${response.status}`);
16
15
  }
17
- await streamPipeline(response.body, createWriteStream(target));
16
+ const data = await response.arrayBuffer();
17
+ await writeFile(target, Buffer.from(data));
18
18
  }
19
19
 
20
20
  export { downloadFile };
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
 
3
- const fetch = require('node-fetch');
4
3
  const download_api_cache = require('./cache.cjs');
5
4
  require('fs');
6
5
  require('crypto');
@@ -1,4 +1,3 @@
1
- import fetch from 'node-fetch';
2
1
  import { apiCacheKey, getAPICache, storeAPICache } from './cache.mjs';
3
2
  import 'fs';
4
3
  import 'crypto';
@@ -23,11 +23,11 @@ require('@iconify/utils/lib/icon-set/convert-info');
23
23
  require('../../icon-set/props.cjs');
24
24
  require('@iconify/utils/lib/misc/objects');
25
25
  require('@iconify/utils/lib/colors');
26
- require('node-fetch');
27
26
  require('crypto');
28
27
  require('../api/download.cjs');
29
28
  require('util');
30
29
  require('stream');
30
+ require('fs/promises');
31
31
  require('extract-zip');
32
32
  require('tar');
33
33
 
@@ -21,11 +21,11 @@ import '@iconify/utils/lib/icon-set/convert-info';
21
21
  import '../../icon-set/props.mjs';
22
22
  import '@iconify/utils/lib/misc/objects';
23
23
  import '@iconify/utils/lib/colors';
24
- import 'node-fetch';
25
24
  import 'crypto';
26
25
  import '../api/download.mjs';
27
26
  import 'util';
28
27
  import 'stream';
28
+ import 'fs/promises';
29
29
  import 'extract-zip';
30
30
  import 'tar';
31
31
 
@@ -13,7 +13,6 @@ require('@iconify/utils/lib/icon-set/minify');
13
13
  require('@iconify/utils/lib/icon-set/convert-info');
14
14
  require('../../icon-set/props.cjs');
15
15
  require('@iconify/utils/lib/colors');
16
- require('node-fetch');
17
16
  require('fs');
18
17
  require('crypto');
19
18
  require('pathe');
@@ -26,6 +25,7 @@ require('@iconify/utils/lib/misc/objects');
26
25
  require('child_process');
27
26
  require('util');
28
27
  require('stream');
28
+ require('fs/promises');
29
29
 
30
30
  async function resetGitRepoContents(target) {
31
31
  await misc_exec.execAsync("git add -A", {
@@ -11,7 +11,6 @@ import '@iconify/utils/lib/icon-set/minify';
11
11
  import '@iconify/utils/lib/icon-set/convert-info';
12
12
  import '../../icon-set/props.mjs';
13
13
  import '@iconify/utils/lib/colors';
14
- import 'node-fetch';
15
14
  import 'fs';
16
15
  import 'crypto';
17
16
  import 'pathe';
@@ -24,6 +23,7 @@ import '@iconify/utils/lib/misc/objects';
24
23
  import 'child_process';
25
24
  import 'util';
26
25
  import 'stream';
26
+ import 'fs/promises';
27
27
 
28
28
  async function resetGitRepoContents(target) {
29
29
  await execAsync("git add -A", {
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  const download_api_index = require('../api/index.cjs');
4
- require('node-fetch');
5
4
  require('../api/cache.cjs');
6
5
  require('fs');
7
6
  require('crypto');
@@ -1,5 +1,4 @@
1
1
  import { sendAPIQuery } from '../api/index.mjs';
2
- import 'node-fetch';
3
2
  import '../api/cache.mjs';
4
3
  import 'fs';
5
4
  import 'crypto';
@@ -7,12 +7,12 @@ const download_api_download = require('../api/download.cjs');
7
7
  const download_helpers_unzip = require('../helpers/unzip.cjs');
8
8
  require('pathe');
9
9
  require('../api/index.cjs');
10
- require('node-fetch');
11
10
  require('../api/cache.cjs');
12
11
  require('crypto');
13
12
  require('../../misc/scan.cjs');
14
13
  require('util');
15
14
  require('stream');
15
+ require('fs/promises');
16
16
  require('extract-zip');
17
17
 
18
18
  async function findMatchingDirs(rootDir, hash) {
@@ -5,12 +5,12 @@ import { downloadFile } from '../api/download.mjs';
5
5
  import { unzip } from '../helpers/unzip.mjs';
6
6
  import 'pathe';
7
7
  import '../api/index.mjs';
8
- import 'node-fetch';
9
8
  import '../api/cache.mjs';
10
9
  import 'crypto';
11
10
  import '../../misc/scan.mjs';
12
11
  import 'util';
13
12
  import 'stream';
13
+ import 'fs/promises';
14
14
  import 'extract-zip';
15
15
 
16
16
  async function findMatchingDirs(rootDir, hash) {
@@ -2,7 +2,6 @@
2
2
 
3
3
  const download_api_index = require('../api/index.cjs');
4
4
  const download_gitlab_types = require('./types.cjs');
5
- require('node-fetch');
6
5
  require('../api/cache.cjs');
7
6
  require('fs');
8
7
  require('crypto');
@@ -1,6 +1,5 @@
1
1
  import { sendAPIQuery } from '../api/index.mjs';
2
2
  import { defaultGitLabBaseURI } from './types.mjs';
3
- import 'node-fetch';
4
3
  import '../api/cache.mjs';
5
4
  import 'fs';
6
5
  import 'crypto';
@@ -8,12 +8,12 @@ const download_api_download = require('../api/download.cjs');
8
8
  const download_helpers_unzip = require('../helpers/unzip.cjs');
9
9
  require('pathe');
10
10
  require('../api/index.cjs');
11
- require('node-fetch');
12
11
  require('../api/cache.cjs');
13
12
  require('crypto');
14
13
  require('../../misc/scan.cjs');
15
14
  require('util');
16
15
  require('stream');
16
+ require('fs/promises');
17
17
  require('extract-zip');
18
18
 
19
19
  async function findMatchingDirs(rootDir, hash) {
@@ -6,12 +6,12 @@ import { downloadFile } from '../api/download.mjs';
6
6
  import { unzip } from '../helpers/unzip.mjs';
7
7
  import 'pathe';
8
8
  import '../api/index.mjs';
9
- import 'node-fetch';
10
9
  import '../api/cache.mjs';
11
10
  import 'crypto';
12
11
  import '../../misc/scan.mjs';
13
12
  import 'util';
14
13
  import 'stream';
14
+ import 'fs/promises';
15
15
  import 'extract-zip';
16
16
 
17
17
  async function findMatchingDirs(rootDir, hash) {
@@ -3,9 +3,13 @@
3
3
  const extract = require('extract-zip');
4
4
  const fs = require('fs');
5
5
 
6
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
7
+
8
+ const extract__default = /*#__PURE__*/_interopDefaultCompat(extract);
9
+
6
10
  async function unzip(source, path) {
7
11
  const dir = await fs.promises.realpath(path);
8
- await extract(source, {
12
+ await extract__default(source, {
9
13
  dir
10
14
  });
11
15
  }
@@ -9,13 +9,13 @@ require('../export/helpers/prepare.cjs');
9
9
  require('pathe');
10
10
  require('./github/hash.cjs');
11
11
  require('./api/index.cjs');
12
- require('node-fetch');
13
12
  require('./api/cache.cjs');
14
13
  require('crypto');
15
14
  require('../misc/scan.cjs');
16
15
  require('./api/download.cjs');
17
16
  require('util');
18
17
  require('stream');
18
+ require('fs/promises');
19
19
  require('./helpers/unzip.cjs');
20
20
  require('extract-zip');
21
21
  require('../misc/exec.cjs');
@@ -7,13 +7,13 @@ import '../export/helpers/prepare.mjs';
7
7
  import 'pathe';
8
8
  import './github/hash.mjs';
9
9
  import './api/index.mjs';
10
- import 'node-fetch';
11
10
  import './api/cache.mjs';
12
11
  import 'crypto';
13
12
  import '../misc/scan.mjs';
14
13
  import './api/download.mjs';
15
14
  import 'util';
16
15
  import 'stream';
16
+ import 'fs/promises';
17
17
  import './helpers/unzip.mjs';
18
18
  import 'extract-zip';
19
19
  import '../misc/exec.mjs';
@@ -6,9 +6,9 @@ const download_api_download = require('../api/download.cjs');
6
6
  const download_helpers_untar = require('../helpers/untar.cjs');
7
7
  const download_npm_version = require('./version.cjs');
8
8
  require('pathe');
9
- require('node-fetch');
10
9
  require('util');
11
10
  require('stream');
11
+ require('fs/promises');
12
12
  require('tar');
13
13
  require('../../misc/exec.cjs');
14
14
  require('child_process');
@@ -4,9 +4,9 @@ import { downloadFile } from '../api/download.mjs';
4
4
  import { untar } from '../helpers/untar.mjs';
5
5
  import { getNPMVersion, getPackageVersion } from './version.mjs';
6
6
  import 'pathe';
7
- import 'node-fetch';
8
7
  import 'util';
9
8
  import 'stream';
9
+ import 'fs/promises';
10
10
  import 'tar';
11
11
  import '../../misc/exec.mjs';
12
12
  import 'child_process';
@@ -172,6 +172,24 @@ class IconSet {
172
172
  }
173
173
  }
174
174
  }
175
+ /**
176
+ * Synchronous version of forEach function to loop through all entries.
177
+ *
178
+ * Callback should return false to stop loop.
179
+ */
180
+ forEachSync(callback, types = ["icon", "variation", "alias"]) {
181
+ const names = this.list(types);
182
+ for (let i = 0; i < names.length; i++) {
183
+ const name = names[i];
184
+ const item = this.entries[name];
185
+ if (item) {
186
+ const result = callback(name, item.type);
187
+ if (result === false) {
188
+ return;
189
+ }
190
+ }
191
+ }
192
+ }
175
193
  /**
176
194
  * Get parent icons tree
177
195
  *
@@ -1,6 +1,6 @@
1
1
  import { IconifyInfo, IconifyJSON } from '@iconify/types';
2
2
  import { IconifyIconCustomisations } from '@iconify/utils/lib/customisations/defaults';
3
- import { IconSetIconEntry, IconCategory, IconSetIconType, IconSetAsyncForEachCallback, ResolvedIconifyIcon, CommonIconProps, CheckThemeResult } from './types.js';
3
+ import { IconSetIconEntry, IconCategory, IconSetIconType, IconSetAsyncForEachCallback, IconSetSyncForEachCallback, ResolvedIconifyIcon, CommonIconProps, CheckThemeResult } from './types.js';
4
4
  import { SVG } from '../svg/index.js';
5
5
  import { ParentIconsTree } from '@iconify/utils/lib/icon-set/tree';
6
6
 
@@ -48,6 +48,12 @@ declare class IconSet {
48
48
  * Callback should return false to stop loop.
49
49
  */
50
50
  forEach(callback: IconSetAsyncForEachCallback, types?: IconSetIconType[]): Promise<void>;
51
+ /**
52
+ * Synchronous version of forEach function to loop through all entries.
53
+ *
54
+ * Callback should return false to stop loop.
55
+ */
56
+ forEachSync(callback: IconSetSyncForEachCallback, types?: IconSetIconType[]): void;
51
57
  /**
52
58
  * Get parent icons tree
53
59
  *
@@ -170,6 +170,24 @@ class IconSet {
170
170
  }
171
171
  }
172
172
  }
173
+ /**
174
+ * Synchronous version of forEach function to loop through all entries.
175
+ *
176
+ * Callback should return false to stop loop.
177
+ */
178
+ forEachSync(callback, types = ["icon", "variation", "alias"]) {
179
+ const names = this.list(types);
180
+ for (let i = 0; i < names.length; i++) {
181
+ const name = names[i];
182
+ const item = this.entries[name];
183
+ if (item) {
184
+ const result = callback(name, item.type);
185
+ if (result === false) {
186
+ return;
187
+ }
188
+ }
189
+ }
190
+ }
173
191
  /**
174
192
  * Get parent icons tree
175
193
  *
@@ -28,7 +28,7 @@ const sizeTags = {
28
28
  gridPrefix: "Grid: ",
29
29
  heightPrefix: "Height: "
30
30
  };
31
- async function addTagsToIconSet(iconSet, customTags) {
31
+ function addTagsToIconSet(iconSet, customTags) {
32
32
  const info = iconSet.info;
33
33
  const tags = [];
34
34
  const iconNames = Object.keys(iconSet.entries).filter((key) => {
@@ -44,7 +44,7 @@ async function addTagsToIconSet(iconSet, customTags) {
44
44
  if (iconNames.length) {
45
45
  let hasPalette = info?.palette;
46
46
  if (hasPalette === void 0) {
47
- hasPalette = await colors_detect.detectIconSetPalette(iconSet);
47
+ hasPalette = colors_detect.detectIconSetPalette(iconSet);
48
48
  }
49
49
  if (hasPalette === true) {
50
50
  tags.push(paletteTags.palette);
@@ -17,6 +17,6 @@ declare const sizeTags: {
17
17
  /**
18
18
  * Add tags to icon set
19
19
  */
20
- declare function addTagsToIconSet(iconSet: IconSet, customTags?: string[]): Promise<string[]>;
20
+ declare function addTagsToIconSet(iconSet: IconSet, customTags?: string[]): string[];
21
21
 
22
22
  export { addTagsToIconSet, paletteTags, sizeTags };
@@ -26,7 +26,7 @@ const sizeTags = {
26
26
  gridPrefix: "Grid: ",
27
27
  heightPrefix: "Height: "
28
28
  };
29
- async function addTagsToIconSet(iconSet, customTags) {
29
+ function addTagsToIconSet(iconSet, customTags) {
30
30
  const info = iconSet.info;
31
31
  const tags = [];
32
32
  const iconNames = Object.keys(iconSet.entries).filter((key) => {
@@ -42,7 +42,7 @@ async function addTagsToIconSet(iconSet, customTags) {
42
42
  if (iconNames.length) {
43
43
  let hasPalette = info?.palette;
44
44
  if (hasPalette === void 0) {
45
- hasPalette = await detectIconSetPalette(iconSet);
45
+ hasPalette = detectIconSetPalette(iconSet);
46
46
  }
47
47
  if (hasPalette === true) {
48
48
  tags.push(paletteTags.palette);
@@ -64,11 +64,12 @@ interface CheckThemeResult {
64
64
  invalid: string[];
65
65
  }
66
66
  /**
67
- * Callback for asyncForEach function
67
+ * Callback for forEach functions
68
68
  *
69
69
  * Return false to stop loop
70
70
  */
71
- type IconSetAsyncForEachCallbackResult = void | false;
72
- type IconSetAsyncForEachCallback = (name: string, type: IconSetIconEntry['type']) => Promise<IconSetAsyncForEachCallbackResult> | IconSetAsyncForEachCallbackResult;
71
+ type IconSetForEachCallbackResult = void | false;
72
+ type IconSetAsyncForEachCallback = (name: string, type: IconSetIconEntry['type']) => Promise<IconSetForEachCallbackResult> | IconSetForEachCallbackResult;
73
+ type IconSetSyncForEachCallback = (name: string, type: IconSetIconEntry['type']) => IconSetForEachCallbackResult;
73
74
 
74
- export { CheckThemeResult, CommonIconProps, ExtraIconProps, IconCategory, IconParentData, IconSetAsyncForEachCallback, IconSetIcon, IconSetIconAlias, IconSetIconEntry, IconSetIconType, IconSetIconVariation, IconWithCategories, IconWithChars, IconWithPropsData, ResolvedIconifyIcon };
75
+ export { CheckThemeResult, CommonIconProps, ExtraIconProps, IconCategory, IconParentData, IconSetAsyncForEachCallback, IconSetIcon, IconSetIconAlias, IconSetIconEntry, IconSetIconType, IconSetIconVariation, IconSetSyncForEachCallback, IconWithCategories, IconWithChars, IconWithPropsData, ResolvedIconifyIcon };