nucklejs
Version:

47 lines (46 loc) • 1.88 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createServer = void 0;
require("dotenv/config");
const node_emoji_1 = __importDefault(require("node-emoji"));
const express_1 = __importDefault(require("express"));
const defaultHeaders_1 = require("./middlewere/defaultHeaders");
const cookie_parser_1 = __importDefault(require("cookie-parser"));
/**
* @param port a number that specify what port to run the server on
* @param router your router containing an array of routes. Create a router using createRouter()
*/
const createServer = (port, router) => {
if (!port)
throw new Error('No port was defined -> createServer()');
if (!router)
console.log('WARNING: No router has been defined');
if (typeof (port) !== 'number')
throw new Error('Port must be a number -> createServer()');
//define express app
const app = (0, express_1.default)();
//set default middlewere and headers
app.use(express_1.default.json());
app.use((0, cookie_parser_1.default)());
app.use(defaultHeaders_1.defHeaders);
//define router to use if given
if (router) {
app.use('/', router);
}
//listen on the given port
const PORT = process.env.PORT || port;
app.listen(PORT, () => {
if (process.env.NODE_ENV === 'development') {
console.log(`${node_emoji_1.default.get('zap')} Server alive at http://localhost:${PORT}`);
}
else {
console.log(`${node_emoji_1.default.get('octagonal_sign')} Production Mode!`);
}
});
//return express app to be able to define middleweres to use
return app;
};
exports.createServer = createServer;