@metacall/faas
Version:
Reimplementation of MetaCall FaaS platform written in TypeScript.
33 lines (32 loc) • 1.31 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.deploy = void 0;
const os_1 = require("os");
const appError_1 = __importDefault(require("../utils/appError"));
const app_1 = require("../app");
const deploy_1 = require("../utils/deploy");
const install_1 = require("../utils/install");
const catch_1 = require("./catch");
exports.deploy = catch_1.catchAsync(async (req, res, next) => {
try {
const application = app_1.Applications[req.body.suffix];
// Check if the application exists and it is stored
if (!(application === null || application === void 0 ? void 0 : application.resource)) {
throw new appError_1.default(`Invalid deployment id: ${req.body.suffix}`, 400);
}
const resource = await application.resource;
await install_1.installDependencies(resource);
await deploy_1.deployProcess(resource);
return res.status(200).json({
prefix: os_1.hostname(),
suffix: resource === null || resource === void 0 ? void 0 : resource.id,
version: 'v1'
});
}
catch (err) {
return next(err);
}
});