UNPKG

@metacall/deploy

Version:

Tool for deploying into MetaCall FaaS platform.

107 lines (106 loc) 4.73 kB
#!/usr/bin/env node "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const plan_1 = require("@metacall/protocol/plan"); const protocol_1 = __importDefault(require("@metacall/protocol/protocol")); const fs_1 = require("fs"); const path_1 = require("path"); const args_1 = __importStar(require("./cli/args")); const inspect_1 = require("./cli/inspect"); const messages_1 = require("./cli/messages"); const unknown_1 = require("./cli/unknown"); const validateToken_1 = __importDefault(require("./cli/validateToken")); const delete_1 = require("./delete"); const deploy_1 = require("./deploy"); const force_1 = require("./force"); const listPlans_1 = require("./listPlans"); const logout_1 = require("./logout"); const plan_2 = require("./plan"); const startup_1 = require("./startup"); void (async () => { if (args_1.default['_unknown'].length) (0, unknown_1.handleUnknownArgs)(); if (args_1.default['version']) { return console.log(`v${(await Promise.resolve().then(() => __importStar(require((0, path_1.join)(require.main ? (0, path_1.join)((0, path_1.dirname)(require.main.filename), '..') : process.cwd(), 'package.json'))))).version}`); } if (args_1.default['logout']) return (0, logout_1.logout)(); const config = await (0, startup_1.startup)(args_1.default['confDir']); const api = (0, protocol_1.default)(config.token, args_1.default['dev'] ? config.devURL : config.baseURL); await (0, validateToken_1.default)(api); if (args_1.default['listPlans']) return await (0, listPlans_1.listPlans)(api); if (args_1.default['inspect'] === null) { args_1.default['inspect'] = args_1.InspectFormat.Table; } if (args_1.default['inspect']) return await (0, inspect_1.inspect)(args_1.default['inspect'], config, api); if (args_1.default['delete']) return await (0, delete_1.deleteBySelection)(api); if (args_1.default['force']) await (0, force_1.force)(api); // On line 63, we passed Essential to the FAAS in dev environment, // the thing is there is no need of plans in Local Faas (--dev), // this could have been handlled neatly if we created deploy as a State Machine, // think about a better way const planSelected = args_1.default['dev'] ? plan_1.Plans.Essential : await (0, plan_2.plan)(api); if (args_1.default['addrepo']) { try { return await (0, deploy_1.deployFromRepository)(api, planSelected, new URL(args_1.default['addrepo']).href); } catch (e) { (0, messages_1.error)(String(e)); } } // If workdir is passed call than deploy using package if (args_1.default['workdir']) { const rootPath = args_1.default['workdir']; try { if (!(await fs_1.promises.stat(rootPath)).isDirectory()) { return (0, messages_1.error)(`Invalid root path, ${rootPath} is not a directory.`, deploy_1.ErrorCode.NotDirectoryRootPath); } } catch (e) { return (0, messages_1.error)(`Invalid root path, ${rootPath} not found.`, deploy_1.ErrorCode.NotFoundRootPath); } try { await (0, deploy_1.deployPackage)(rootPath, api, planSelected); } catch (e) { (0, messages_1.error)(String(e)); } } if (args_1.default['serverUrl']) { config.baseURL = args_1.default['serverUrl']; } })(); // change all flag names to toUpperCase // think of a way to write test for --dev flag