MCPcopy Index your code
hub / github.com/loopbackio/loopback-next / checkDependencies

Function checkDependencies

packages/cli/lib/version-helper.js:36–162  ·  view source on GitHub ↗

* Check project dependencies against module versions from the cli template * @param generator - Yeoman generator instance

(generator)

Source from the content-addressed store, hash-verified

34 * @param generator - Yeoman generator instance
35 */
36async function checkDependencies(generator) {
37 const pkg = generator.fs.readJSON(generator.destinationPath('package.json'));
38
39 const isUpdate = generator.command === 'update';
40 const pkgDeps = pkg
41 ? {
42 dependencies: {...pkg.dependencies},
43 devDependencies: {...pkg.devDependencies},
44 peerDependencies: {...pkg.peerDependencies},
45 }
46 : {};
47
48 if (!pkg) {
49 if (isUpdate) {
50 printVersions(generator.log);
51 await checkCliVersion(generator.log);
52 return;
53 }
54 const err = new Error(
55 'No package.json found in ' +
56 generator.destinationRoot() +
57 '. ' +
58 'The command must be run in a LoopBack project.',
59 );
60 generator.exit(err);
61 return;
62 }
63
64 const dependentPackage = '@loopback/core';
65
66 const projectDepsNames = isUpdate
67 ? Object.keys(
68 // Check dependencies, devDependencies, and peerDependencies
69 {
70 ...pkgDeps.dependencies,
71 ...pkgDeps.devDependencies,
72 ...pkgDeps.peerDependencies,
73 },
74 )
75 : Object.keys(pkgDeps.dependencies);
76
77 const isLBProj = isUpdate
78 ? projectDepsNames.some(n => n.startsWith('@loopback/'))
79 : projectDepsNames.includes(dependentPackage);
80
81 if (!isLBProj) {
82 const err = new Error(
83 'No `@loopback/core` package found in the "dependencies" section of ' +
84 generator.destinationPath('package.json') +
85 '. ' +
86 'The command must be run in a LoopBack project.',
87 );
88 generator.exit(err);
89 return;
90 }
91
92 const incompatibleDeps = {
93 dependencies: {},

Callers 1

checkLoopBackProjectFunction · 0.85

Calls 7

printVersionsFunction · 0.85
checkCliVersionFunction · 0.85
exitMethod · 0.80
keysMethod · 0.65
matchMethod · 0.65
logMethod · 0.65
getMethod · 0.65

Tested by

no test coverage detected