| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | 
							- import path from 'path';
 
- import fs from 'fs-extra';
 
- import inquirer from 'inquirer';
 
- import colors from 'picocolors';
 
- import pkg from '../../../package.json';
 
- async function generateIcon() {
 
-   const dir = path.resolve(process.cwd(), 'node_modules/@iconify/json');
 
-   const raw = await fs.readJSON(path.join(dir, 'collections.json'));
 
-   const collections = Object.entries(raw).map(([id, v]) => ({
 
-     ...(v as any),
 
-     id,
 
-   }));
 
-   const choices = collections.map((item) => ({ key: item.id, value: item.id, name: item.name }));
 
-   inquirer
 
-     .prompt([
 
-       {
 
-         type: 'list',
 
-         name: 'useType',
 
-         choices: [
 
-           { key: 'local', value: 'local', name: 'Local' },
 
-           { key: 'onLine', value: 'onLine', name: 'OnLine' },
 
-         ],
 
-         message: 'How to use icons?',
 
-       },
 
-       {
 
-         type: 'list',
 
-         name: 'iconSet',
 
-         choices: choices,
 
-         message: 'Select the icon set that needs to be generated?',
 
-       },
 
-       {
 
-         type: 'input',
 
-         name: 'output',
 
-         message: 'Select the icon set that needs to be generated?',
 
-         default: 'src/components/Icon/data',
 
-       },
 
-     ])
 
-     .then(async (answers) => {
 
-       const { iconSet, output, useType } = answers;
 
-       const outputDir = path.resolve(process.cwd(), output);
 
-       fs.ensureDir(outputDir);
 
-       const genCollections = collections.filter((item) => [iconSet].includes(item.id));
 
-       const prefixSet: string[] = [];
 
-       for (const info of genCollections) {
 
-         const data = await fs.readJSON(path.join(dir, 'json', `${info.id}.json`));
 
-         if (data) {
 
-           const { prefix } = data;
 
-           const isLocal = useType === 'local';
 
-           const icons = Object.keys(data.icons).map((item) => `${isLocal ? prefix + ':' : ''}${item}`);
 
-           await fs.writeFileSync(
 
-             path.join(output, `icons.data.ts`),
 
-             `export default ${isLocal ? JSON.stringify(icons) : JSON.stringify({ prefix, icons })}`
 
-           );
 
-           prefixSet.push(prefix);
 
-         }
 
-       }
 
-       fs.emptyDir(path.join(process.cwd(), 'node_modules/.vite'));
 
-       console.log(`✨ ${colors.cyan(`[${pkg.name}]`)}` + ' - Icon generated successfully:' + `[${prefixSet}]`);
 
-     });
 
- }
 
- generateIcon();
 
 
  |