Skip to content
This repository was archived by the owner on Jul 4, 2018. It is now read-only.

Commit a5a93fa

Browse files
authored
Merge pull request #42 from FoalTS/add-uri-prompt
Add uri prompt and ask for only one database.
2 parents 76ea9d2 + 5f902ea commit a5a93fa

File tree

2 files changed

+31
-20
lines changed

2 files changed

+31
-20
lines changed

generators/app/index.js

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ module.exports = class extends Generator {
2020
}
2121

2222
prompting() {
23-
const pg = 'pg@6';
2423
return this.prompt([
2524
{
2625
type: 'confirm',
@@ -35,28 +34,34 @@ module.exports = class extends Generator {
3534
default: ''
3635
},
3736
{
38-
type: 'checkbox',
39-
name: 'databases',
40-
message: 'Which databases will you be using?',
37+
type: 'list',
38+
name: 'database',
39+
message: 'Which database are you connecting to?',
4140
choices: [
42-
{ name: 'PostgreSQL', value: pg },
43-
{ name: 'MySQL', value: 'mysql2' },
41+
{ name: 'None', value: null },
42+
{ name: 'PostgreSQL', value: 'postgres' },
43+
{ name: 'MySQL', value: 'mysql' },
4444
]
45-
}
46-
]).then(({ vscode, domain, databases }) => {
45+
},
46+
{
47+
type: 'input',
48+
name: 'uri',
49+
message: 'What is your database uri (leave blank if no database)?',
50+
default: ''
51+
},
52+
]).then(({ vscode, domain, database, uri }) => {
4753
this.vscode = vscode;
4854
this.domain = domain;
49-
if (databases.includes(pg)) {
50-
databases.push('pg-hstore');
51-
}
52-
this.databases = databases;
55+
this.database = database;
56+
this.uri = uri || 'my_uri' ;
5357
});
5458
}
5559

5660
writing() {
5761
const locals = {
5862
...this.names,
5963
domain: this.domain,
64+
uri: this.uri,
6065
appName: '<%= appName %>',
6166
devSecret1: crypto.randomBytes(32).toString('hex'),
6267
prodSecret1: crypto.randomBytes(32).toString('hex'),
@@ -103,11 +108,17 @@ module.exports = class extends Generator {
103108
}
104109

105110
install() {
106-
if (this.databases.length !== 0) {
107-
this.npmInstall([
108-
'@foal/sequelize@0.4.0-alpha.3',
109-
...this.databases
110-
], {}, () => {}, { cwd: this.names.kebabName });
111+
let dbDependencies = [];
112+
switch(this.database) {
113+
case 'postgres':
114+
dbDependencies = [ '@foal/sequelize@0.4.0-alpha.3', 'pg@6', 'pg-hstore' ];
115+
break;
116+
case 'mysql':
117+
dbDependencies = [ '@foal/sequelize@0.4.0-alpha.3', 'mysql2' ];
118+
break;
119+
}
120+
if (dbDependencies.length !== 0) {
121+
this.npmInstall(dbDependencies, {}, () => {}, { cwd: this.names.kebabName });
111122
}
112123
this.npmInstall([], {}, () => {}, { cwd: this.names.kebabName });
113124
this.npmInstall([

generators/app/templates/src/config/config.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ const configs = {
88
name: '<%= kebabName %> (dev)'
99
},
1010
db: {
11-
uri: process.env.DB_URI || 'my_uri',
1211
options: {},
12+
uri: process.env.DB_URI || '<%= uri %>',
1313
},
1414
errors: {
1515
logs: '500' as logOptions,
@@ -29,8 +29,8 @@ const configs = {
2929
name: '<%= kebabName %>'
3030
},
3131
db: {
32-
uri: process.env.DB_URI || 'my_uri',
3332
options: {},
33+
uri: process.env.DB_URI || 'my_uri',
3434
},
3535
errors: {
3636
logErrors: '500' as logOptions,
@@ -58,8 +58,8 @@ const configs = {
5858
name: '<%= kebabName %> (test)'
5959
},
6060
db: {
61-
uri: process.env.DB_URI || 'my_uri',
6261
options: {},
62+
uri: process.env.DB_URI || '<%= uri %>',
6363
},
6464
errors: {
6565
logErrors: 'none' as logOptions,

0 commit comments

Comments
 (0)