Initial Save
This commit is contained in:
50
node_modules/es-abstract/tmp.mjs
generated
vendored
Normal file
50
node_modules/es-abstract/tmp.mjs
generated
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
import { dirname, join } from 'path';
|
||||
import { readFileSync } from 'fs';
|
||||
import hasTypes from 'hastypes';
|
||||
import semver from 'semver';
|
||||
import { execSync } from 'child_process';
|
||||
import { createRequire } from 'module';
|
||||
import { pathToFileURL } from 'url';
|
||||
|
||||
const packageJSONpath = join(process.cwd(), 'package.json');
|
||||
|
||||
const require = createRequire(pathToFileURL(packageJSONpath));
|
||||
|
||||
const { dependencies, devDependencies } = JSON.parse(readFileSync(packageJSONpath));
|
||||
|
||||
const typesPackagesPresent = Object.entries(devDependencies).filter(([name]) => name.startsWith('@types/'));
|
||||
|
||||
console.log(`Found ${typesPackagesPresent.length} \`@types/\` packages...`);
|
||||
|
||||
const typesPackagesToRemove = Promise.all(typesPackagesPresent.filter(([x]) => x !== '@types/node').map(async ([name, version]) => {
|
||||
const actualName = name.replace('@types/', '');
|
||||
let actualVersion;
|
||||
try {
|
||||
actualVersion = JSON.parse(readFileSync(join(process.cwd(), 'node_modules', actualName, 'package.json'))).version;
|
||||
} catch (e) {
|
||||
console.error(e, join(actualName, '/package.json'));
|
||||
return [name, , true];
|
||||
}
|
||||
const expectedVersion = `${semver.major(actualVersion)}.${semver.minor(actualVersion)}`;
|
||||
const specifier = `${actualName}@${expectedVersion}`;
|
||||
|
||||
return [name, expectedVersion, await hasTypes(specifier)];
|
||||
})).then((x) => x.filter(([, , hasTypes]) => hasTypes === true));// .then((x) => x.map(([name, expectedVersion]) => [name, expectedVersion]));
|
||||
|
||||
typesPackagesToRemove.then((x) => {
|
||||
console.log(`Found ${x.length} \`@types/\` packages to remove...`);
|
||||
console.log(x);
|
||||
if (x.length > 0) {
|
||||
execSync(`npm uninstall --save ${x.map(([name, version]) => `"${name}@${version}"`).join(' ')}`, { cwd: process.cwd() });
|
||||
}
|
||||
});
|
||||
|
||||
// const typesPackagesToAdd = Promise.all(
|
||||
// Object.entries(dependencies)
|
||||
// .filter(([name]) => !typesPackagesPresent.includes(`@types/${name}`))
|
||||
// .map(async ([name, version]) => {
|
||||
// const actualVersion = require(`${name}/package.json`).version;
|
||||
// const expectedVersion = `${semver.major(actualVersion)}.${semver.minor(actualVersion)}`;
|
||||
// console.log(specifier);
|
||||
// })
|
||||
// )
|
||||
Reference in New Issue
Block a user