UNPKG

@bee.js/node

Version:

A JavaScript framework for making Node.js API´s

74 lines (58 loc) 1.88 kB
const express = require("express"); const bodyParser = require("body-parser"); const log = require("./log"); const headers = require("./headers"); module.exports = function (configs) { const app = express(); app.use( bodyParser.urlencoded({ limit: "10mb", extended: true, parameterLimit: 50000, }) ); app.use(bodyParser.json({ extended: true, limit: "10mb" })); app.use(bodyParser.raw()); app.use((req, res, next) => headers({ req, res, next, app, configs })); log(`Creating ${configs.name || "Bee.js"}...`); log("Optimizing model(s)..."); const models = configs.models; Object.entries(models).forEach(([modelName, model]) => { model.table = model.table || modelName; Object.entries(model.schema).forEach(([fieldName, field]) => { field.type = field.type.split(" ")[0]; }); }); log("Configuring database(s)..."); // TODO talvez usar {... {obj}, {otherObject} } // TODO fazer loop em todos os dbs. let defaultConfigs = { default: { connectionLimit: 100, multipleStatements: true, waitForConnections: true, queueLimit: 0, charset: "utf8", engine: "InnoDB", drive: "mysql", port: 3306, }, }; configs.databases.default = Object.assign( {}, defaultConfigs.default, configs.databases.default ); configs.dev = process.argv.includes("--dev") ? true : configs.debug; configs.debug = configs.dev || configs.debug; global.configs = configs; global.models = models; global.middlewares = configs.middlewares; global.controllers = configs.controllers; global.routes = configs.routes; delete global.beeDBPool; log(`${Object.keys(global.models).length} model(s)`); log(`${Object.keys(global.controllers).length} controller(s)`); log(`${Object.keys(global.middlewares).length - 1} middleware(s)`); return app; };