@topgroup/diginext
Version:
A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.
79 lines (78 loc) • 3.38 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const class_validator_1 = require("class-validator");
const dayjs_1 = __importDefault(require("dayjs"));
const localizedFormat_1 = __importDefault(require("dayjs/plugin/localizedFormat"));
const response_1 = require("diginext-utils/dist/response");
const log_1 = require("diginext-utils/dist/xconsole/log");
const express_1 = __importDefault(require("express"));
const package_json_1 = __importDefault(require("../../../package.json"));
const app_config_1 = require("../../app.config");
const build_1 = require("../../modules/build");
const build_2 = require("../../modules/build/build");
const plugins_1 = require("../../plugins");
// import userRouter from "./user";
const CLI_MODE = app_config_1.Config.grab("CLI_MODE", "client");
dayjs_1.default.extend(localizedFormat_1.default);
// initialize socket io server:
// let io;
// export const getIO = () => io;
// if (server) {
// io = new Server(server);
// global.socketServer = io;
// }
const router = express_1.default.Router();
/**
* Default route - HOME
*/
router.get("/", (req, res) => {
let str = "<h1>Diginext Build Server</h1>";
str += "<li><em>Version: " + package_json_1.default.version + "</em></li>";
str += "<li><em>Today: " + (0, dayjs_1.default)().format("LLLL") + "</em></li>";
res.send(str);
});
/**
* Health check route
*/
router.get("/healthz", (req, res) => response_1.Response.succeed(res));
/**
* Register API routes
*/
if (CLI_MODE == "server") {
(0, log_1.logWarn)(`You're running on SERVER mode.`);
router.get("/hello", (req, res) => {
res.status(200).json({ status: "Ok" });
});
router.get("/send-message", (req, res) => {
const { room, message } = req.query;
// log(io);
// io.to("2021-08-18-18-33-20").emit("message", { action: "start", message: "Hello" });
(0, build_1.sendLog)({ SOCKET_ROOM: room.toString(), message: message.toString() });
res.send("done");
});
router.get("/build-test", (req, res) => {
(0, build_2.testBuild)();
res.send("done");
});
router.get("/docker/healthz", async (req, res) => {
const resultJson = await (0, plugins_1.execCmd)(`docker version --format "{{json .}}"`);
const result = resultJson && (0, class_validator_1.isJSON)(resultJson) ? JSON.parse(resultJson) : {};
res.status(200).json(result);
});
router.get("/docker/images", async (req, res) => {
const resultStr = (await (0, plugins_1.execCmd)(`docker images --format "{{json .}}"`)) || "";
const resultJson = "[" + resultStr.split("\n").join(",") + "]";
const result = resultJson && (0, class_validator_1.isJSON)(resultJson) ? JSON.parse(resultJson) : {};
res.status(200).json(result);
});
router.get("/docker/containers", async (req, res) => {
const resultStr = (await (0, plugins_1.execCmd)(`docker ps --format "{{json .}}"`)) || "";
const resultJson = "[" + resultStr.split("\n").join(",") + "]";
const result = resultJson && (0, class_validator_1.isJSON)(resultJson) ? JSON.parse(resultJson) : {};
res.status(200).json(result);
});
}
exports.default = router;