forest-cli
Version:
The Lumberjacks' toolbelt is the Forest CLI which makes easy to manage your back office application directly from the terminal.
57 lines • 5.64 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.resolveCommandScope = void 0;
const ask_for_environment_1 = __importDefault(require("../ask-for-environment"));
const ask_for_team_1 = __importDefault(require("../ask-for-team"));
const environment_manager_1 = __importDefault(require("../environment-manager"));
const project_manager_1 = __importDefault(require("../project-manager"));
const team_manager_1 = __importDefault(require("../team-manager"));
const with_current_project_1 = __importDefault(require("../with-current-project"));
const scope_resolver_1 = require("./scope-resolver");
/** Resolve the environment to pull: flag → interactive prompt. */
async function resolveEnvironment(config, environments, explicit) {
if (explicit)
return (0, scope_resolver_1.findByFlag)('Environment', explicit, environments);
const types = [...new Set(environments.map(environment => environment.type).filter(Boolean))];
const name = await (0, ask_for_environment_1.default)(config, 'Select the environment to pull the layout from', types);
return (0, scope_resolver_1.findByFlag)('Environment', name, environments);
}
/** Resolve the team to pull: flag → interactive prompt (a secret cannot designate a team). */
async function resolveTeam(config, teams, explicit) {
if (explicit)
return (0, scope_resolver_1.findByFlag)('Team', explicit, teams);
const name = await (0, ask_for_team_1.default)(config, 'Select the team whose layout to pull');
return (0, scope_resolver_1.findByFlag)('Team', name, teams);
}
/** Resolve the full layout scope for a command run (ids + names). */
async function resolveCommandScope(options) {
const { baseEnv, flags } = options;
const config = await (0, with_current_project_1.default)({
...baseEnv,
projectId: flags.projectId,
});
const project = await new project_manager_1.default(config).getProject();
if (!project) {
throw new scope_resolver_1.ScopeError(`Project #${config.projectId} not found, or you cannot access it.`);
}
const [environments, teams] = await Promise.all([
new environment_manager_1.default(config).listEnvironments(),
new team_manager_1.default(config).listForProject(),
]);
const environment = await resolveEnvironment(config, environments, flags.env);
const team = await resolveTeam(config, teams, flags.team);
return {
environmentId: Number(environment.id),
environmentName: environment.name,
projectId: Number(project.id),
projectName: project.name,
serverUrl: baseEnv.FOREST_SERVER_URL,
teamId: Number(team.id),
teamName: team.name,
};
}
exports.resolveCommandScope = resolveCommandScope;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1jb21tYW5kLXNjb3BlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2xheW91dC9yZXNvbHZlLWNvbW1hbmQtc2NvcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBZUEsaUZBQXVEO0FBQ3ZELG1FQUF5QztBQUN6QyxpRkFBd0Q7QUFDeEQseUVBQWdEO0FBQ2hELG1FQUEwQztBQUMxQyxtRkFBeUQ7QUFDekQscURBQTBEO0FBTzFELGtFQUFrRTtBQUNsRSxLQUFLLFVBQVUsa0JBQWtCLENBQy9CLE1BQWdFLEVBQ2hFLFlBQXlCLEVBQ3pCLFFBQWlCO0lBRWpCLElBQUksUUFBUTtRQUFFLE9BQU8sSUFBQSwyQkFBVSxFQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFFdkUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RixNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsNkJBQWlCLEVBQ2xDLE1BQU0sRUFDTixnREFBZ0QsRUFDaEQsS0FBSyxDQUNOLENBQUM7SUFFRixPQUFPLElBQUEsMkJBQVUsRUFBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFFRCw4RkFBOEY7QUFDOUYsS0FBSyxVQUFVLFdBQVcsQ0FDeEIsTUFBZ0UsRUFDaEUsS0FBa0IsRUFDbEIsUUFBaUI7SUFFakIsSUFBSSxRQUFRO1FBQUUsT0FBTyxJQUFBLDJCQUFVLEVBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUV6RCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsc0JBQVUsRUFBQyxNQUFNLEVBQUUsc0NBQXNDLENBQUMsQ0FBQztJQUU5RSxPQUFPLElBQUEsMkJBQVUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxxRUFBcUU7QUFDOUQsS0FBSyxVQUFVLG1CQUFtQixDQUN2QyxPQUFtQztJQUVuQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUVuQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsOEJBQWtCLEVBQUM7UUFDdEMsR0FBRyxPQUFPO1FBQ1YsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO0tBQzNCLENBQUMsQ0FBQztJQUVILE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSx5QkFBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzlELElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDWixNQUFNLElBQUksMkJBQVUsQ0FBQyxZQUFZLE1BQU0sQ0FBQyxTQUFTLHNDQUFzQyxDQUFDLENBQUM7S0FDMUY7SUFFRCxNQUFNLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUM5QyxJQUFJLDZCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLGdCQUFnQixFQUFFO1FBQ2pELElBQUksc0JBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLEVBQUU7S0FDekMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxXQUFXLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5RSxNQUFNLElBQUksR0FBRyxNQUFNLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUxRCxPQUFPO1FBQ0wsYUFBYSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQ3JDLGVBQWUsRUFBRSxXQUFXLENBQUMsSUFBSTtRQUNqQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDN0IsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ3pCLFNBQVMsRUFBRSxPQUFPLENBQUMsaUJBQWlCO1FBQ3BDLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUk7S0FDcEIsQ0FBQztBQUNKLENBQUM7QUFoQ0Qsa0RBZ0NDIn0=