From c634e03cb553e21158fddc6d4221a54aa799de79 Mon Sep 17 00:00:00 2001 From: marzavec Date: Mon, 18 Mar 2019 23:36:21 -0700 Subject: refactoring 1 of 2 --- server/src/scripts/setupSchema/Questions.js | 55 +++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 server/src/scripts/setupSchema/Questions.js (limited to 'server/src/scripts/setupSchema/Questions.js') diff --git a/server/src/scripts/setupSchema/Questions.js b/server/src/scripts/setupSchema/Questions.js new file mode 100644 index 0000000..f84d32f --- /dev/null +++ b/server/src/scripts/setupSchema/Questions.js @@ -0,0 +1,55 @@ +/** + * This object contains Prompt ( https://www.npmjs.com/package/prompt ) style + * questions that the SetupWizard will require an answer to. Questions are asked + * in the order they are specified here. + * + * The resulting config.json file will be used by the server, accessed by the + * name specified. IE, a valid use is; config.adminName + * + */ + +const Questions = { + properties: { + tripSalt: { + description: 'Salt (leave as default)', + type: 'string', + hidden: true, + replace: '*', + before: value => { + salt = value; + return value; + } + }, + + adminName: { + description: 'Admin Nickname', + pattern: /^"?[a-zA-Z0-9_]+"?$/, + type: 'string', + message: 'Nicks can only contain letters, numbers and underscores', + before: value => value.replace(/"/g, '') + }, + + adminTrip: { + type: 'string', + hidden: true, + replace: '*', + description: 'Admin Password', + message: 'You must enter or re-enter a password', + before: value => { + const crypto = require('crypto'); + let sha = crypto.createHash('sha256'); + sha.update(value + salt); + return sha.digest('base64').substr(0, 6); + } + }, + + websocketPort: { + type: 'integer', + message: 'The port may only be a number!', + description: 'Websocket Port', + default: '6060' + } + } +} + +module.exports = Questions; -- cgit v1.2.1