Skip to content

Commit 4c605b0

Browse files
committed
fix(cli): install deps if necessary for datasource
1 parent 77f15c7 commit 4c605b0

File tree

1 file changed

+29
-20
lines changed
  • packages/cli/generators/datasource

1 file changed

+29
-20
lines changed

packages/cli/generators/datasource/index.js

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -223,26 +223,6 @@ module.exports = class DataSourceGenerator extends ArtifactGenerator {
223223
});
224224
}
225225

226-
install() {
227-
debug('install npm dependencies');
228-
const pkgs = [];
229-
230-
// Connector package.
231-
const connector = connectors[this.artifactInfo.connector];
232-
if (connector && connector.package) {
233-
pkgs.push(
234-
connector.package.name +
235-
`${connector.package.version ? '@' + connector.package.version : ''}`,
236-
);
237-
238-
debug(`npmModule - ${pkgs[0]}`);
239-
}
240-
241-
pkgs.push('@loopback/repository');
242-
243-
this.npmInstall(pkgs, {save: true});
244-
}
245-
246226
/**
247227
* Scaffold DataSource related files
248228
* super.scaffold() doesn't provide a way to rename files -- don't call it
@@ -304,6 +284,35 @@ module.exports = class DataSourceGenerator extends ArtifactGenerator {
304284
this.fs.copyTpl(classTemplatePath, tsPath, this.artifactInfo);
305285
}
306286

287+
install() {
288+
if (this.shouldExit()) return false;
289+
debug('install npm dependencies');
290+
const pkgJson = this.packageJson || {};
291+
const deps = pkgJson.dependencies || {};
292+
const pkgs = [];
293+
294+
// Connector package.
295+
const connector = connectors[this.artifactInfo.connector];
296+
if (connector && connector.package) {
297+
if (!deps[connector.package.name]) {
298+
pkgs.push(
299+
connector.package.name +
300+
`${
301+
connector.package.version ? '@' + connector.package.version : ''
302+
}`,
303+
);
304+
}
305+
306+
debug(`npmModule - ${pkgs[0]}`);
307+
}
308+
309+
if (!deps['@loopback/repository']) {
310+
pkgs.push('@loopback/repository');
311+
}
312+
313+
if (pkgs.length) this.npmInstall(pkgs, {save: true});
314+
}
315+
307316
async end() {
308317
await super.end();
309318
}

0 commit comments

Comments
 (0)