@forge/cli
12.3.0-next.0-experimental-8a5377312.3.0-next.2
out/command-line/register-app-commands.js~
out/command-line/register-app-commands.jsModified+50−10
Index: package/out/command-line/register-app-commands.js
===================================================================
--- package/out/command-line/register-app-commands.js
+++ package/out/command-line/register-app-commands.js
@@ -122,18 +122,20 @@
exports.directoryNameFromAppName = directoryNameFromAppName;
async function createCommandHandler(ui, createAppCommand, name, { template, directory }, devSpaceService, statsigService) {
const isDevSpaceSelectionEnabled = await statsigService.isDevSpaceSelectionEnabled();
let isNewlyCreatedDevSpace = false;
+ let devSpaceId;
if (isDevSpaceSelectionEnabled) {
ui.emptyLine();
ui.info(cli_shared_1.Text.ctrlC);
ui.emptyLine();
const devSpaces = await devSpaceService.getDevSpaces(ui);
- const devSpaceResult = await devSpaceService.selectDevSpace(ui, devSpaces);
+ const devSpaceResult = await devSpaceService.selectDevSpace(ui, devSpaces, 'create');
if (!devSpaceResult) {
return;
}
isNewlyCreatedDevSpace = devSpaceResult.isNewlyCreated;
+ devSpaceId = devSpaceResult.devSpace.id;
ui.emptyLine();
if (!isNewlyCreatedDevSpace) {
ui.info(cli_shared_1.Text.devSpace.contributingToSpace(devSpaceResult.devSpace.name));
}
@@ -151,9 +153,10 @@
const args = {
name,
template,
directory,
- ...(selection.requiredContext && { requiredProduct: selection.requiredContext })
+ ...(selection.requiredContext && { requiredProduct: selection.requiredContext }),
+ ...(devSpaceId && { developerSpaceId: devSpaceId })
};
const result = await ui.displayProgress(() => createAppCommand.execute(args), cli_shared_1.Text.create.cmd.start, cli_shared_1.Text.create.cmd.success(name));
ui.info(cli_shared_1.Text.create.cmd.successDetails(directory, result.environments));
return result;
@@ -183,17 +186,19 @@
!isNewlyCreatedDevSpace && ui.info(cli_shared_1.Text.devSpace.terms.pricing(name));
ui.emptyLine();
const accepted = await ui.confirm(cli_shared_1.Text.devSpace.terms.acceptPrompt);
if (!accepted) {
- throw new cli_shared_1.ValidationError('You must accept the terms and conditions to create an app.');
+ throw new cli_shared_1.ValidationError('You must accept the terms and conditions');
}
- ui.info(cli_shared_1.Text.devSpace.terms.accepted);
}
async function promptAndValidateAppName(ui, name, directory, template, isDevSpaceSelectionEnabled, isNewlyCreatedDevSpace) {
if (!name) {
ui.info(cli_shared_1.Text.create.overviewAppName);
name = await ui.promptForText(cli_shared_1.Text.create.promptName);
- isDevSpaceSelectionEnabled && (await promptAndAcceptTerms(ui, name, isNewlyCreatedDevSpace || false));
+ if (isDevSpaceSelectionEnabled) {
+ await promptAndAcceptTerms(ui, name, isNewlyCreatedDevSpace || false);
+ ui.info(cli_shared_1.Text.devSpace.terms.accepted('creation'));
+ }
if (!directory) {
directory = directoryNameFromAppName(name) || template;
if (directory) {
ensureDirectoryDoesntExist(directory);
@@ -270,23 +275,58 @@
.option('-t, --template <template name>', cli_shared_1.Text.create.optionTemplate)
.option('-d, --directory <directory name>', cli_shared_1.Text.create.optionDirectory)
.action((name, options) => createCommandHandler(ui, createAppCommand, name, options, devSpaceService, statsigService));
}
-function registerRegisterCommand({ cmd, ui, commands: { registerAppCommand } }) {
+function registerRegisterCommand({ cmd, ui, commands: { registerAppCommand }, services: { devSpaceService, statsigService } }) {
cmd
.command('register [name]')
.description(cli_shared_1.Text.register.cmd.desc)
.requireManifestFile()
.action(async (name) => {
- ui.info(cli_shared_1.Text.register.intro);
- ui.info(cli_shared_1.Text.ctrlC);
- ui.emptyLine();
+ const isDevSpaceSelectionEnabled = await statsigService.isDevSpaceSelectionEnabled();
+ let isNewlyCreatedDevSpace = false;
+ let devSpaceId;
+ if (isDevSpaceSelectionEnabled) {
+ ui.emptyLine();
+ ui.info(cli_shared_1.Text.ctrlC);
+ ui.emptyLine();
+ const devSpaces = await devSpaceService.getDevSpaces(ui);
+ if (devSpaces.length) {
+ ui.info(cli_shared_1.Text.devSpace.assignmentInfo);
+ ui.emptyLine();
+ ui.info(cli_shared_1.Text.devSpace.selectionPrompt);
+ ui.emptyLine();
+ }
+ const devSpaceResult = await devSpaceService.selectDevSpace(ui, devSpaces, 'register');
+ if (!devSpaceResult) {
+ return;
+ }
+ ui.emptyLine();
+ isNewlyCreatedDevSpace = devSpaceResult.isNewlyCreated;
+ devSpaceId = devSpaceResult.devSpace.id;
+ if (!isNewlyCreatedDevSpace) {
+ ui.info(cli_shared_1.Text.devSpace.assigningToSpace(devSpaceResult.devSpace.name));
+ }
+ ui.clearSpinner();
+ ui.info(cli_shared_1.Text.register.intro);
+ }
+ if (!isDevSpaceSelectionEnabled) {
+ ui.info(cli_shared_1.Text.register.intro);
+ ui.info(cli_shared_1.Text.ctrlC);
+ ui.emptyLine();
+ }
if (!name) {
ui.info(cli_shared_1.Text.create.overviewAppName);
name = await ui.promptForText(cli_shared_1.Text.create.promptName);
ui.emptyLine();
}
- const result = await ui.displayProgress(() => registerAppCommand.execute({ name }), cli_shared_1.Text.register.cmd.start, cli_shared_1.Text.register.cmd.success(name));
+ if (isDevSpaceSelectionEnabled) {
+ await promptAndAcceptTerms(ui, name, isNewlyCreatedDevSpace || false);
+ ui.info(cli_shared_1.Text.devSpace.terms.accepted('registration'));
+ ui.emptyLine();
+ }
+ const executeArgs = { name, ...(devSpaceId && { developerSpaceId: devSpaceId }) };
+ const result = await ui.displayProgress(() => registerAppCommand.execute(executeArgs), cli_shared_1.Text.register.cmd.start, cli_shared_1.Text.register.cmd.success(name));
ui.info(cli_shared_1.Text.register.cmd.successDetails(result.environments));
return result;
});
}