feat: refactored server to use ts and improved folder structure
This commit is contained in:
32
server/dist/app.js
vendored
Normal file
32
server/dist/app.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const http_1 = __importDefault(require("http"));
|
||||
const express_1 = __importDefault(require("express"));
|
||||
const debug_1 = __importDefault(require("debug"));
|
||||
const middlewares_1 = require("./middlewares");
|
||||
const routes_1 = __importDefault(require("./routes"));
|
||||
const users_1 = __importDefault(require("./routes/users"));
|
||||
const port_1 = require("./helpers/port");
|
||||
const server_callbacks_1 = require("./helpers/server-callbacks");
|
||||
const register_1 = require("./routes/api/register");
|
||||
const PORT = port_1.normalizePort(process.env.PORT || '6595');
|
||||
const debug = debug_1.default('deemix-gui:server');
|
||||
const app = express_1.default();
|
||||
const server = http_1.default.createServer(app);
|
||||
/* === Middlewares === */
|
||||
middlewares_1.registerMiddlewares(app);
|
||||
/* === Routes === */
|
||||
app.use('/', routes_1.default);
|
||||
app.use('/users', users_1.default);
|
||||
/* === APIs === */
|
||||
register_1.registerApis(app);
|
||||
/* === Config === */
|
||||
app.set('port', PORT);
|
||||
/* === Server port === */
|
||||
server.listen(PORT);
|
||||
/* === Server callbacks === */
|
||||
server.on('error', server_callbacks_1.getErrorCb(PORT));
|
||||
server.on('listening', server_callbacks_1.getListeningCb(server, debug));
|
||||
9
server/dist/helpers/paths.js
vendored
Normal file
9
server/dist/helpers/paths.js
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.WEBUI_DIR = exports.ROOT_DIR = void 0;
|
||||
const path_1 = __importDefault(require("path"));
|
||||
exports.ROOT_DIR = path_1.default.resolve('../');
|
||||
exports.WEBUI_DIR = path_1.default.join(exports.ROOT_DIR, 'webui', 'public');
|
||||
21
server/dist/helpers/port.js
vendored
Normal file
21
server/dist/helpers/port.js
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.normalizePort = void 0;
|
||||
/**
|
||||
* Normalize a port into a number, string, or false.
|
||||
*
|
||||
* @since 0.0.0
|
||||
*/
|
||||
function normalizePort(portString) {
|
||||
const port = parseInt(portString, 10);
|
||||
if (isNaN(port)) {
|
||||
// named pipe
|
||||
return portString;
|
||||
}
|
||||
if (port >= 0) {
|
||||
// port number
|
||||
return port;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
exports.normalizePort = normalizePort;
|
||||
45
server/dist/helpers/server-callbacks.js
vendored
Normal file
45
server/dist/helpers/server-callbacks.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.getListeningCb = exports.getErrorCb = void 0;
|
||||
/**
|
||||
* Event listener for HTTP server "error" event.
|
||||
*
|
||||
* @since 0.0.0
|
||||
*/
|
||||
function getErrorCb(port) {
|
||||
return (error) => {
|
||||
if (error.syscall !== 'listen') {
|
||||
throw error;
|
||||
}
|
||||
const bind = typeof port === 'string' ? 'Pipe ' + port : 'Port ' + port;
|
||||
// handle specific listen errors with friendly messages
|
||||
switch (error.code) {
|
||||
case 'EACCES': {
|
||||
console.error(bind + ' requires elevated privileges');
|
||||
process.exit(1);
|
||||
}
|
||||
case 'EADDRINUSE': {
|
||||
console.error(bind + ' is already in use');
|
||||
process.exit(1);
|
||||
}
|
||||
default:
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
}
|
||||
exports.getErrorCb = getErrorCb;
|
||||
/**
|
||||
* Event listener for HTTP server "listening" event.
|
||||
*
|
||||
* @since 0.0.0
|
||||
*/
|
||||
function getListeningCb(server, debug) {
|
||||
return () => {
|
||||
const addr = server.address();
|
||||
if (addr) {
|
||||
const bind = typeof addr === 'string' ? 'pipe ' + addr : 'port ' + addr.port;
|
||||
debug('Listening on ' + bind);
|
||||
}
|
||||
};
|
||||
}
|
||||
exports.getListeningCb = getListeningCb;
|
||||
18
server/dist/middlewares.js
vendored
Normal file
18
server/dist/middlewares.js
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.registerMiddlewares = void 0;
|
||||
const morgan_1 = __importDefault(require("morgan"));
|
||||
const express_1 = __importDefault(require("express"));
|
||||
const cookie_parser_1 = __importDefault(require("cookie-parser"));
|
||||
const paths_1 = require("./helpers/paths");
|
||||
function registerMiddlewares(app) {
|
||||
app.use(morgan_1.default('dev'));
|
||||
app.use(express_1.default.json());
|
||||
app.use(express_1.default.urlencoded({ extended: false }));
|
||||
app.use(cookie_parser_1.default());
|
||||
app.use(express_1.default.static(paths_1.WEBUI_DIR));
|
||||
}
|
||||
exports.registerMiddlewares = registerMiddlewares;
|
||||
3
server/dist/routes/api/delete/index.js
vendored
Normal file
3
server/dist/routes/api/delete/index.js
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = [];
|
||||
7
server/dist/routes/api/get/index.js
vendored
Normal file
7
server/dist/routes/api/get/index.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const sample_1 = __importDefault(require("./sample"));
|
||||
exports.default = [sample_1.default];
|
||||
8
server/dist/routes/api/get/sample.js
vendored
Normal file
8
server/dist/routes/api/get/sample.js
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const path = '/sample';
|
||||
const handler = (_, res) => {
|
||||
res.send('Mandi');
|
||||
};
|
||||
const apiHandler = { path, handler };
|
||||
exports.default = apiHandler;
|
||||
3
server/dist/routes/api/patch/index.js
vendored
Normal file
3
server/dist/routes/api/patch/index.js
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = [];
|
||||
3
server/dist/routes/api/post/index.js
vendored
Normal file
3
server/dist/routes/api/post/index.js
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = [];
|
||||
38
server/dist/routes/api/register.js
vendored
Normal file
38
server/dist/routes/api/register.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.registerApis = void 0;
|
||||
const get_1 = __importDefault(require("./get"));
|
||||
const delete_1 = __importDefault(require("./delete"));
|
||||
const post_1 = __importDefault(require("./post"));
|
||||
const patch_1 = __importDefault(require("./patch"));
|
||||
const prependApiPath = (path) => `/api${path}`;
|
||||
const methods = [
|
||||
{
|
||||
method: 'get',
|
||||
endpoints: get_1.default
|
||||
},
|
||||
{
|
||||
method: 'delete',
|
||||
endpoints: delete_1.default
|
||||
},
|
||||
{
|
||||
method: 'post',
|
||||
endpoints: post_1.default
|
||||
},
|
||||
{
|
||||
method: 'patch',
|
||||
endpoints: patch_1.default
|
||||
}
|
||||
];
|
||||
function registerApis(app) {
|
||||
methods.forEach(({ method, endpoints }) => {
|
||||
endpoints.forEach(endpoint => {
|
||||
// @ts-ignore
|
||||
app[method](prependApiPath(endpoint.path), endpoint.handler);
|
||||
});
|
||||
});
|
||||
}
|
||||
exports.registerApis = registerApis;
|
||||
16
server/dist/routes/index.js
vendored
Normal file
16
server/dist/routes/index.js
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = __importDefault(require("express"));
|
||||
const router = express_1.default.Router();
|
||||
/**
|
||||
* GET home page
|
||||
*
|
||||
* @since 0.0.0
|
||||
*/
|
||||
router.get('/', (_, res) => {
|
||||
res.render('index', { title: 'Express' });
|
||||
});
|
||||
exports.default = router;
|
||||
16
server/dist/routes/users.js
vendored
Normal file
16
server/dist/routes/users.js
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = __importDefault(require("express"));
|
||||
const router = express_1.default.Router();
|
||||
/**
|
||||
* GET users listing.
|
||||
*
|
||||
* @since 0.0.0
|
||||
*/
|
||||
router.get('/', (_, res) => {
|
||||
res.send('respond with a resource');
|
||||
});
|
||||
exports.default = router;
|
||||
2
server/dist/types.js
vendored
Normal file
2
server/dist/types.js
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
Reference in New Issue
Block a user