diff --git a/packages/icons/scripts/build.ts b/packages/icons/scripts/build.ts index 25887f3f..dbd4ca78 100644 --- a/packages/icons/scripts/build.ts +++ b/packages/icons/scripts/build.ts @@ -6,7 +6,6 @@ import * as fs from "node:fs/promises"; import * as path from "node:path"; import { promisify } from "node:util"; import { - createModulePackages, ensureDirExists, getFileMeta, toPascalCase, @@ -84,7 +83,9 @@ const extractPathsInfo = (svgData: string) => { const generatePaths = async () => { console.log("🧩 generating paths..."); + await execCmd(["shx", "rm", "-rf", distDir].join(" ")); await ensureDirExists(distDir); + await fs.writeFile(pathsJSONFile, "{", { encoding: "utf-8" }); const svgs = await globAsync(path.join(iconsDir, "**/*.svg")); @@ -134,9 +135,7 @@ const generatePaths = async () => { void (async () => { console.time("build"); - await execCmd(["shx", "rm", "-rf", distDir].join(" ")); await generatePaths(); - await createModulePackages(distDir); console.timeEnd("build"); })(); /* eslint-enable no-console */ diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 54729e31..905f085e 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -17,9 +17,10 @@ } }, "scripts": { + "clear": "shx rm -rf dist", "generate": "tsx ./scripts/generate.ts", - "prebuild": "pnpm generate", - "build": "tsx ./scripts/build.ts", + "prebuild": "run-p clear generate", + "build": "tsc --project ./tsconfig.build.json", "prerelease": "pnpm build", "release": "pnpm publish . --tag latest --access public" }, diff --git a/packages/react-components/scripts/build.ts b/packages/react-components/scripts/build.ts deleted file mode 100644 index 677f63d7..00000000 --- a/packages/react-components/scripts/build.ts +++ /dev/null @@ -1,37 +0,0 @@ -/* eslint-disable no-console */ -import { exec } from "node:child_process"; -import * as path from "node:path"; -import { promisify } from "node:util"; -import { createModulePackages, getFileMeta } from "../../../scripts/utils"; - -const { dirname } = getFileMeta(import.meta.url); - -const packageDir = path.resolve(dirname, ".."); -const distDir = path.join(packageDir, "dist"); - -const tsconfigPath = path.resolve(packageDir, "tsconfig.build.json"); - -const transpile = async () => { - const execCmd = promisify(exec); - - console.log(`👾 transpiling...`); - - await execCmd(["shx", "rm", "-rf", distDir].join(" ")); - - const { stderr, stdout } = await execCmd( - ["tsc", "--project", tsconfigPath].join(" "), - ); - - if (stdout) console.log(stdout); - if (stderr) console.error(stderr); - - console.log(`✅ transpilation completed.`); -}; - -void (async () => { - console.time("build"); - await transpile(); - await createModulePackages(distDir); - console.timeEnd("build"); -})(); -/* eslint-enable no-console */ diff --git a/packages/react-icons/scripts/build.ts b/packages/react-icons/scripts/build.ts index 43857530..012f1089 100644 --- a/packages/react-icons/scripts/build.ts +++ b/packages/react-icons/scripts/build.ts @@ -5,11 +5,7 @@ import { exec } from "node:child_process"; import * as fs from "node:fs/promises"; import * as path from "node:path"; import { promisify } from "node:util"; -import { - createModulePackages, - ensureDirExists, - getFileMeta, -} from "../../../scripts/utils"; +import { ensureDirExists, getFileMeta } from "../../../scripts/utils"; const execCmd = promisify(exec); @@ -26,6 +22,7 @@ const baseIconFile = path.join(packageDir, "src/base-icon.tsx"); const generateComponents = async () => { console.log("🧩 generating react icons..."); + await execCmd(["shx", "rm", "-rf", distDir].join(" ")); await ensureDirExists(distDir); const iconTemplateStr = await fs.readFile(iconTemplate, { @@ -89,9 +86,7 @@ const generateComponents = async () => { void (async () => { console.time("build"); - await execCmd(["shx", "rm", "-rf", distDir].join(" ")); await generateComponents(); - await createModulePackages(distDir); console.timeEnd("build"); })(); /* eslint-enable no-console */ diff --git a/packages/web-components/package.json b/packages/web-components/package.json index 9a6a5ed2..52ac9883 100644 --- a/packages/web-components/package.json +++ b/packages/web-components/package.json @@ -17,8 +17,11 @@ } }, "scripts": { - "build": "tsx ./scripts/build.ts", - "dev": "tsx ./scripts/dev.ts", + "clear": "shx rm -rf dist", + "prebuild": "pnpm run clear", + "build": "tsc --project ./tsconfig.build.json", + "predev": "pnpm run clear", + "dev": "tsc --watch --project ./tsconfig.dev.json", "release": "pnpm publish . --tag latest --access public" }, "dependencies": { diff --git a/packages/web-components/scripts/build.ts b/packages/web-components/scripts/build.ts deleted file mode 100644 index 8f33a609..00000000 --- a/packages/web-components/scripts/build.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* eslint-disable no-console */ -import * as path from "node:path"; -import { createModulePackages, getFileMeta } from "../../../scripts/utils"; -import transpile from "./transpile"; - -const { dirname } = getFileMeta(import.meta.url); - -const packageDir = path.resolve(dirname, ".."); -const distDir = path.join(packageDir, "dist"); - -const tsconfigPath = path.resolve(packageDir, "tsconfig.build.json"); - -void (async () => { - console.time("build"); - await transpile({ - tsconfigPath, - distDir, - watch: false, - }); - - await createModulePackages(distDir); - console.timeEnd("build"); -})(); -/* eslint-enable no-console */ diff --git a/packages/web-components/scripts/dev.ts b/packages/web-components/scripts/dev.ts deleted file mode 100644 index c9ad2daa..00000000 --- a/packages/web-components/scripts/dev.ts +++ /dev/null @@ -1,16 +0,0 @@ -import * as path from "node:path"; -import { getFileMeta } from "../../../scripts/utils"; -import transpile from "./transpile"; - -const { dirname } = getFileMeta(import.meta.url); - -const packageDir = path.resolve(dirname, ".."); -const distDir = path.join(packageDir, "dist"); - -const tsconfigPath = path.resolve(packageDir, "tsconfig.dev.json"); - -void transpile({ - tsconfigPath, - distDir, - watch: true, -}); diff --git a/packages/web-components/scripts/transpile.ts b/packages/web-components/scripts/transpile.ts deleted file mode 100644 index c666b628..00000000 --- a/packages/web-components/scripts/transpile.ts +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable no-console */ -import { exec } from "node:child_process"; -import { promisify } from "node:util"; - -const transpile = async (config: { - tsconfigPath: string; - distDir: string; - watch: boolean; -}) => { - const execCmd = promisify(exec); - const { distDir, tsconfigPath, watch } = config; - - if (watch) console.log(`👀 watching input files...`); - else console.log(`👾 transpiling...`); - - await execCmd(["shx", "rm", "-rf", distDir].join(" ")); - - const { stderr, stdout } = await execCmd( - ["tsc", watch ? "--watch" : "", "--project", tsconfigPath].join(" "), - ); - - if (stdout) console.log(stdout); - if (stderr) console.error(stderr); - - console.log(`✅ transpilation completed.`); -}; - -export default transpile; -/* eslint-enable no-console */ diff --git a/packages/web-icons/scripts/build.ts b/packages/web-icons/scripts/build.ts index fd37839c..f8e4518e 100644 --- a/packages/web-icons/scripts/build.ts +++ b/packages/web-icons/scripts/build.ts @@ -5,11 +5,7 @@ import { exec } from "node:child_process"; import * as fs from "node:fs/promises"; import * as path from "node:path"; import { promisify } from "node:util"; -import { - createModulePackages, - ensureDirExists, - getFileMeta, -} from "../../../scripts/utils"; +import { ensureDirExists, getFileMeta } from "../../../scripts/utils"; const execCmd = promisify(exec); @@ -26,6 +22,7 @@ const baseIconFile = path.join(packageDir, "src/base-icon.ts"); const generateComponents = async () => { console.log("🧩 generating web icons..."); + await execCmd(["shx", "rm", "-rf", distDir].join(" ")); await ensureDirExists(distDir); const iconTemplateStr = await fs.readFile(iconTemplate, { @@ -90,9 +87,7 @@ const generateComponents = async () => { void (async () => { console.time("build"); - await execCmd(["shx", "rm", "-rf", distDir].join(" ")); await generateComponents(); - await createModulePackages(distDir); console.timeEnd("build"); })(); /* eslint-enable no-console */ diff --git a/scripts/utils.ts b/scripts/utils.ts index 5e29bf4d..51608e8b 100644 --- a/scripts/utils.ts +++ b/scripts/utils.ts @@ -1,5 +1,3 @@ -/* eslint-disable no-console */ -import glob from "fast-glob"; import * as fs from "node:fs"; import * as path from "node:path"; import { fileURLToPath } from "node:url"; @@ -31,35 +29,6 @@ export const getFileMeta = (fileURL: string | URL) => { return { filename: __filename, dirname: __dirname }; }; -export const createModulePackages = async (distDir: string) => { - console.log("🔧 creating module packages..."); - - const moduleDirs = glob - .sync(path.join(distDir, "**/index.js")) - .map(p => path.dirname(p)); - - const promises = moduleDirs.map(async moduleDir => { - const typesPath = path.join(moduleDir, "index.d.ts"); - const packageJSONPath = path.join(moduleDir, "package.json"); - - return fs.promises.writeFile( - packageJSONPath, - JSON.stringify( - { - sideEffects: false, - types: fileExists(typesPath) ? "./index.d.ts" : undefined, - main: "./index.js", - }, - null, - 2, - ), - ); - }); - - await Promise.all(promises); - console.log("✅ module packages created."); -}; - export const toPascalCase = (str: string, splitRegex: RegExp | string) => { const baseCase = str.split(splitRegex); @@ -67,4 +36,3 @@ export const toPascalCase = (str: string, splitRegex: RegExp | string) => { .map(part => part.charAt(0).toUpperCase() + part.substring(1)) .join(""); }; -/* eslint-enable no-console */