sequelize-ts-boilerplate
Version:
A REST API scaffolding tool designed to scale and easily generate CRUD endpoints based on database schema design
58 lines (50 loc) • 1.75 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const fse = require("fs-extra");
const routeUsingMiddlewareWriter = require("./write-route-use");
function generate(tables, config) {
const routing = routeUsingMiddlewareWriter.get(tables, config);
const serverFile = (`
import * as path from "path";
import * as http from "http";
import * as logger from "morgan";
import * as cookieParser from 'cookie-parser';
import * as bodyParser from 'body-parser';
import * as cors from 'cors';
import * as helmet from 'helmet';
import * as express from 'express'
import {Request, Response, NextFunction} from 'express'
${routing.imports}
const app = express();
require("./datasources/sequelize"); // initialize sequelize connection
// routes
${routing.usingStatement}
app.use(logger());
app.use(cors());
app.use(bodyParser.json({limit: '50mb'}));
// app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
app.use(helmet());
/*** Add custom Middlewares here ***/
process.on('uncaughtException', (err) => {
console.log("Uncaught Exception!", err);
});
process.on('unhandledRejection', (err) => {
console.error(err);
})
app.use((req, res, next) => {
next({message: "Not Found", status: 404});
});
app.use((err, req: Request, res: Response, next: NextFunction): void => {
console.log("err: ", err);
res.status(400).json({message: "Route not found"}); // or server 404 template
});
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log("listening on port: ", port);
})
`);
fse.outputFileSync(`./src/server.ts`, serverFile, "utf8");
}
exports.generate = generate;
//# sourceMappingURL=write-server.js.map