From b8fa3e8c734a46918118afe7976f248cc883f675 Mon Sep 17 00:00:00 2001 From: lutangar Date: Tue, 9 Nov 2021 13:49:08 +0100 Subject: refactor(types): create dedicated folder for types package src fix guide examples and add types package readme refactor(tsconfig): move back base tsconfig to base directory --- scripts/generate-types-package.ts | 78 --------------------------------------- 1 file changed, 78 deletions(-) delete mode 100644 scripts/generate-types-package.ts (limited to 'scripts') diff --git a/scripts/generate-types-package.ts b/scripts/generate-types-package.ts deleted file mode 100644 index 3543fa472..000000000 --- a/scripts/generate-types-package.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { copyFile, readJson, writeFile, writeJSON } from 'fs-extra' -import { resolve } from 'path' -import { cwd } from 'process' -import { execSync } from 'child_process' -import depcheck, { PackageDependencies } from 'depcheck' - -run() - .then(() => process.exit(0)) - .catch(err => { - console.error(err) - process.exit(-1) - }) - -async function run () { - execSync('npm run build:types', { stdio: 'inherit' }) - const typesPath = resolve(cwd(), './types/') - const typesPackageJsonPath = resolve(typesPath, './package.json') - const typesGitIgnorePath = resolve(typesPath, './.gitignore') - const mainPackageJson = await readJson(resolve(cwd(), './package.json')) - const tsConfigPath = resolve(cwd(), './tsconfig.json') - const tsConfig = await readJson(tsConfigPath) - const clientPackageJson = await readJson(resolve(cwd(), './client/package.json')) - - const allDependencies = Object.assign( - mainPackageJson.dependencies, - mainPackageJson.devDepencies, - clientPackageJson.dependencies - ) as PackageDependencies - - // https://github.com/depcheck/depcheck#api - const depcheckOptions = { - parsers: { '**/*.ts': depcheck.parser.typescript }, - detectors: [ - depcheck.detector.requireCallExpression, - depcheck.detector.importDeclaration - ], - ignoreMatches: Object.keys(tsConfig?.compilerOptions?.paths || []), - package: { dependencies: allDependencies } - } - - const { dependencies: unusedDependencies } = await depcheck(resolve(cwd(), './types/'), depcheckOptions) - console.log(`Removing ${Object.keys(unusedDependencies).length} unused dependencies.`) - const dependencies = Object - .keys(allDependencies) - .filter(dependencyName => !unusedDependencies.includes(dependencyName)) - .reduce((dependencies, dependencyName) => { - dependencies[dependencyName] = allDependencies[dependencyName] - return dependencies - }, {}) - - const { description, version, licence, engines, author, repository } = mainPackageJson - const typesPackageJson = { - name: '@peertube/peertube-types', - description, - version, - private: false, - license: licence, - engines, - author, - repository, - dependencies - } - console.log(`Writing package.json to ${typesPackageJsonPath}`) - await writeJSON(typesPackageJsonPath, typesPackageJson, { spaces: 2 }) - - console.log(`Writing git ignore to ${typesGitIgnorePath}`) - await writeFile(typesGitIgnorePath, '*.tsbuildinfo') - - console.log('Copying tsconfig files') - await copyFile(tsConfigPath, resolve(typesPath, './tsconfig.json')) - await copyFile(resolve(cwd(), './tsconfig.base.json'), resolve(typesPath, './tsconfig.base.json')) - tsConfig.references.map(({ path }) => path).forEach((path) => { - const src = resolve(cwd(), path, '/tsconfig.json') - const dest = resolve(typesPath, path, './tsconfig.json') - console.log(`${src} -> ${dest}`) - copyFile(src, dest).catch((e) => console.error(e)) - }) -} -- cgit v1.2.3