@@ -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 ( [
0 commit comments