build: v0.0.0; workflow: added start-build command
This commit is contained in:
parent
db7e07bd1d
commit
2223750e91
|
@ -3,88 +3,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const path_1 = __importDefault(require("path"));
|
|
||||||
const http_1 = __importDefault(require("http"));
|
const http_1 = __importDefault(require("http"));
|
||||||
const express_1 = __importDefault(require("express"));
|
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 debug_1 = __importDefault(require("debug"));
|
||||||
|
const middlewares_1 = require("./middlewares");
|
||||||
const routes_1 = __importDefault(require("./routes"));
|
const routes_1 = __importDefault(require("./routes"));
|
||||||
const users_1 = __importDefault(require("./routes/users"));
|
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();
|
const app = express_1.default();
|
||||||
app.use(morgan_1.default('dev'));
|
const server = http_1.default.createServer(app);
|
||||||
app.use(express_1.default.json());
|
/* === Middlewares === */
|
||||||
app.use(express_1.default.urlencoded({ extended: false }));
|
middlewares_1.registerMiddlewares(app);
|
||||||
app.use(cookie_parser_1.default());
|
/* === Routes === */
|
||||||
app.use(express_1.default.static(path_1.default.join(ROOT_DIR, 'webui', 'public')));
|
|
||||||
app.use('/', routes_1.default);
|
app.use('/', routes_1.default);
|
||||||
app.use('/users', users_1.default);
|
app.use('/users', users_1.default);
|
||||||
/**
|
/* === APIs === */
|
||||||
* Module dependencies.
|
register_1.registerApis(app);
|
||||||
*/
|
/* === Config === */
|
||||||
const debug = debug_1.default('deemix-gui:server');
|
app.set('port', PORT);
|
||||||
/**
|
/* === Server port === */
|
||||||
* Get port from environment and store in Express.
|
server.listen(PORT);
|
||||||
*/
|
/* === Server callbacks === */
|
||||||
const port = normalizePort(process.env.PORT || '3000');
|
server.on('error', server_callbacks_1.getErrorCb(PORT));
|
||||||
app.set('port', port);
|
server.on('listening', server_callbacks_1.getListeningCb(server, debug));
|
||||||
/**
|
|
||||||
* 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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -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');
|
|
@ -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;
|
|
@ -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;
|
|
@ -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;
|
|
@ -0,0 +1,3 @@
|
||||||
|
"use strict";
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.default = [];
|
|
@ -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];
|
|
@ -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;
|
|
@ -0,0 +1,3 @@
|
||||||
|
"use strict";
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.default = [];
|
|
@ -0,0 +1,3 @@
|
||||||
|
"use strict";
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.default = [];
|
|
@ -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;
|
|
@ -5,7 +5,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const express_1 = __importDefault(require("express"));
|
const express_1 = __importDefault(require("express"));
|
||||||
const router = express_1.default.Router();
|
const router = express_1.default.Router();
|
||||||
/* GET home page. */
|
/**
|
||||||
|
* GET home page
|
||||||
|
*
|
||||||
|
* @since 0.0.0
|
||||||
|
*/
|
||||||
router.get('/', (_, res) => {
|
router.get('/', (_, res) => {
|
||||||
res.render('index', { title: 'Express' });
|
res.render('index', { title: 'Express' });
|
||||||
});
|
});
|
||||||
|
|
|
@ -5,8 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const express_1 = __importDefault(require("express"));
|
const express_1 = __importDefault(require("express"));
|
||||||
const router = express_1.default.Router();
|
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');
|
res.send('respond with a resource');
|
||||||
});
|
});
|
||||||
exports.default = router;
|
exports.default = router;
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
"use strict";
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@ -5,6 +5,7 @@
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start-old": "node bin/www",
|
"start-old": "node bin/www",
|
||||||
"start": "nodemon src/app.ts",
|
"start": "nodemon src/app.ts",
|
||||||
|
"start-build": "node dist/app.js",
|
||||||
"lint": "eslint . --fix",
|
"lint": "eslint . --fix",
|
||||||
"prebuild": "yarn lint",
|
"prebuild": "yarn lint",
|
||||||
"build": "tsc"
|
"build": "tsc"
|
||||||
|
|
Loading…
Reference in New Issue