2020-10-27 11:27:17 +01:00
|
|
|
'use strict';
|
|
|
|
|
2019-06-19 19:02:36 +02:00
|
|
|
const database = ({ scope }) => ({
|
|
|
|
type: 'input',
|
|
|
|
name: 'database',
|
|
|
|
message: 'Database name:',
|
|
|
|
default: scope.name,
|
2019-12-28 00:01:54 +01:00
|
|
|
validate: value => {
|
|
|
|
if (value.includes('.')) {
|
2020-01-07 14:23:15 +01:00
|
|
|
return `The database name can't contain a "."`;
|
2019-12-28 00:01:54 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
return true;
|
|
|
|
},
|
2019-06-19 19:02:36 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
const host = () => ({
|
|
|
|
type: 'input',
|
|
|
|
name: 'host',
|
|
|
|
message: 'Host:',
|
|
|
|
default: '127.0.0.1',
|
|
|
|
});
|
|
|
|
|
|
|
|
const srv = () => ({
|
|
|
|
type: 'boolean',
|
|
|
|
name: 'srv',
|
|
|
|
message: '+srv connection:',
|
|
|
|
default: false,
|
|
|
|
});
|
|
|
|
|
|
|
|
const port = ({ client }) => ({
|
|
|
|
type: 'input',
|
|
|
|
name: 'port',
|
2020-10-27 11:27:17 +01:00
|
|
|
message: `Port${client === 'mongo' ? ' (It will be ignored if you enable +srv)' : ''}:`,
|
2019-06-19 19:02:36 +02:00
|
|
|
default: () => {
|
|
|
|
const ports = {
|
|
|
|
mongo: 27017,
|
|
|
|
postgres: 5432,
|
|
|
|
mysql: 3306,
|
|
|
|
};
|
|
|
|
|
|
|
|
return ports[client];
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
const username = () => ({
|
|
|
|
type: 'input',
|
|
|
|
name: 'username',
|
|
|
|
message: 'Username:',
|
|
|
|
});
|
|
|
|
|
|
|
|
const password = () => ({
|
|
|
|
type: 'password',
|
|
|
|
name: 'password',
|
|
|
|
message: 'Password:',
|
|
|
|
mask: '*',
|
|
|
|
});
|
|
|
|
|
|
|
|
const authenticationDatabase = () => ({
|
|
|
|
type: 'input',
|
|
|
|
name: 'authenticationDatabase',
|
|
|
|
message: 'Authentication database (Maybe "admin" or blank):',
|
|
|
|
});
|
|
|
|
|
|
|
|
const ssl = () => ({
|
|
|
|
type: 'confirm',
|
|
|
|
name: 'ssl',
|
|
|
|
message: 'Enable SSL connection:',
|
|
|
|
default: false,
|
|
|
|
});
|
|
|
|
|
|
|
|
const filename = () => ({
|
|
|
|
type: 'input',
|
|
|
|
name: 'filename',
|
|
|
|
message: 'Filename:',
|
|
|
|
default: '.tmp/data.db',
|
|
|
|
});
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
sqlite: [filename],
|
|
|
|
postgres: [database, host, port, username, password, ssl],
|
|
|
|
mysql: [database, host, port, username, password, ssl],
|
2020-10-27 11:27:17 +01:00
|
|
|
mongo: [database, host, srv, port, username, password, authenticationDatabase, ssl],
|
2019-06-19 19:02:36 +02:00
|
|
|
};
|