diff --git a/packages/react-icons/eslint.config.mjs b/packages/react-icons/eslint.config.mjs index 0b4a35b882f..db405ed2789 100644 --- a/packages/react-icons/eslint.config.mjs +++ b/packages/react-icons/eslint.config.mjs @@ -15,11 +15,9 @@ export default tseslint.config( 'src/fonts/', 'node_modules/', // build scripts and configs + 'scripts/**', '*.js', '*.config.js', - 'build.js', - 'convert.js', - 'convert-font.js', ], }, ...tseslint.configs.recommended, diff --git a/packages/react-icons/package.json b/packages/react-icons/package.json index ae650ab97fc..35d2f97574e 100644 --- a/packages/react-icons/package.json +++ b/packages/react-icons/package.json @@ -14,9 +14,9 @@ "scripts": { "clean": "git clean -fXd lib/ lib-cjs/ intermediate/ src/ tmp/", "generate:assets-to-svg": "node ../../importer/generate.js --source=../../assets --dest=./intermediate --extension=svg --target=react", - "convert:svg": "node convert.js --source=./intermediate --dest=./src --perIconDest=./src/atoms/svg --spriteDest=./src/atoms/svg-sprite --headlessPerIconDest=./src/atoms/headless-svg --headlessSpriteDest=./src/atoms/headless-svg-sprite --rtl=./intermediate/rtl.json --metadata=./tmp/metadata-svg.json", - "convert:fonts": "node convert-font.js --source=./src/utils/fonts --dest=./src/fonts --perIconDest=./src/atoms/fonts --headlessPerIconDest=./src/atoms/headless-fonts --codepointDest=./src/utils/fonts --rtl=./intermediate/rtl.json --metadata=./tmp/metadata-font.json", - "convert:merge-metadata": "node merge-metadata.js --svgMetadata=./tmp/metadata-svg.json --fontMetadata=./tmp/metadata-font.json --output=./metadata.json", + "convert:svg": "node scripts/convert.js --source=./intermediate --dest=./src --perIconDest=./src/atoms/svg --spriteDest=./src/atoms/svg-sprite --headlessPerIconDest=./src/atoms/headless-svg --headlessSpriteDest=./src/atoms/headless-svg-sprite --rtl=./intermediate/rtl.json --metadata=./tmp/metadata-svg.json", + "convert:fonts": "node scripts/convert-font.js --source=./src/utils/fonts --dest=./src/fonts --perIconDest=./src/atoms/fonts --headlessPerIconDest=./src/atoms/headless-fonts --codepointDest=./src/utils/fonts --rtl=./intermediate/rtl.json --metadata=./tmp/metadata-font.json", + "convert:merge-metadata": "node scripts/merge-metadata.js --svgMetadata=./tmp/metadata-svg.json --fontMetadata=./tmp/metadata-font.json --output=./metadata.json", "generate:font-regular": "node ../../importer/generateFont.js --source=intermediate --dest=src/utils/fonts --iconType=Regular --codepoints=../../fonts/FluentSystemIcons-Regular.json", "generate:font-filled": "node ../../importer/generateFont.js --source=intermediate --dest=src/utils/fonts --iconType=Filled --codepoints=../../fonts/FluentSystemIcons-Filled.json", "generate:font-light": "node ../../importer/generateFont.js --source=intermediate --dest=src/utils/fonts --iconType=Light", @@ -24,10 +24,10 @@ "generate:font": "concurrently 'npm run generate:font-regular' 'npm run generate:font-filled' 'npm run generate:font-light' 'npm run generate:font-resizable'", "generate:rtl": "node ../../importer/rtlMetadata.js --source=../../assets --dest=./intermediate/rtl.json", "optimize": "svgo --config svgo.config.js --folder=./intermediate --precision=2 --quiet", - "unfill": "node unfill.js --source=./intermediate", + "unfill": "node scripts/unfill.js --source=./intermediate", "build:fonts-and-svg": "npm run generate:assets-to-svg && npm run generate:font && npm run generate:rtl && npm run optimize && npm run unfill", "build:generate-chunks-and-atoms": "npm run convert:svg && npm run convert:fonts && npm run convert:merge-metadata", - "build:js": "node build.js", + "build:js": "node scripts/build.js", "prebuild": "npm run clean", "build": "npm run build:fonts-and-svg && npm run build:generate-chunks-and-atoms && npm run build:js", "build-verify": "vitest run build-verify.test.js build-transforms.test.js", diff --git a/packages/react-icons/build.js b/packages/react-icons/scripts/build.js similarity index 98% rename from packages/react-icons/build.js rename to packages/react-icons/scripts/build.js index 05ccbb4442a..9a32e5908e3 100644 --- a/packages/react-icons/build.js +++ b/packages/react-icons/scripts/build.js @@ -9,7 +9,7 @@ const { join, basename } = require('node:path'); const glob = require('glob'); const { transformSync } = require('@babel/core'); -main(); +main({ root: join(__dirname, '..') }); /** * Builds source TypeScript and copys assets to the output directories. @@ -17,9 +17,11 @@ main(); * It transpiles TypeScript files to both ESNext and CommonJS formats, * applies Babel transformations, and copies font assets. * It also creates raw style copies for .styles.js files. + * + * @param {{ root: string; }} options */ -function main() { - const projectRoot = __dirname; +function main(options) { + const projectRoot = options.root; transpileTsc({ moduleFormat: 'esnext', outDir: 'lib' }, projectRoot); transpileTsc({ moduleFormat: 'commonjs', outDir: 'lib-cjs' }, projectRoot); diff --git a/packages/react-icons/chunking-utils.js b/packages/react-icons/scripts/chunking-utils.js similarity index 100% rename from packages/react-icons/chunking-utils.js rename to packages/react-icons/scripts/chunking-utils.js diff --git a/packages/react-icons/chunking-utils.test.js b/packages/react-icons/scripts/chunking-utils.test.js similarity index 100% rename from packages/react-icons/chunking-utils.test.js rename to packages/react-icons/scripts/chunking-utils.test.js diff --git a/packages/react-icons/convert-font.js b/packages/react-icons/scripts/convert-font.js similarity index 100% rename from packages/react-icons/convert-font.js rename to packages/react-icons/scripts/convert-font.js diff --git a/packages/react-icons/convert-font.utils.js b/packages/react-icons/scripts/convert-font.utils.js similarity index 100% rename from packages/react-icons/convert-font.utils.js rename to packages/react-icons/scripts/convert-font.utils.js diff --git a/packages/react-icons/convert-font.utils.test.js b/packages/react-icons/scripts/convert-font.utils.test.js similarity index 100% rename from packages/react-icons/convert-font.utils.test.js rename to packages/react-icons/scripts/convert-font.utils.test.js diff --git a/packages/react-icons/convert.js b/packages/react-icons/scripts/convert.js similarity index 100% rename from packages/react-icons/convert.js rename to packages/react-icons/scripts/convert.js diff --git a/packages/react-icons/convert.utils.js b/packages/react-icons/scripts/convert.utils.js similarity index 100% rename from packages/react-icons/convert.utils.js rename to packages/react-icons/scripts/convert.utils.js diff --git a/packages/react-icons/convert.utils.test.js b/packages/react-icons/scripts/convert.utils.test.js similarity index 100% rename from packages/react-icons/convert.utils.test.js rename to packages/react-icons/scripts/convert.utils.test.js diff --git a/packages/react-icons/deprecated-atoms.js b/packages/react-icons/scripts/deprecated-atoms.js similarity index 100% rename from packages/react-icons/deprecated-atoms.js rename to packages/react-icons/scripts/deprecated-atoms.js diff --git a/packages/react-icons/deprecated-atoms.test.js b/packages/react-icons/scripts/deprecated-atoms.test.js similarity index 100% rename from packages/react-icons/deprecated-atoms.test.js rename to packages/react-icons/scripts/deprecated-atoms.test.js diff --git a/packages/react-icons/merge-metadata.js b/packages/react-icons/scripts/merge-metadata.js similarity index 100% rename from packages/react-icons/merge-metadata.js rename to packages/react-icons/scripts/merge-metadata.js diff --git a/packages/react-icons/metadata.utils.js b/packages/react-icons/scripts/metadata.utils.js similarity index 100% rename from packages/react-icons/metadata.utils.js rename to packages/react-icons/scripts/metadata.utils.js diff --git a/packages/react-icons/metadata.utils.test.js b/packages/react-icons/scripts/metadata.utils.test.js similarity index 100% rename from packages/react-icons/metadata.utils.test.js rename to packages/react-icons/scripts/metadata.utils.test.js diff --git a/packages/react-icons/per-icon.writer.js b/packages/react-icons/scripts/per-icon.writer.js similarity index 100% rename from packages/react-icons/per-icon.writer.js rename to packages/react-icons/scripts/per-icon.writer.js diff --git a/packages/react-icons/per-icon.writer.test.js b/packages/react-icons/scripts/per-icon.writer.test.js similarity index 100% rename from packages/react-icons/per-icon.writer.test.js rename to packages/react-icons/scripts/per-icon.writer.test.js diff --git a/packages/react-icons/sprite.writer.js b/packages/react-icons/scripts/sprite.writer.js similarity index 100% rename from packages/react-icons/sprite.writer.js rename to packages/react-icons/scripts/sprite.writer.js diff --git a/packages/react-icons/unfill.js b/packages/react-icons/scripts/unfill.js similarity index 100% rename from packages/react-icons/unfill.js rename to packages/react-icons/scripts/unfill.js diff --git a/packages/react-icons/tsconfig.utils.json b/packages/react-icons/tsconfig.utils.json index 03559aacb09..5cb54ea44c8 100644 --- a/packages/react-icons/tsconfig.utils.json +++ b/packages/react-icons/tsconfig.utils.json @@ -13,17 +13,5 @@ "strictNullChecks": true, "pretty": true }, - "include": [ - "convert.js", - "convert-font.js", - "convert.utils.js", - "convert-font.utils.js", - "merge-metadata.js", - "metadata.utils.js", - "sprite.writer.js", - "per-icon.writer.js", - "chunking-utils.js", - "build.js", - "deprecated-atoms.js" - ] + "include": ["scripts/"] }