UNPKG

smc-hub

Version:

CoCalc: Backend webserver component

52 lines 2.16 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.COCALC_MODES = void 0; var database_1 = require("./database"); var logger_1 = require("../logger"); var connect_to_project = require("../local_hub_connection").connect_to_project; var single_user_1 = __importDefault(require("smc-hub/project-control/single-user")); var multi_user_1 = __importDefault(require("smc-hub/project-control/multi-user")); var kucalc_1 = __importDefault(require("smc-hub/project-control/kucalc")); var kubernetes_1 = __importDefault(require("smc-hub/project-control/kubernetes")); exports.COCALC_MODES = [ "single-user", "multi-user", "kucalc", "kubernetes", ]; function init(program) { var winston = logger_1.getLogger("project-control"); winston.info("creating project control client"); var getProject; switch (program.mode) { case "single-user": getProject = single_user_1.default; break; case "multi-user": getProject = multi_user_1.default; break; case "kucalc": getProject = kucalc_1.default; break; case "kubernetes": getProject = kubernetes_1.default; break; default: throw Error("invalid mode \"" + program.mode + "\""); } winston.info("project controller created with mode " + program.mode); database_1.database.compute_server = getProject; // This is used by the database when handling certain writes to make sure // that the there is a connection to the corresponding project, so that // the project can respond. // TODO: obviously, this is ugly! database_1.database.ensure_connection_to_project = function (project_id, cb) { winston.debug("database.ensure_connection_to_project -- project_id=" + project_id); connect_to_project(project_id, database_1.database, getProject, cb); }; return getProject; } exports.default = init; //# sourceMappingURL=project-control.js.map