diff --git a/package.json b/package.json index e79c18e6..c2188e69 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "test": "npm run test --ws --if-present", "check": "npm run lint && npm run test-only", "ci:publish": "changeset publish", - "ci:version": "changeset version" + "ci:version": "changeset version", + "clean": "node scripts/clean.js" }, "workspaces": [ "workspaces/estree-ast-utils", diff --git a/scripts/clean.js b/scripts/clean.js new file mode 100644 index 00000000..22b2a758 --- /dev/null +++ b/scripts/clean.js @@ -0,0 +1,36 @@ +/* eslint-disable no-undef */ +// Import Node.js Dependencies +const { glob, rm } = require("node:fs/promises"); + +async function clean() { + try { + const dirs = []; + for await (const dir of glob('workspaces/**/dist', { + onlyDirectories: true, + })) { + dirs.push(dir); + } + for(const dir of dirs){ + await rm(dir, { recursive: true, force: true }); + console.log(`Removed directory ${dir}`); + } + } catch (err) { + console.warn('Error removing dist directories:', err.message); + } + + try { + const files = []; + for await (const file of glob('workspaces/**/tsconfig.tsbuildinfo')) { + files.push(file); + } + for (const file of files) { + await rm(file, { force: true }); + console.log(`Removed file ${file}`); + } + } catch (err) { + console.warn('Error removing tsconfig.tsbuildinfo files:', err.message); + } + console.log('Clean completed'); +} + +clean(); \ No newline at end of file