From 077242cfa099ad94fb937c682b6eb84e998139fa Mon Sep 17 00:00:00 2001 From: Eric Fennis Date: Fri, 28 Jun 2024 11:24:37 +0200 Subject: [PATCH] refactor(scripts): Cleaning up scripts (#2092) * cleanup scripts * Move helpers to package * Fixes scripts * Fix scripts * Formatting * Fix helpers import paths * Remove lucide-figma * Rename helpers package * Fix build * formatting * Adjust main build-icons file * Add export casing * Adds `exportModuleNameCasing` fro lab project * format files * Bump package version @lucide/build-icons * Revert changes in icons * Revert changes in PR yml * Fix lint issues * Fix site build * fix lint errors * Attempt fix linting * Fix lint errors --- .eslintrc.js | 6 +- docs/.vitepress/data/packageData.json | 11 - docs/.vitepress/lib/fetchPackages.ts | 6 - .../components/packages/PackageList.data.ts | 3 +- .../theme/components/packages/PackageList.vue | 3 +- .../components/packages/PackageListItem.vue | 2 +- docs/package.json | 16 +- .../scripts}/writeIconDetails.mjs | 3 +- .../scripts}/writeIconMetaIndex.mjs | 2 +- {scripts => docs/scripts}/writeIconNodes.mjs | 4 +- .../scripts}/writeIconRelatedIcons.mjs | 10 +- .../scripts}/writeReleaseMetadata.mjs | 2 +- .../scripts}/writeVercelOutput.mjs | 5 +- package.json | 15 +- packages/lucide-figma/README.md | 25 - packages/lucide-figma/cover.png | Bin 130175 -> 0 bytes packages/lucide-figma/icon.png | Bin 3697 -> 0 bytes packages/lucide-figma/manifest.json | 26 - packages/lucide-figma/package.json | 30 - packages/lucide-figma/src/api/fetchIcons.ts | 95 - .../src/components/EditBar/EditBar.tsx | 3 - .../src/components/EditBar/index.ts | 0 .../src/components/IconButton/IconButton.scss | 18 - .../src/components/IconButton/IconButton.tsx | 37 - .../src/components/IconButton/index.ts | 1 - .../src/components/Menu/Menu.scss | 30 - .../lucide-figma/src/components/Menu/Menu.tsx | 26 - .../lucide-figma/src/components/Menu/index.ts | 1 - .../src/components/Navigation/index.ts | 0 .../components/SearchInput/SearchInput.scss | 19 - .../components/SearchInput/SearchInput.tsx | 31 - .../src/components/SearchInput/index.ts | 1 - .../src/components/Skeleton/Skeleton.scss | 21 - .../src/components/Skeleton/Skeleton.tsx | 13 - .../src/components/icons/SearchIcon.tsx | 21 - .../src/helpers/createIconComponent.ts | 50 - .../lucide-figma/src/helpers/filterIcons.ts | 9 - .../lucide-figma/src/helpers/iconNodeToSvg.ts | 11 - packages/lucide-figma/src/helpers/naming.ts | 20 - packages/lucide-figma/src/hooks/useSearch.tsx | 14 - .../lucide-figma/src/icons/search-large.svg | 1 - packages/lucide-figma/src/icons/search.svg | 1 - .../lucide-figma/src/interface/interface.html | 6 - .../lucide-figma/src/interface/interface.scss | 103 - .../lucide-figma/src/interface/interface.tsx | 57 - packages/lucide-figma/src/main.ts | 149 - packages/lucide-figma/src/theme.ts | 8 - packages/lucide-figma/src/views/Icons.tsx | 52 - packages/lucide-figma/src/views/Info.tsx | 70 - packages/lucide-figma/src/views/index.ts | 2 - packages/lucide-figma/src/worker/worker.html | 4 - packages/lucide-figma/src/worker/worker.ts | 85 - packages/lucide-figma/tsconfig.json | 21 - packages/lucide-figma/vite.config.ts | 40 - packages/lucide-static/scripts/buildLib.mjs | 5 +- .../scripts/generateIconNodes.mjs | 2 +- .../lucide-static/scripts/generateSprite.mjs | 2 +- packages/lucide-static/scripts/readSvgs.mjs | 2 +- .../scripts/appendBlockComments.mjs | 9 +- pnpm-lock.yaml | 278 +- scripts/addMissingIconJsonFiles.mjs | 2 +- scripts/buildIcons.mjs | 65 - scripts/checkIconsAndCategories.mjs | 2 +- scripts/generate/generateIcons.mjs | 2 +- scripts/generateChangedIconsCommentMarkup.mjs | 8 +- scripts/generateNextJSAliases.mjs | 2 +- scripts/generateSuperSVG.mjs | 60 - scripts/githubApi.mjs | 2 - scripts/helpers.mjs | 226 - scripts/migrateCategoriesToIcons.mjs | 2 +- scripts/migrateIconsToCategories.mjs | 2 +- scripts/migrateIconsToTags.mjs | 2 +- scripts/migrateTagsToIcons.mjs | 2 +- scripts/optimizeSvgs.mjs | 2 +- scripts/rename/renameIcon.mjs | 2 +- scripts/rename/renamePattern.mjs | 6 +- scripts/render/default-attrs.json | 11 - scripts/render/processSvg.mjs | 2 +- scripts/render/renderIconsObject.mjs | 39 - scripts/super-sprite.svg | 29892 ---------------- scripts/templates/defaultIconFileTemplate.mjs | 11 - tools/build-helpers/main.mjs | 20 + tools/build-helpers/package.json | 11 + tools/build-helpers/src/appendFile.mjs | 13 + tools/build-helpers/src/generateHashedKey.mjs | 12 + tools/build-helpers/src/getCurrentDirPath.mjs | 11 + .../src/hasDuplicatedChildren.mjs | 16 + tools/build-helpers/src/hash.mjs | 19 + tools/build-helpers/src/mergeArrays.mjs | 13 + tools/build-helpers/src/minifySvg.mjs | 15 + tools/build-helpers/src/readAllMetadata.mjs | 19 + tools/build-helpers/src/readFile.mjs | 11 + tools/build-helpers/src/readMetadata.mjs | 13 + tools/build-helpers/src/readSvg.mjs | 12 + tools/build-helpers/src/readSvgDirectory.mjs | 13 + tools/build-helpers/src/resetFile.mjs | 12 + tools/build-helpers/src/shuffleArray.mjs | 13 + tools/build-helpers/src/toCamelCase.mjs | 11 + tools/build-helpers/src/toKebabCase.mjs | 8 + tools/build-helpers/src/toPascalCase.mjs | 14 + tools/build-helpers/src/writeFile.mjs | 13 + .../src/writeFileIfNotExists.mjs | 17 + tools/build-helpers/src/writeSvgFile.mjs | 13 + .../building/generateAliasesFile.mjs | 3 +- .../building/generateDynamicImports.mjs | 2 +- .../building/generateExportsFile.mjs | 19 +- .../building/generateIconFiles.mjs | 2 +- tools/build-icons/cli.mjs | 10 +- tools/build-icons/index.mjs | 3 +- tools/build-icons/package.json | 6 +- .../build-icons/render/renderIconsObject.mjs | 2 +- tools/build-icons/utils/getAliases.mjs | 16 + tools/build-icons/utils/getIconMetaData.mjs | 3 +- 113 files changed, 455 insertions(+), 31739 deletions(-) rename {scripts => docs/scripts}/writeIconDetails.mjs (92%) rename {scripts => docs/scripts}/writeIconMetaIndex.mjs (94%) rename {scripts => docs/scripts}/writeIconNodes.mjs (93%) rename {scripts => docs/scripts}/writeIconRelatedIcons.mjs (88%) rename {scripts => docs/scripts}/writeReleaseMetadata.mjs (99%) rename {scripts => docs/scripts}/writeVercelOutput.mjs (83%) delete mode 100644 packages/lucide-figma/README.md delete mode 100644 packages/lucide-figma/cover.png delete mode 100644 packages/lucide-figma/icon.png delete mode 100644 packages/lucide-figma/manifest.json delete mode 100644 packages/lucide-figma/package.json delete mode 100644 packages/lucide-figma/src/api/fetchIcons.ts delete mode 100644 packages/lucide-figma/src/components/EditBar/EditBar.tsx delete mode 100644 packages/lucide-figma/src/components/EditBar/index.ts delete mode 100644 packages/lucide-figma/src/components/IconButton/IconButton.scss delete mode 100644 packages/lucide-figma/src/components/IconButton/IconButton.tsx delete mode 100644 packages/lucide-figma/src/components/IconButton/index.ts delete mode 100644 packages/lucide-figma/src/components/Menu/Menu.scss delete mode 100644 packages/lucide-figma/src/components/Menu/Menu.tsx delete mode 100644 packages/lucide-figma/src/components/Menu/index.ts delete mode 100644 packages/lucide-figma/src/components/Navigation/index.ts delete mode 100644 packages/lucide-figma/src/components/SearchInput/SearchInput.scss delete mode 100644 packages/lucide-figma/src/components/SearchInput/SearchInput.tsx delete mode 100644 packages/lucide-figma/src/components/SearchInput/index.ts delete mode 100644 packages/lucide-figma/src/components/Skeleton/Skeleton.scss delete mode 100644 packages/lucide-figma/src/components/Skeleton/Skeleton.tsx delete mode 100644 packages/lucide-figma/src/components/icons/SearchIcon.tsx delete mode 100644 packages/lucide-figma/src/helpers/createIconComponent.ts delete mode 100644 packages/lucide-figma/src/helpers/filterIcons.ts delete mode 100644 packages/lucide-figma/src/helpers/iconNodeToSvg.ts delete mode 100644 packages/lucide-figma/src/helpers/naming.ts delete mode 100644 packages/lucide-figma/src/hooks/useSearch.tsx delete mode 100644 packages/lucide-figma/src/icons/search-large.svg delete mode 100644 packages/lucide-figma/src/icons/search.svg delete mode 100644 packages/lucide-figma/src/interface/interface.html delete mode 100644 packages/lucide-figma/src/interface/interface.scss delete mode 100644 packages/lucide-figma/src/interface/interface.tsx delete mode 100644 packages/lucide-figma/src/main.ts delete mode 100644 packages/lucide-figma/src/theme.ts delete mode 100644 packages/lucide-figma/src/views/Icons.tsx delete mode 100644 packages/lucide-figma/src/views/Info.tsx delete mode 100644 packages/lucide-figma/src/views/index.ts delete mode 100644 packages/lucide-figma/src/worker/worker.html delete mode 100644 packages/lucide-figma/src/worker/worker.ts delete mode 100644 packages/lucide-figma/tsconfig.json delete mode 100644 packages/lucide-figma/vite.config.ts delete mode 100644 scripts/buildIcons.mjs delete mode 100644 scripts/generateSuperSVG.mjs delete mode 100644 scripts/helpers.mjs delete mode 100644 scripts/render/default-attrs.json delete mode 100644 scripts/render/renderIconsObject.mjs delete mode 100644 scripts/super-sprite.svg delete mode 100644 scripts/templates/defaultIconFileTemplate.mjs create mode 100644 tools/build-helpers/main.mjs create mode 100644 tools/build-helpers/package.json create mode 100644 tools/build-helpers/src/appendFile.mjs create mode 100644 tools/build-helpers/src/generateHashedKey.mjs create mode 100644 tools/build-helpers/src/getCurrentDirPath.mjs create mode 100644 tools/build-helpers/src/hasDuplicatedChildren.mjs create mode 100644 tools/build-helpers/src/hash.mjs create mode 100644 tools/build-helpers/src/mergeArrays.mjs create mode 100644 tools/build-helpers/src/minifySvg.mjs create mode 100644 tools/build-helpers/src/readAllMetadata.mjs create mode 100644 tools/build-helpers/src/readFile.mjs create mode 100644 tools/build-helpers/src/readMetadata.mjs create mode 100644 tools/build-helpers/src/readSvg.mjs create mode 100644 tools/build-helpers/src/readSvgDirectory.mjs create mode 100644 tools/build-helpers/src/resetFile.mjs create mode 100644 tools/build-helpers/src/shuffleArray.mjs create mode 100644 tools/build-helpers/src/toCamelCase.mjs create mode 100644 tools/build-helpers/src/toKebabCase.mjs create mode 100644 tools/build-helpers/src/toPascalCase.mjs create mode 100644 tools/build-helpers/src/writeFile.mjs create mode 100644 tools/build-helpers/src/writeFileIfNotExists.mjs create mode 100644 tools/build-helpers/src/writeSvgFile.mjs create mode 100644 tools/build-icons/utils/getAliases.mjs diff --git a/.eslintrc.js b/.eslintrc.js index 6378b679d..7619a428e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,4 +1,4 @@ -const DEFAULT_ATTRS = require('./scripts/render/default-attrs.json'); +const DEFAULT_ATTRS = require('@lucide/build-icons/render/default-attrs.json'); module.exports = { root: true, @@ -15,7 +15,9 @@ module.exports = { 'no-use-before-define': 'off', 'import/no-extraneous-dependencies': [ 'error', - { devDependencies: ['**/*.test.js', '**/*.spec.js', './scripts/**'] }, + { + devDependencies: ['**/*.test.js', '**/*.spec.js', '**/scripts/**'], + }, ], 'import/extensions': [ 'error', diff --git a/docs/.vitepress/data/packageData.json b/docs/.vitepress/data/packageData.json index 2e9bc22e9..613ed60e7 100644 --- a/docs/.vitepress/data/packageData.json +++ b/docs/.vitepress/data/packageData.json @@ -158,16 +158,5 @@ "href": "https://www.npmjs.com/package/lucide-static" } ] - }, - "lucide-flutter": { - "order": 9, - "icon": "flutter", - "shields": [ - { - "alt": "flutter", - "src": "https://img.shields.io/pub/v/lucide_icons", - "href": "https://img.shields.io/pub/v/lucide_icons" - } - ] } } diff --git a/docs/.vitepress/lib/fetchPackages.ts b/docs/.vitepress/lib/fetchPackages.ts index 9f6796547..aede27839 100644 --- a/docs/.vitepress/lib/fetchPackages.ts +++ b/docs/.vitepress/lib/fetchPackages.ts @@ -1,6 +1,5 @@ import { promises as fs, constants } from 'fs'; import path from 'path'; -import yaml from 'js-yaml'; import { PackageItem } from '../theme/types'; const fileExist = (filePath) => @@ -27,11 +26,6 @@ const fetchPackages = async (): Promise => { return JSON.parse(await fs.readFile(jsonFilePath, 'utf-8')); } - const ymlFilePath = path.resolve(filePath, 'pubspec.yaml'); - if (await fileExist(ymlFilePath)) { - return yaml.load(await fs.readFile(ymlFilePath, 'utf-8')); - } - return null; }), ); diff --git a/docs/.vitepress/theme/components/packages/PackageList.data.ts b/docs/.vitepress/theme/components/packages/PackageList.data.ts index 8d38ba3d5..0649ded64 100644 --- a/docs/.vitepress/theme/components/packages/PackageList.data.ts +++ b/docs/.vitepress/theme/components/packages/PackageList.data.ts @@ -5,9 +5,10 @@ import fetchPackages from '../../../lib/fetchPackages'; export default { async load() { const packages = await fetchPackages(); + return { packages: packages - .filter((p) => p.name in packageData) + .filter((p) => p?.name != null && p.name in packageData) .map((pData) => ({ ...pData, ...packageData[pData.name], diff --git a/docs/.vitepress/theme/components/packages/PackageList.vue b/docs/.vitepress/theme/components/packages/PackageList.vue index 8cbdc67f2..ba321ff4d 100644 --- a/docs/.vitepress/theme/components/packages/PackageList.vue +++ b/docs/.vitepress/theme/components/packages/PackageList.vue @@ -1,7 +1,8 @@ +import PackageListItem from "./PackageListItem.vue"; +