UNPKG

@xervo/cli

Version:

The command line interface for deploying applications to the Xervo hosting platform.

225 lines (211 loc) 5.89 kB
var error = module.exports error.handlePromptError = function (err, cb) { // Check if canceled by the user (CTRL+C) if (err.message && err.message === 'canceled') { console.log('') // Extra space. return cb('Canceled by user.') } return cb(err) } error.handleApiError = function (err, command, cb) { var e = error.getError(err, command) if (e.level < 2) { cb(e.message) return '' } else { return e.message } } error.getError = function (err, command) { var id = 'DEFAULT' var msg = '' if (err.code) { id = err.code } else if (err.errors && err.errors.length > 0) { id = err.errors[0].id msg = err.errors[0].message } for (var e in error.responseCodes) { if (id === e) { // If there is no message set, // use the message from congress if (!error.responseCodes[e].message) { var ret = error.responseCodes[e] ret.message = msg return ret } return error.responseCodes[e] } } if (typeof command === 'string') { for (var c in error.commandCodes) { if (command === c) { return error.commandCodes[c] } } } return error.responseCodes.DEFAULT } /* --- Error Codes --- */ // Level 0 - Something very bad happened, panic. // Level 1 - Processing error, do not continue. // Level 2 - Format/Input error, try again. error.responseCodes = { DEFAULT: { id: 'DEFAULT', level: 1, message: 'There was an error processing your request.' }, ECONNREFUSED: { id: 'ECONNREFUSED', level: 1, message: 'Could not connect to Xervo.' }, INVALID_AUTH: { id: 'INVALID_AUTH', level: 1, message: 'Your session has expired. Please log in to continue.' }, USERNAME_ALREADY_EXISTS: { id: 'USERNAME_ALREADY_EXISTS', level: 2, message: null }, EMAIL_ALREADY_EXISTS: { id: 'EMAIL_ALREADY_EXISTS', level: 2, message: null }, BETA_KEY_NOT_FOUND: { id: 'BETA_KEY_NOT_FOUND', level: 2, message: null }, BETA_KEY_ALEADY_USED: { id: 'BETA_KEY_ALEADY_USED', level: 2, message: null }, PROJECT_LIMIT_REACHED: { id: 'PROJECT_LIMIT_REACHED', level: 1, message: null }, NO_CAPACITY: { id: 'NO_CAPACITY', level: 2, message: 'Not enough capacity for new project. New capacity is being added now. Please attempt the request again in a few minutes.' }, PROJECT_ZIP_TOO_LARGE: { id: 'PROJECT_ZIP_TOO_LARGE', level: 1, message: 'Your application must be less than 1gb in size.' }, NO_MATCHING_NAME: { id: 'NO_MATCHING_NAME', level: 1, message: 'No project found that matches specified name.' }, NO_MATCHING_DB_NAME: { id: 'NO_MATCHING_DB_NAME', level: 1, message: 'No database found that matches specified name.' }, OAUTH_TOKEN_NOT_FOUND: { id: 'OAUTH_TOKEN_NOT_FOUND', level: 1, message: 'Please link your account with GitHub using the web portal to use GitHub authentication.' }, SINGLE_SIGN_ON_USER_NOT_FOUND: { id: 'SINGLE_SIGN_ON_USER_NOT_FOUND', level: 1, message: 'GitHub account not found. Please link your account with GitHub using the web portal to use GitHub authentication.' }, INVALID_ENV_VARIABLE_VALUE: { id: 'INVALID_ENV_VARIABLE_VALUE', level: 2, message: 'Environment variable values cannot contain single quotes.' }, INVALID_ENV_VARIABLE_NAME: { id: 'INVALID_ENV_VARIABLE_NAME', level: 2, message: 'Variable names cannot start with numbers, can only contain alpha-numeric characters and underscores, and cannot contain quotes.' }, INVALID_PROJECT_TYPE: { id: 'INVALID_PROJECT_TYPE', level: 1, message: 'The project type you have provided was not recognized.' }, API_KEY_NOT_FOUND: { id: 'API_KEY_NOT_FOUND', level: 1, message: 'Token not found. Please ensure it was entered correctly and try again.' }, INVALID_JSON: { id: 'INVALID_JSON', level: 1, message: 'Invalid JSON content.' }, INVALID_JSON_FILE: { id: 'INVALID_JSON_FILE', level: 1, message: 'Invalid package.json file.' }, INVALID_VALUE: { id: 'INVALID_VALUE', level: 1, message: 'Failed to parse environment variable value.' }, INVALID_FILE: { id: 'INVALID_FILE', level: 1, message: 'The specified file is missing or invalid.' }, INVALID_FLAGS: { id: 'INVALID_FLAGS', level: 1, message: 'You must be verified to perform this action. Visit https://xervo.io/verify to verify your account.' }, PROJECTS_NOT_FOUND: { id: 'PROJECTS_NOT_FOUND', level: 1, message: 'You currently have no projects. You can create one with "project create".' }, INVALID_SERVO_SELECTED: { id: 'INVALID_SERVO_SELECTED', level: 1, message: 'Invalid servo selected. Please select a valid servo.' }, SERVO_LIMIT_REACHED: { id: 'SERVO_LIMIT_REACHED', level: 1, message: 'Unverified accounts are limited to 2 servos per project. Please verify the owner account by adding a credit card.' }, SERVO_SIZE_LIMITED: { id: 'SERVO_SIZE_LIMITED', level: 1, message: 'Unverified accounts have a limit of 512 MB for servo size. Please verify the owner account by adding a credit card.' }, PROJECT_LIMIT_REACHED_UNVERIFIED: { id: 'PROJECT_LIMIT_REACHED_UNVERIFIED', level: 1, message: 'Unverified accounts are limited to 2 projects. Please verify the owner account by adding a credit card.' } } error.commandCodes = { LOGIN: { id: 'LOGIN', level: 2, message: 'Username or Password incorrect.\nFor Github users, use the --github option.' }, CREATE_MONGO: { id: 'CREATE_MONGO', level: 1, message: 'MongoDB database could not be created.' }, GET_DATABASES: { id: 'GET_DATABASES', level: 1, message: 'Could not retreive databases for user.' } }