@bee.js/node
Version:
A JavaScript framework for making Node.js API´s
62 lines (47 loc) • 1.54 kB
JavaScript
const express = require("express");
const log = require("./log");
module.exports = function (configs) {
const app = express();
app.express = express;
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;
};