diff --git a/package.json b/package.json index 9832ce5..7e97894 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "description": "", "main": "index.js", "scripts": { - "dev": "nodemon --DAO=MEMORIA", + "dev": "export NODE_ENV=development && nodemon", + "prod": "export NODE_ENV=production && node ./dist/index.js --P=8082", "start": "node ./dist/index.js", "test": "echo \"Error: no test specified\" && exit 1" }, diff --git a/src/apis/cartapi.ts b/src/apis/cartapi.ts index 1675c95..fd55558 100644 --- a/src/apis/cartapi.ts +++ b/src/apis/cartapi.ts @@ -1,4 +1,4 @@ -import { flags } from '../config/config'; +import { CONFIG, flags } from '../config/config'; import { CartFactoryDAO } from '../models/cart/cartfactory'; import { Cart, Products } from '../models/interfaces'; @@ -6,7 +6,7 @@ class CartAPI { private cart; constructor() { - this.cart = CartFactoryDAO.get(flags.D); + this.cart = CartFactoryDAO.get(CONFIG.DAO); } async getProducts(id?: string): Promise { diff --git a/src/apis/messagesapi.ts b/src/apis/messagesapi.ts index c07a72a..2caddc3 100644 --- a/src/apis/messagesapi.ts +++ b/src/apis/messagesapi.ts @@ -1,12 +1,12 @@ import { Messages } from '../models/interfaces'; -import { flags } from '../config/config'; +import { CONFIG, flags } from '../config/config'; import { MessagesFactoryDAO } from '../models/messages/messagesFactory'; class messagesAPI { private messages; constructor() { - this.messages = MessagesFactoryDAO.get(flags.D); + this.messages = MessagesFactoryDAO.get(CONFIG.DAO); } async getMessages(): Promise { diff --git a/src/apis/productsapi.ts b/src/apis/productsapi.ts index f6cc4cd..d07cf5c 100644 --- a/src/apis/productsapi.ts +++ b/src/apis/productsapi.ts @@ -1,12 +1,12 @@ import { FactoryDAO } from '../models/products/productfactory'; import { Products, newProductI, ProductQuery } from '../models/interfaces'; -import { flags } from '../config/config'; +import { CONFIG, flags } from '../config/config'; class prodAPI { private products; constructor() { - this.products = FactoryDAO.get(flags.D); + this.products = FactoryDAO.get(CONFIG.DAO); } async getProducts(id?: string): Promise { diff --git a/src/baseRepository/mongodb.ts b/src/baseRepository/mongodb.ts index dbc3aa6..f6c8616 100644 --- a/src/baseRepository/mongodb.ts +++ b/src/baseRepository/mongodb.ts @@ -1,6 +1,6 @@ import { Schema, model, connect } from 'mongoose'; import { IRead, IWrite, Messages } from '../models/interfaces'; -import CONFIG from '../config/config'; +import { CONFIG } from '../config/config'; const messagesCollection = 'mensajes'; @@ -27,7 +27,7 @@ export abstract class BaseMongo implements IRead, IWrite { async find(): Promise { let outputGet: Messages[] = []; const product = await this.messages.find(); - outputGet.push(...product) + outputGet.push(...product); return outputGet; } diff --git a/src/config/config.ts b/src/config/config.ts index f771dbb..1bc7489 100644 --- a/src/config/config.ts +++ b/src/config/config.ts @@ -1,12 +1,15 @@ import dotenv from 'dotenv'; import args from 'args'; +import path from 'path'; -args.option('DAO', 'Sets the DB to use') +args.option('PORT', 'SETS THE PORT USING CLI', 8080) export const flags = args.parse(process.argv); -dotenv.config(); +dotenv.config({ + path: path.resolve(__dirname, '../../' + process.env.NODE_ENV + '.env') +}); -const env = { +export const CONFIG = { MYSQL_HOST: process.env.MYSQL_HOST || 'urlhost', MYSQL_USER: process.env.MYSQL_USER || 'user', MYSQL_PASSWORD: process.env.MYSQL_PASSWORD || 'password', @@ -18,6 +21,6 @@ const env = { FIREBASE_CLIENTEMAIL: process.env.FIREBASE_CLIENTEMAIL || 'clientemail', FIREBASE_PROJECTID: process.env.FIREBASE_PROJECTID || 'projectid', FIREBASE_DBURL: process.env.FIREBASE_DBURL || 'dbUrl', + DAO: process.env.DAO || 'ANYTHING', }; -export default env; diff --git a/src/index.ts b/src/index.ts index 62b3cb9..2a5703e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,8 +1,7 @@ +import { flags } from './config/config'; import Server from './services/server'; import { ioServer } from './services/socket'; -const port = process.env.PORT || 8080; - ioServer(Server); -Server.listen(port, () => console.log(`Server running in port: ${port}`)); +Server.listen(flags.P, () => console.log(`Server running in port: ${flags.P}`)); Server.on('error', (error) => console.error(`There was an error: ${error}`)); diff --git a/src/knexfile.ts b/src/knexfile.ts index 69b1d30..d58de29 100644 --- a/src/knexfile.ts +++ b/src/knexfile.ts @@ -1,6 +1,6 @@ // Update with your config settings. -import CONFIG from './config/config' +import { CONFIG } from './config/config'; export default { servermysql: { diff --git a/src/models/cart/DAO/mongodb.ts b/src/models/cart/DAO/mongodb.ts index 2e46d73..c70a302 100644 --- a/src/models/cart/DAO/mongodb.ts +++ b/src/models/cart/DAO/mongodb.ts @@ -1,7 +1,7 @@ import { Schema, model, connect, Types } from 'mongoose'; import { Products, Cart } from '../../interfaces'; import { productsAPI } from '../../../apis/productsapi'; -import CONFIG from '../../../config/config'; +import { CONFIG } from '../../../config/config'; const cartSchema = new Schema( { diff --git a/src/models/products/DAO/firebase.ts b/src/models/products/DAO/firebase.ts index baf98ae..3b526d3 100644 --- a/src/models/products/DAO/firebase.ts +++ b/src/models/products/DAO/firebase.ts @@ -1,6 +1,6 @@ import firebase from 'firebase-admin'; import { newProductI, Products, ProductQuery } from '../../interfaces'; -import CONFIG from '../../../config/config'; +import { CONFIG } from '../../../config/config'; export class ProductDAOFirebase { // Private instance of the class to use singleton pattern diff --git a/src/models/products/DAO/mongodb.ts b/src/models/products/DAO/mongodb.ts index 1794c9a..af58522 100644 --- a/src/models/products/DAO/mongodb.ts +++ b/src/models/products/DAO/mongodb.ts @@ -1,6 +1,6 @@ import { Schema, model, connect } from 'mongoose'; import { Products, newProductI, ProductQuery } from '../../interfaces'; -import CONFIG from '../../../config/config'; +import { CONFIG } from '../../../config/config'; const productsSchema = new Schema( { @@ -43,7 +43,9 @@ export class ProductDAOMONGO { ); return this._instanceLocal; } else { - console.log('Intancia MONGODB LOCAL PRODUCT inicializada por primera vez'); + console.log( + 'Intancia MONGODB LOCAL PRODUCT inicializada por primera vez' + ); return (this._instanceLocal = new this()); } } @@ -56,7 +58,9 @@ export class ProductDAOMONGO { ); return this._instanceAtlas; } else { - console.log('Intancia MONGODB ATLAS PRODUCT inicializada por primera vez'); + console.log( + 'Intancia MONGODB ATLAS PRODUCT inicializada por primera vez' + ); return (this._instanceAtlas = new this(false)); } }