MCPcopy Create free account
hub / github.com/electron-userland/electron-builder / check

Function check

scripts/checkDeps.js:22–105  ·  view source on GitHub ↗
(projectDir, devPackageData)

Source from the content-addressed store, hash-verified

20const packageDir = path.join(rootDir, "packages")
21
22async function check(projectDir, devPackageData) {
23 const packageName = path.basename(projectDir)
24 // console.log(`Checking ${projectDir}`)
25
26 /**
27 * @type {Results}
28 */
29 const result = await new Promise(resolve => {
30 depCheck(projectDir, { ignoreDirs: ["out", "test", "pages", "typings", "docker", "certs", "templates", "vendor"] }, resolve)
31 })
32
33 let unusedDependencies = result.dependencies
34 if (unusedDependencies.length > 0) {
35 if (packageName === "electron-builder") {
36 unusedDependencies = unusedDependencies.filter(it => it !== "dmg-builder")
37 }
38 if (packageName === "app-builder-lib") {
39 // @electron/universal is loaded via dynamicImport() which depcheck cannot statically detect
40 unusedDependencies = unusedDependencies.filter(it => it !== "@electron/universal")
41 }
42 if (unusedDependencies.length > 0) {
43 console.error(`${chalk.bold(packageName)} Unused dependencies: ${JSON.stringify(unusedDependencies, null, 2)}`)
44 return false
45 }
46 }
47
48 let unusedDevDependencies = result.devDependencies.filter(it => !it.startsWith("@types/") && !knownUnusedDevDependencies.has(it))
49 if (packageName === "electron-builder") {
50 unusedDevDependencies = unusedDevDependencies.filter(it => ["is-ci", "vitest"].indexOf(it) < 0)
51 }
52 if (packageName === "dmg-builder") {
53 unusedDevDependencies = unusedDevDependencies.filter(it => it !== "temp-file")
54 }
55 if (unusedDevDependencies.length > 0) {
56 console.error(`${chalk.bold(packageName)} Unused devDependencies: ${JSON.stringify(unusedDevDependencies, null, 2)}`)
57 return false
58 }
59
60 delete result.missing.electron
61 const toml = result.missing.toml
62 if (toml != null && toml.length === 1 && toml[0].endsWith("config.js")) {
63 delete result.missing.toml
64 }
65
66 if (packageName === "electron-builder") {
67 delete result.missing["electron-publish"]
68 }
69
70 for (const name of Object.keys(result.missing)) {
71 if (
72 name === "electron-builder-squirrel-windows" ||
73 name === "electron-webpack" ||
74 (packageName === "app-builder-lib" && (name === "dmg-builder" || knownMissedDependencies.has(name) || name.startsWith("@babel/")))
75 ) {
76 delete result.missing[name]
77 }
78 }
79

Callers 1

mainFunction · 0.85

Calls 3

hasMethod · 0.80
readJsonMethod · 0.80
errorMethod · 0.65

Tested by

no test coverage detected