@forge/cli
12.22.012.22.0-experimental-04cc2b9
out/command-line/command.js~
out/command-line/command.jsModified+23−10
Index: package/out/command-line/command.js
===================================================================
--- package/out/command-line/command.js
+++ package/out/command-line/command.js
@@ -1,9 +1,14 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.environmentPrecondition = exports.validateShardContext = exports.validateContext = exports.getAutocompleteConfig = exports.Command = exports.WrapperError = void 0;
+exports.Command = exports.WrapperError = void 0;
+exports.getAutocompleteConfig = getAutocompleteConfig;
+exports.validateContext = validateContext;
+exports.validateShardContext = validateShardContext;
+exports.environmentPrecondition = environmentPrecondition;
const tslib_1 = require("tslib");
const commander_1 = tslib_1.__importStar(require("commander"));
+const ari_1 = require("@forge/util/packages/ari");
const semver_1 = tslib_1.__importDefault(require("semver"));
const cli_shared_1 = require("@forge/cli-shared");
const environment_1 = require("./environment");
const version_info_1 = require("./version-info");
@@ -162,9 +167,14 @@
}
requireManifestFile() {
return this.precondition(this.preCommandController.verifyManifestExists());
}
- requireAppId() {
+ requireAppId(allowOverride = false) {
+ if (allowOverride) {
+ const option = new commander_1.Option('--app-id-override <appId>', cli_shared_1.Text.appIdOverride.desription).argParser((value) => ari_1.EcosystemAppAri.create({ appId: value }).toString());
+ this.cmd.addOption(option);
+ return this;
+ }
return this.precondition(this.preCommandController.verifyManifestExistsWithAppConfig());
}
nonInteractiveOption(...args) {
return this.clone({ requiredOptionFlags: args }).option('--non-interactive', cli_shared_1.Text.nonInteractive.description);
@@ -205,10 +215,10 @@
return `with options ${JSON.stringify(argv)}`;
}
return '';
}
- environmentOption() {
- return this.option('-e, --environment [environment]', cli_shared_1.Text.env.option).precondition(environmentPrecondition('environment', this.defaultEnvironmentController));
+ environmentOption(requireEnvironmentWithAppIdOverride = false) {
+ return this.option('-e, --environment [environment]', cli_shared_1.Text.env.option).precondition(environmentPrecondition('environment', this.defaultEnvironmentController, requireEnvironmentWithAppIdOverride));
}
contextOption() {
const supportedProductsService = this.supportedProductsService;
return this.option('-s, --site [site]', cli_shared_1.Text.optionSite)
@@ -464,9 +474,8 @@
}
const options = getOptionsData(cmd);
return { commands, options };
}
-exports.getAutocompleteConfig = getAutocompleteConfig;
function validateContext({ supportedProductsService, site, product }) {
let maybeSupportedProduct = undefined;
let maybeSiteUrl = undefined;
if (product !== undefined) {
@@ -482,9 +491,8 @@
maybeSiteUrl = supportedProductsService.validateSite(site, maybeSupportedProduct);
}
return { site: maybeSiteUrl, product: maybeSupportedProduct };
}
-exports.validateContext = validateContext;
function validateShardContext(shard) {
if (shard) {
const [id, region, ...rest] = shard.split(':');
if (!id || !region || rest.length > 0) {
@@ -493,16 +501,21 @@
return shard;
}
return undefined;
}
-exports.validateShardContext = validateShardContext;
-function environmentPrecondition(key, environmentController) {
+function environmentPrecondition(key, environmentController, requireEnvironmentWithAppIdOverride = false) {
return async (...args) => {
const lastArgs = last(args);
const environmentArg = lastArgs[key];
const nonInteractive = lastArgs.nonInteractive ?? false;
- const environment = environmentArg || (await environmentController.run(nonInteractive));
+ const appId = lastArgs.appId || lastArgs.appIdOverride;
+ if (!environmentArg && lastArgs.appIdOverride) {
+ if (requireEnvironmentWithAppIdOverride) {
+ throw new cli_shared_1.ValidationError(cli_shared_1.Text.appIdOverride.environmentRequired);
+ }
+ return {};
+ }
+ const environment = environmentArg || (await environmentController.run(nonInteractive, appId));
return { [key]: (0, environment_1.checkEnvironmentOption)(environment) };
};
}
-exports.environmentPrecondition = environmentPrecondition;
//# sourceMappingURL=command.js.map
\ No newline at end of file