UNPKG

@topgroup/diginext

Version:

A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.

79 lines (78 loc) 3.38 kB
"use strict"; 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;