mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
chore: run check-deps for all packages (#21395)
This commit is contained in:
parent
fbaf56a13f
commit
d904a6129f
26
package-lock.json
generated
26
package-lock.json
generated
@ -35,9 +35,7 @@
|
||||
"@vitejs/plugin-basic-ssl": "^1.0.1",
|
||||
"@vitejs/plugin-react": "^3.0.0",
|
||||
"@zip.js/zip.js": "^2.4.2",
|
||||
"ansi-to-html": "^0.7.2",
|
||||
"chokidar": "^3.5.3",
|
||||
"codemirror": "^5.65.9",
|
||||
"colors": "^1.4.0",
|
||||
"commonmark": "^0.30.0",
|
||||
"concurrently": "^6.2.1",
|
||||
@ -2306,8 +2304,7 @@
|
||||
"node_modules/codemirror": {
|
||||
"version": "5.65.9",
|
||||
"resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.9.tgz",
|
||||
"integrity": "sha512-19Jox5sAKpusTDgqgKB5dawPpQcY+ipQK7xoEI+MVucEF9qqFaXpeqY1KaoyGBso/wHQoDa4HMMxMjdsS3Zzzw==",
|
||||
"dev": true
|
||||
"integrity": "sha512-19Jox5sAKpusTDgqgKB5dawPpQcY+ipQK7xoEI+MVucEF9qqFaXpeqY1KaoyGBso/wHQoDa4HMMxMjdsS3Zzzw=="
|
||||
},
|
||||
"node_modules/color-convert": {
|
||||
"version": "1.9.3",
|
||||
@ -5743,6 +5740,10 @@
|
||||
"source-map": "^0.6.1"
|
||||
}
|
||||
},
|
||||
"node_modules/web": {
|
||||
"resolved": "packages/web",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/which": {
|
||||
"version": "2.0.2",
|
||||
"dev": true,
|
||||
@ -6193,6 +6194,12 @@
|
||||
"dependencies": {
|
||||
"ansi-to-html": "^0.7.2"
|
||||
}
|
||||
},
|
||||
"packages/web": {
|
||||
"version": "0.0.0",
|
||||
"dependencies": {
|
||||
"codemirror": "^5.65.9"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
@ -7694,8 +7701,7 @@
|
||||
"codemirror": {
|
||||
"version": "5.65.9",
|
||||
"resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.9.tgz",
|
||||
"integrity": "sha512-19Jox5sAKpusTDgqgKB5dawPpQcY+ipQK7xoEI+MVucEF9qqFaXpeqY1KaoyGBso/wHQoDa4HMMxMjdsS3Zzzw==",
|
||||
"dev": true
|
||||
"integrity": "sha512-19Jox5sAKpusTDgqgKB5dawPpQcY+ipQK7xoEI+MVucEF9qqFaXpeqY1KaoyGBso/wHQoDa4HMMxMjdsS3Zzzw=="
|
||||
},
|
||||
"color-convert": {
|
||||
"version": "1.9.3",
|
||||
@ -8675,7 +8681,7 @@
|
||||
"html-reporter": {
|
||||
"version": "file:packages/html-reporter",
|
||||
"requires": {
|
||||
"ansi-to-html": "*"
|
||||
"ansi-to-html": "^0.7.2"
|
||||
}
|
||||
},
|
||||
"http-cache-semantics": {
|
||||
@ -9862,6 +9868,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"web": {
|
||||
"version": "file:packages/web",
|
||||
"requires": {
|
||||
"codemirror": "^5.65.9"
|
||||
}
|
||||
},
|
||||
"which": {
|
||||
"version": "2.0.2",
|
||||
"dev": true,
|
||||
|
@ -70,9 +70,7 @@
|
||||
"@vitejs/plugin-basic-ssl": "^1.0.1",
|
||||
"@vitejs/plugin-react": "^3.0.0",
|
||||
"@zip.js/zip.js": "^2.4.2",
|
||||
"ansi-to-html": "^0.7.2",
|
||||
"chokidar": "^3.5.3",
|
||||
"codemirror": "^5.65.9",
|
||||
"colors": "^1.4.0",
|
||||
"commonmark": "^0.30.0",
|
||||
"concurrently": "^6.2.1",
|
||||
|
3
packages/html-reporter/src/DEPS.list
Normal file
3
packages/html-reporter/src/DEPS.list
Normal file
@ -0,0 +1,3 @@
|
||||
[*]
|
||||
@playwright/experimental-ct-react
|
||||
@web/**
|
1
packages/protocol/src/DEPS.list
Normal file
1
packages/protocol/src/DEPS.list
Normal file
@ -0,0 +1 @@
|
||||
[*]
|
1
packages/trace/src/DEPS.list
Normal file
1
packages/trace/src/DEPS.list
Normal file
@ -0,0 +1 @@
|
||||
[*]
|
10
packages/web/package.json
Normal file
10
packages/web/package.json
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"name": "web",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"scripts": {
|
||||
},
|
||||
"dependencies": {
|
||||
"codemirror": "^5.65.9"
|
||||
}
|
||||
}
|
3
packages/web/src/DEPS.list
Normal file
3
packages/web/src/DEPS.list
Normal file
@ -0,0 +1,3 @@
|
||||
[*]
|
||||
@playwright/experimental-ct-react
|
||||
third_party/**
|
@ -35,11 +35,15 @@ const peerDependencies = ['electron', 'react', 'react-dom', '@zip.js/zip.js'];
|
||||
const depsCache = {};
|
||||
|
||||
async function checkDeps() {
|
||||
await innerCheckDeps(path.join(packagesDir, 'recorder'), true, true);
|
||||
await innerCheckDeps(path.join(packagesDir, 'trace-viewer'), true, true);
|
||||
await innerCheckDeps(path.join(packagesDir, 'protocol'));
|
||||
await innerCheckDeps(path.join(packagesDir, 'trace'));
|
||||
await innerCheckDeps(path.join(packagesDir, 'web'));
|
||||
await innerCheckDeps(path.join(packagesDir, 'html-reporter'));
|
||||
await innerCheckDeps(path.join(packagesDir, 'recorder'));
|
||||
await innerCheckDeps(path.join(packagesDir, 'trace-viewer'));
|
||||
|
||||
const corePackageJson = await innerCheckDeps(path.join(packagesDir, 'playwright-core'), true, true);
|
||||
const testPackageJson = await innerCheckDeps(path.join(packagesDir, 'playwright-test'), true, true);
|
||||
const corePackageJson = await innerCheckDeps(path.join(packagesDir, 'playwright-core'));
|
||||
const testPackageJson = await innerCheckDeps(path.join(packagesDir, 'playwright-test'));
|
||||
|
||||
let hasVersionMismatch = false;
|
||||
for (const [key, value] of Object.entries(corePackageJson.dependencies || {})) {
|
||||
@ -52,12 +56,17 @@ async function checkDeps() {
|
||||
process.exit(hasVersionMismatch ? 1 : 0);
|
||||
}
|
||||
|
||||
async function innerCheckDeps(root, checkDepsFile, checkPackageJson) {
|
||||
console.log('Testing', path.relative(packagesDir, root));
|
||||
async function innerCheckDeps(root) {
|
||||
console.log('Checking DEPS for ' + path.relative(packagesDir, root));
|
||||
const deps = new Set();
|
||||
const src = path.join(root, 'src');
|
||||
|
||||
const packageJSON = require(path.join(root, 'package.json'));
|
||||
let packageJSON;
|
||||
try {
|
||||
packageJSON = require(path.join(root, 'package.json'));
|
||||
} catch {
|
||||
}
|
||||
|
||||
const program = ts.createProgram({
|
||||
options: {
|
||||
allowJs: true,
|
||||
@ -70,7 +79,7 @@ async function innerCheckDeps(root, checkDepsFile, checkPackageJson) {
|
||||
const errors = [];
|
||||
sourceFiles.filter(x => !x.fileName.includes('node_modules')).map(x => visit(x, x.fileName));
|
||||
|
||||
if (checkDepsFile && errors.length) {
|
||||
if (errors.length) {
|
||||
for (const error of errors)
|
||||
console.log(error);
|
||||
console.log(`--------------------------------------------------------`);
|
||||
@ -80,7 +89,7 @@ async function innerCheckDeps(root, checkDepsFile, checkPackageJson) {
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (checkPackageJson) {
|
||||
if (packageJSON) {
|
||||
for (const dep of peerDependencies)
|
||||
deps.delete(dep);
|
||||
for (const dep of deps) {
|
||||
@ -90,13 +99,13 @@ async function innerCheckDeps(root, checkDepsFile, checkPackageJson) {
|
||||
}
|
||||
for (const dep of Object.keys(packageJSON.dependencies || {}))
|
||||
deps.delete(dep);
|
||||
|
||||
|
||||
if (deps.size) {
|
||||
console.log('Dependencies are not declared in package.json:');
|
||||
for (const dep of deps)
|
||||
console.log(` ${dep}`);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return packageJSON;
|
||||
@ -126,7 +135,7 @@ async function innerCheckDeps(root, checkDepsFile, checkPackageJson) {
|
||||
importPath = importPath + '.d.ts';
|
||||
}
|
||||
|
||||
if (checkDepsFile && !allowImport(fileName, importPath))
|
||||
if (!allowImport(fileName, importPath))
|
||||
errors.push(`Disallowed import ${path.relative(root, importPath)} in ${path.relative(root, fileName)}`);
|
||||
return;
|
||||
}
|
||||
@ -136,7 +145,7 @@ async function innerCheckDeps(root, checkDepsFile, checkPackageJson) {
|
||||
else
|
||||
deps.add(importName.split('/')[0]);
|
||||
|
||||
if (checkDepsFile && !allowExternalImport(importName, packageJSON))
|
||||
if (!allowExternalImport(importName, packageJSON))
|
||||
errors.push(`Disallowed external dependency ${importName} from ${path.relative(root, fileName)}`);
|
||||
}
|
||||
ts.forEachChild(node, x => visit(x, fileName));
|
||||
@ -201,7 +210,8 @@ async function innerCheckDeps(root, checkDepsFile, checkPackageJson) {
|
||||
if (error.code !== 'MODULE_NOT_FOUND')
|
||||
throw error;
|
||||
}
|
||||
|
||||
if (!packageJSON)
|
||||
return false;
|
||||
const match = importName.match(/(@[\w-]+\/)?([^/]+)/);
|
||||
const dependency = match[1] ? match[1] + '/' + match[2] : match[2];
|
||||
return !!(packageJSON.dependencies || {})[dependency];
|
||||
|
Loading…
x
Reference in New Issue
Block a user