UNPKG

@forestadmin/forest-cloud

Version:

Utility to bootstrap and publish forest admin cloud projects customization

53 lines 6.43 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = __importDefault(require("fs")); const action_runner_1 = __importDefault(require("../dialogs/action-runner")); const check_latest_version_1 = __importDefault(require("../dialogs/check-latest-version")); const errors_1 = require("../errors"); const environment_variables_1 = require("../services/environment-variables"); const http_server_1 = __importDefault(require("../services/http-server")); const starting_agent_locally_1 = require("../services/starting-agent-locally"); const shared_1 = require("../shared"); exports.default = (program, context) => { const { logger, getCurrentVersion, buildHttpServer, login, getEnvironmentVariables, generateDatasourceConfigFile, distPathManager, } = context; const agentLogger = (level, ...args) => { const loggerLevel = process.env.LOG_LEVEL ?? 'Info'; const levels = ['Debug', 'Info', 'Warn', 'Error']; if (levels.indexOf(level) >= levels.indexOf(loggerLevel)) { logger[level.toLowerCase()](...args); } }; program .command('start') .description('Starts the agent locally to test your code customizations before publishing to your production environment.') .action((0, action_runner_1.default)(logger.spinner, async () => { await (0, check_latest_version_1.default)(logger.spinner, getCurrentVersion(), http_server_1.default.getLatestVersion); logger.info('Starting agent locally…'); const vars = await (0, shared_1.loginIfMissingAuthAndReturnEnvironmentVariables)(login, logger, getEnvironmentVariables); (0, environment_variables_1.validateEnvironmentVariables)(vars); // Check that /d.forest/.environments does contains env secret yet if (!fs_1.default.existsSync(distPathManager.localCloudEnvironmentConfigPath)) { fs_1.default.writeFileSync(distPathManager.localCloudEnvironmentConfigPath, JSON.stringify({})); } // eslint-disable-next-line import/no-dynamic-require, global-require, @typescript-eslint/no-var-requires const localCloudEnvironmentsConfig = require(distPathManager.localCloudEnvironmentConfigPath); let environmentSecret = localCloudEnvironmentsConfig[`${vars.FOREST_ENV_SECRET}`]; if (!environmentSecret) { environmentSecret = (await buildHttpServer(vars).getOrCreateNewDevelopmentEnvironment()) .data.attributes.secret_key; // Add it to local variables localCloudEnvironmentsConfig[`${vars.FOREST_ENV_SECRET}`] = environmentSecret; fs_1.default.writeFileSync(distPathManager.localCloudEnvironmentConfigPath, JSON.stringify(localCloudEnvironmentsConfig)); } // Check that the user has the datasource connection options file if (!fs_1.default.existsSync(distPathManager.localDatasourcesPath)) { await generateDatasourceConfigFile(distPathManager.localDatasourcesPath); throw new errors_1.BusinessError(`Could not find configuration for your local datasource connection options. A new file (${distPathManager.localDatasourcesPath}) has been generated. Please complete it with your local database credentials.`); } await (0, starting_agent_locally_1.startingAgent)(distPathManager, { forestServerUrl: vars.FOREST_SERVER_URL, envSecret: environmentSecret }, agentLogger); })); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvc3RhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSw0Q0FBb0I7QUFFcEIsNkVBQW9EO0FBQ3BELDJGQUFpRTtBQUNqRSxzQ0FBMEM7QUFDMUMsNkVBQWlGO0FBQ2pGLDBFQUFpRDtBQUNqRCwrRUFBbUU7QUFDbkUsc0NBQTRFO0FBRzVFLGtCQUFlLENBQUMsT0FBZ0IsRUFBRSxPQUFxQixFQUFFLEVBQUU7SUFDekQsTUFBTSxFQUNKLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsZUFBZSxFQUNmLEtBQUssRUFDTCx1QkFBdUIsRUFDdkIsNEJBQTRCLEVBQzVCLGVBQWUsR0FDaEIsR0FBRyxPQUFPLENBQUM7SUFFWixNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQWEsRUFBRSxHQUFHLElBQWUsRUFBRSxFQUFFO1FBQ3hELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQztRQUNwRCxNQUFNLE1BQU0sR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRWxELElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3hELE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsT0FBTztTQUNKLE9BQU8sQ0FBQyxPQUFPLENBQUM7U0FDaEIsV0FBVyxDQUNWLDZHQUE2RyxDQUM5RztTQUNBLE1BQU0sQ0FDTCxJQUFBLHVCQUFZLEVBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRTtRQUN0QyxNQUFNLElBQUEsOEJBQWtCLEVBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxFQUFFLHFCQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUUzRixNQUFNLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDdkMsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLHdEQUErQyxFQUNoRSxLQUFLLEVBQ0wsTUFBTSxFQUNOLHVCQUF1QixDQUN4QixDQUFDO1FBQ0YsSUFBQSxvREFBNEIsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUVuQyxrRUFBa0U7UUFDbEUsSUFBSSxDQUFDLFlBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLCtCQUErQixDQUFDLEVBQUU7WUFDbkUsWUFBRSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsK0JBQStCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3ZGO1FBRUQseUdBQXlHO1FBQ3pHLE1BQU0sNEJBQTRCLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBRTlGLElBQUksaUJBQWlCLEdBQUcsNEJBQTRCLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBRWxGLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN0QixpQkFBaUIsR0FBRyxDQUFDLE1BQU0sZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLG9DQUFvQyxFQUFFLENBQUM7aUJBQ3JGLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1lBRTlCLDRCQUE0QjtZQUM1Qiw0QkFBNEIsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEdBQUcsaUJBQWlCLENBQUM7WUFDOUUsWUFBRSxDQUFDLGFBQWEsQ0FDZCxlQUFlLENBQUMsK0JBQStCLEVBQy9DLElBQUksQ0FBQyxTQUFTLENBQUMsNEJBQTRCLENBQUMsQ0FDN0MsQ0FBQztTQUNIO1FBRUQsaUVBQWlFO1FBQ2pFLElBQUksQ0FBQyxZQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO1lBQ3hELE1BQU0sNEJBQTRCLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDekUsTUFBTSxJQUFJLHNCQUFhLENBQ3JCLDBGQUEwRixlQUFlLENBQUMsb0JBQW9CLGdGQUFnRixDQUMvTSxDQUFDO1NBQ0g7UUFFRCxNQUFNLElBQUEsc0NBQWEsRUFDakIsZUFBZSxFQUNmLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsRUFDekUsV0FBVyxDQUNaLENBQUM7SUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ04sQ0FBQyxDQUFDIn0=