X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=packages%2Ftypes%2Fgenerate-package.ts;h=125259bb406ce4a2bbe6d29bd7ffd15576dfc24a;hb=22e909224c023c10699fce5c8b9db4be2cd049d7;hp=0c14514e7fb3b76dabf303be21030657231f663c;hpb=6627dbc957477aa32e21ed1bdc8cd72b928cd616;p=github%2FChocobozzz%2FPeerTube.git diff --git a/packages/types/generate-package.ts b/packages/types/generate-package.ts index 0c14514e7..125259bb4 100644 --- a/packages/types/generate-package.ts +++ b/packages/types/generate-package.ts @@ -1,8 +1,16 @@ 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') + process.exit(-1) +} + +const version = process.argv[2] +console.log('Will generate package version %s.', version) run() .then(() => process.exit(0)) @@ -12,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' }) @@ -27,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 @@ -42,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) @@ -52,7 +74,7 @@ async function run () { return dependencies }, {}) - const { description, version, licence, engines, author, repository } = mainPackageJson + const { description, licence, engines, author, repository } = mainPackageJson const typesPackageJson = { name: '@peertube/peertube-types', description,