|
@@ -1,8 +1,8 @@
|
|
|
import { execSync } from 'child_process'
|
|
|
import depcheck, { PackageDependencies } from 'depcheck'
|
|
|
import { copyFile, readJson, remove, writeFile, writeJSON } from 'fs-extra'
|
|
|
-import { resolve } from 'path'
|
|
|
-import { cwd } from 'process'
|
|
|
+import { join, resolve } from 'path'
|
|
|
+import { root } from '../../shared/core-utils'
|
|
|
|
|
|
if (!process.argv[2]) {
|
|
|
console.error('Need version as argument')
|
|
@@ -20,14 +20,14 @@ run()
|
|
|
})
|
|
|
|
|
|
async function run () {
|
|
|
- const typesPath = resolve(cwd(), './packages/types/')
|
|
|
- const typesDistPath = resolve(cwd(), typesPath, './dist/')
|
|
|
- const typesDistPackageJsonPath = resolve(typesDistPath, './package.json')
|
|
|
- const typesDistGitIgnorePath = resolve(typesDistPath, './.gitignore')
|
|
|
- const mainPackageJson = await readJson(resolve(cwd(), './package.json'))
|
|
|
- const distTsConfigPath = resolve(cwd(), typesPath, './tsconfig.dist.json')
|
|
|
+ const typesPath = __dirname
|
|
|
+ const typesDistPath = join(typesPath, 'dist')
|
|
|
+ const typesDistPackageJsonPath = join(typesDistPath, 'package.json')
|
|
|
+ const typesDistGitIgnorePath = join(typesDistPath, '.gitignore')
|
|
|
+ const mainPackageJson = await readJson(join(root(), 'package.json'))
|
|
|
+ const distTsConfigPath = join(typesPath, 'tsconfig.dist.json')
|
|
|
const distTsConfig = await readJson(distTsConfigPath)
|
|
|
- const clientPackageJson = await readJson(resolve(cwd(), './client/package.json'))
|
|
|
+ const clientPackageJson = await readJson(join(root(), 'client', 'package.json'))
|
|
|
|
|
|
await remove(typesDistPath)
|
|
|
execSync('npm run tsc -- -b --verbose packages/types', { stdio: 'inherit' })
|
|
@@ -35,8 +35,9 @@ async function run () {
|
|
|
|
|
|
const allDependencies = Object.assign(
|
|
|
mainPackageJson.dependencies,
|
|
|
- mainPackageJson.devDepencies,
|
|
|
- clientPackageJson.dependencies
|
|
|
+ mainPackageJson.devDependencies,
|
|
|
+ clientPackageJson.dependencies,
|
|
|
+ clientPackageJson.devDependencies
|
|
|
) as PackageDependencies
|
|
|
|
|
|
// https://github.com/depcheck/depcheck#api
|
|
@@ -50,7 +51,20 @@ async function run () {
|
|
|
package: { dependencies: allDependencies }
|
|
|
}
|
|
|
|
|
|
- const { dependencies: unusedDependencies } = await depcheck(resolve(typesPath), depcheckOptions)
|
|
|
+ const result = await depcheck(typesDistPath, depcheckOptions)
|
|
|
+
|
|
|
+ if (Object.keys(result.invalidDirs).length !== 0) {
|
|
|
+ console.error('Invalid directories detected.', { invalidDirs: result.invalidDirs })
|
|
|
+ process.exit(-1)
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Object.keys(result.invalidFiles).length !== 0) {
|
|
|
+ console.error('Invalid files detected.', { invalidFiles: result.invalidFiles })
|
|
|
+ process.exit(-1)
|
|
|
+ }
|
|
|
+
|
|
|
+ const unusedDependencies = result.dependencies
|
|
|
+
|
|
|
console.log(`Removing ${Object.keys(unusedDependencies).length} unused dependencies.`)
|
|
|
const dependencies = Object
|
|
|
.keys(allDependencies)
|