UNPKG

@agatee/cli

Version:

CLI for Agatee App

79 lines (78 loc) 4.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.checkMongooseError = exports.addMongoose = void 0; var fs_1 = require("fs"); var process_1 = require("process"); var generales_1 = require("../../../generales"); var console_1 = require("../../../utils/console"); var envparser_1 = require("../../../utils/envparser"); var file_1 = require("../../../utils/file"); var workers_1 = require("../../../utils/workers"); var addMongoose = function (params) { (0, exports.checkMongooseError)(params); var config = {}; var workingDirectory = (0, process_1.cwd)(); var dbConfig = { host: null, port: null, password: null, user: null, database: null, isSrv: null }; if ((0, fs_1.existsSync)(generales_1.dotenvPath)) { config = (0, envparser_1.parseEnv)((0, fs_1.readFileSync)(generales_1.dotenvPath).toString()); } if (params.additionalParams['srv']) { dbConfig.isSrv = true; dbConfig.uri = params.additionalParams['db-uri']; } else { dbConfig.host = params.additionalParams['db-host']; dbConfig.port = params.additionalParams['db-port']; dbConfig.database = params.additionalParams['db'] || params.additionalParams['database']; dbConfig.password = params.additionalParams['db-pass'] || params.additionalParams['db-password']; dbConfig.username = params.additionalParams['db-user'] || params.additionalParams['db-username']; } console.log('Installing mongoose\n> npm install --save mongoose'); (0, workers_1.runSpawnWorker)("npm", ['install', '--save', 'mongoose', '--prefix', workingDirectory, workingDirectory], { onExit: function () { (0, console_1.logSuccess)("[\u2714] mongoose installed"); console.log('Setting up mongoose ...'); if (dbConfig.isSrv) { config.DB_URI = dbConfig.uri || 'mongodb://localhost:27017/agatee'; } else { config.DB_HOST = dbConfig.host || 'localhost'; config.DB_PORT = dbConfig.port || '27017'; config.DB_PASSWORD = dbConfig.password || ''; config.DB_USERNAME = dbConfig.username || ''; config.DATABASE = dbConfig.database || (0, file_1.getAppName)(); } (0, fs_1.writeFileSync)(generales_1.dotenvPath, (0, envparser_1.objToEnv)(config)); var appIndexContent = (0, fs_1.readFileSync)(generales_1.appIndexPath).toString(); var newIndexContent = []; var lines = appIndexContent.split('\n'); // Reverse line and find index for last import word var lastImportIndexReversed = lines.reverse().findIndex(function (line) { var firstWord = line.trim().split(' ')[0]; return firstWord === 'import'; }); lines[lastImportIndexReversed] += "\nimport mongoose from 'mongoose';"; if (dbConfig.isSrv) { lines[lastImportIndexReversed] += "\n\n// Mongoose Config \nconst dbUrl = process.env.DB_URI"; } else { lines[lastImportIndexReversed] += "\n\n// Mongoose Config \nconst dbUrl = `mongodb://${(process.env.DB_USERNAME && process.env.DB_PASSWORD) ? `${process.env.DB_USERNAME}:${process.env.DB_PASSWORD}@`: ''}${process.env.DB_HOST}:${process.env.DB_PORT}/${process.env.DATABASE}`;"; } lines[lastImportIndexReversed] += "\nmongoose.Promise = global.Promise;\nmongoose.connect(dbUrl, {useNewUrlParser: true, useUnifiedTopology: true})\n\t.then(() => console.log('Connected to database'))\n\t.catch((err) => console.error(err));"; lines.reverse(); (0, fs_1.writeFileSync)(generales_1.appIndexPath, lines.join('\n')); (0, console_1.logSuccess)('[✔] Done adding mongoose'); } }); }; exports.addMongoose = addMongoose; var checkMongooseError = function (params) { var config = {}; if ((0, fs_1.existsSync)(generales_1.dotenvPath)) { config = (0, envparser_1.parseEnv)((0, fs_1.readFileSync)(generales_1.dotenvPath).toString()); } if (config.DB_HOST || config.DB_URI) { throw new Error('Mongoose already added'); } }; exports.checkMongooseError = checkMongooseError;