From 2223750e912ed55993be6e829ed5ad0d1cd239ea Mon Sep 17 00:00:00 2001 From: Roberto Tonino Date: Sat, 3 Apr 2021 19:46:33 +0200 Subject: [PATCH] build: v0.0.0; workflow: added start-build command --- server/dist/app.js | 96 +++++-------------------- server/dist/helpers/paths.js | 9 +++ server/dist/helpers/port.js | 21 ++++++ server/dist/helpers/server-callbacks.js | 45 ++++++++++++ server/dist/middlewares.js | 18 +++++ server/dist/routes/api/delete/index.js | 3 + server/dist/routes/api/get/index.js | 7 ++ server/dist/routes/api/get/sample.js | 8 +++ server/dist/routes/api/patch/index.js | 3 + server/dist/routes/api/post/index.js | 3 + server/dist/routes/api/register.js | 38 ++++++++++ server/dist/routes/index.js | 6 +- server/dist/routes/users.js | 8 ++- server/dist/types.js | 2 + server/package.json | 1 + 15 files changed, 188 insertions(+), 80 deletions(-) create mode 100644 server/dist/helpers/paths.js create mode 100644 server/dist/helpers/port.js create mode 100644 server/dist/helpers/server-callbacks.js create mode 100644 server/dist/middlewares.js create mode 100644 server/dist/routes/api/delete/index.js create mode 100644 server/dist/routes/api/get/index.js create mode 100644 server/dist/routes/api/get/sample.js create mode 100644 server/dist/routes/api/patch/index.js create mode 100644 server/dist/routes/api/post/index.js create mode 100644 server/dist/routes/api/register.js create mode 100644 server/dist/types.js diff --git a/server/dist/app.js b/server/dist/app.js index d23775d..2464603 100644 --- a/server/dist/app.js +++ b/server/dist/app.js @@ -3,88 +3,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -const path_1 = __importDefault(require("path")); const http_1 = __importDefault(require("http")); const express_1 = __importDefault(require("express")); -const cookie_parser_1 = __importDefault(require("cookie-parser")); -const morgan_1 = __importDefault(require("morgan")); 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 ROOT_DIR = path_1.default.resolve('../'); +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(); -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(path_1.default.join(ROOT_DIR, 'webui', 'public'))); +const server = http_1.default.createServer(app); +/* === Middlewares === */ +middlewares_1.registerMiddlewares(app); +/* === Routes === */ app.use('/', routes_1.default); app.use('/users', users_1.default); -/** - * Module dependencies. - */ -const debug = debug_1.default('deemix-gui:server'); -/** - * Get port from environment and store in Express. - */ -const port = normalizePort(process.env.PORT || '3000'); -app.set('port', port); -/** - * Create HTTP server. - */ -const server = http_1.default.createServer(app); -/** - * Listen on provided port, on all network interfaces. - */ -server.listen(port); -server.on('error', onError); -server.on('listening', onListening); -/** - * Normalize a port into a number, string, or false. - */ -function normalizePort(val) { - const port = parseInt(val, 10); - if (isNaN(port)) { - // named pipe - return val; - } - if (port >= 0) { - // port number - return port; - } - return false; -} -/** - * Event listener for HTTP server "error" event. - */ -function onError(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; - } -} -/** - * Event listener for HTTP server "listening" event. - */ -function onListening() { - const addr = server.address(); - if (addr) { - const bind = typeof addr === 'string' - ? 'pipe ' + addr - : 'port ' + addr.port; - debug('Listening on ' + bind); - } -} +/* === 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)); diff --git a/server/dist/helpers/paths.js b/server/dist/helpers/paths.js new file mode 100644 index 0000000..0dcbdc3 --- /dev/null +++ b/server/dist/helpers/paths.js @@ -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'); diff --git a/server/dist/helpers/port.js b/server/dist/helpers/port.js new file mode 100644 index 0000000..3fce70a --- /dev/null +++ b/server/dist/helpers/port.js @@ -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; diff --git a/server/dist/helpers/server-callbacks.js b/server/dist/helpers/server-callbacks.js new file mode 100644 index 0000000..734dc74 --- /dev/null +++ b/server/dist/helpers/server-callbacks.js @@ -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; diff --git a/server/dist/middlewares.js b/server/dist/middlewares.js new file mode 100644 index 0000000..df63d29 --- /dev/null +++ b/server/dist/middlewares.js @@ -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; diff --git a/server/dist/routes/api/delete/index.js b/server/dist/routes/api/delete/index.js new file mode 100644 index 0000000..72df421 --- /dev/null +++ b/server/dist/routes/api/delete/index.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = []; diff --git a/server/dist/routes/api/get/index.js b/server/dist/routes/api/get/index.js new file mode 100644 index 0000000..6c4c2de --- /dev/null +++ b/server/dist/routes/api/get/index.js @@ -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]; diff --git a/server/dist/routes/api/get/sample.js b/server/dist/routes/api/get/sample.js new file mode 100644 index 0000000..07d1f72 --- /dev/null +++ b/server/dist/routes/api/get/sample.js @@ -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; diff --git a/server/dist/routes/api/patch/index.js b/server/dist/routes/api/patch/index.js new file mode 100644 index 0000000..72df421 --- /dev/null +++ b/server/dist/routes/api/patch/index.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = []; diff --git a/server/dist/routes/api/post/index.js b/server/dist/routes/api/post/index.js new file mode 100644 index 0000000..72df421 --- /dev/null +++ b/server/dist/routes/api/post/index.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = []; diff --git a/server/dist/routes/api/register.js b/server/dist/routes/api/register.js new file mode 100644 index 0000000..54c0d23 --- /dev/null +++ b/server/dist/routes/api/register.js @@ -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; diff --git a/server/dist/routes/index.js b/server/dist/routes/index.js index 0036960..befaec0 100644 --- a/server/dist/routes/index.js +++ b/server/dist/routes/index.js @@ -5,7 +5,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); const express_1 = __importDefault(require("express")); const router = express_1.default.Router(); -/* GET home page. */ +/** + * GET home page + * + * @since 0.0.0 + */ router.get('/', (_, res) => { res.render('index', { title: 'Express' }); }); diff --git a/server/dist/routes/users.js b/server/dist/routes/users.js index 574e6cb..29ccfbb 100644 --- a/server/dist/routes/users.js +++ b/server/dist/routes/users.js @@ -5,8 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); const express_1 = __importDefault(require("express")); const router = express_1.default.Router(); -/* GET users listing. */ -router.get('/', function (_, res) { +/** + * GET users listing. + * + * @since 0.0.0 + */ +router.get('/', (_, res) => { res.send('respond with a resource'); }); exports.default = router; diff --git a/server/dist/types.js b/server/dist/types.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/server/dist/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/server/package.json b/server/package.json index 40ed558..27267bf 100644 --- a/server/package.json +++ b/server/package.json @@ -5,6 +5,7 @@ "scripts": { "start-old": "node bin/www", "start": "nodemon src/app.ts", + "start-build": "node dist/app.js", "lint": "eslint . --fix", "prebuild": "yarn lint", "build": "tsc"