@forge/cli
12.11.012.12.0-next.9
out/command-line/register-environments-commands.jsout/command-line/register-environments-commands.js+48−25
Index: package/out/command-line/register-environments-commands.js
===================================================================
--- package/out/command-line/register-environments-commands.js
+++ package/out/command-line/register-environments-commands.js
@@ -20,36 +20,58 @@
ui.emptyLine();
ui.info(cli_shared_1.Text.createEnvironment.successMessage);
};
exports.createEnvironmentHandler = createEnvironmentHandler;
-const listEnvironmentHandler = async (ui, listEnvironmentCommand) => {
+const listEnvironmentHandler = async (ui, listEnvironmentCommand, options = {}) => {
const envOrder = {
PRODUCTION: 1,
STAGING: 2,
DEVELOPMENT: 3
};
- const environments = (await listEnvironmentCommand.execute()).sort((a, b) => a.type === b.type ? Number(a.lastDeployedAt) - Number(b.lastDeployedAt) : envOrder[a.type] - envOrder[b.type]);
- ui.table([
- ['id', 'Environment ID'],
- ['type', 'Type'],
- ['name', 'Name'],
- ['lastDeployedAt', 'Last deployed at']
- ], environments.map(({ id, type, key, lastDeployedAt }) => {
- return {
- id,
- type,
- name: (0, cli_shared_1.environmentToOption)(key),
- lastDeployedAt
- };
- }), {
- preMessage: cli_shared_1.Text.listEnvironment.overview,
- format: {
- lastDeployedAt: (value) => new Date(Number(value)).toISOString()
- },
- groupRows: {
- type: true
+ const displayEnvironments = (environments) => {
+ const sortedEnvironments = environments.sort((a, b) => a.type === b.type ? Number(a.lastDeployedAt) - Number(b.lastDeployedAt) : envOrder[a.type] - envOrder[b.type]);
+ ui.table([
+ ['id', 'Environment ID'],
+ ['type', 'Type'],
+ ['name', 'Name'],
+ ['lastDeployedAt', 'Last deployed at']
+ ], sortedEnvironments.map(({ id, type, key, lastDeployedAt }) => {
+ return {
+ id,
+ type,
+ name: (0, cli_shared_1.environmentToOption)(key),
+ lastDeployedAt
+ };
+ }), {
+ format: {
+ lastDeployedAt: (value) => new Date(Number(value)).toISOString()
+ },
+ groupRows: {
+ type: true
+ }
+ });
+ };
+ ui.info(cli_shared_1.Text.listEnvironment.overview);
+ if (options.nonInteractive) {
+ ui.emptyLine();
+ const environments = await ui.displayProgress(() => listEnvironmentCommand.fetchAll(), cli_shared_1.Text.listEnvironment.start, cli_shared_1.Text.listEnvironment.success);
+ displayEnvironments(environments);
+ return;
+ }
+ ui.info(cli_shared_1.Text.ctrlC);
+ ui.emptyLine();
+ let cursor;
+ do {
+ const { environments, hasPreviousPage, startCursor } = await ui.displayProgress(() => listEnvironmentCommand.fetchPage(cursor), cli_shared_1.Text.listEnvironment.start, cli_shared_1.Text.listEnvironment.success);
+ displayEnvironments(environments);
+ cursor = hasPreviousPage ? startCursor : undefined;
+ if (cursor) {
+ ui.emptyLine();
+ if (!(await ui.confirm(cli_shared_1.Text.listEnvironment.promptNextPage))) {
+ cursor = undefined;
+ }
}
- });
+ } while (cursor);
};
exports.listEnvironmentHandler = listEnvironmentHandler;
const deleteEnvironmentHandler = async (ui, options, listEnvironmentCommand, deleteEnvironmentCommand) => {
let confirmDeleteEnvironments = false;
@@ -77,9 +99,9 @@
displayDeleteResult(ui, deletedEnvironments, successful);
};
exports.deleteEnvironmentHandler = deleteEnvironmentHandler;
const getEnvironmentKeysToDelete = async (ui, listEnvironmentCommand) => {
- const environments = (await listEnvironmentCommand.execute())
+ const environments = (await ui.displayProgress(() => listEnvironmentCommand.fetchAll(), cli_shared_1.Text.listEnvironment.start, cli_shared_1.Text.listEnvironment.success))
.filter((env) => env.type === cli_shared_1.AppEnvironmentType.Development && env.key !== cli_shared_1.DEFAULT_ENVIRONMENT_KEY)
.sort((a, b) => Number(a.lastDeployedAt) - Number(b.lastDeployedAt));
if (environments.length === 0) {
ui.info(cli_shared_1.Text.deleteEnvironment.noEnvironmentMessage);
@@ -152,10 +174,11 @@
parent
.command('list')
.requireAppId()
.description(cli_shared_1.Text.listEnvironment.cmd.desc)
- .action(async () => {
- await (0, exports.listEnvironmentHandler)(ui, listEnvironmentCommand);
+ .nonInteractiveOption()
+ .action(async (options) => {
+ await (0, exports.listEnvironmentHandler)(ui, listEnvironmentCommand, options);
});
};
const registerDeleteEnvironmentsCommand = (parent, { ui, commands: { listEnvironmentCommand, deleteEnvironmentCommand } }) => {
parent