@forge/cli
13.4.0-next.3-experimental-f258a6d13.4.0-next.5-experimental-016ed9d
out/command-line/controller/site-controller.js+
out/command-line/controller/site-controller.jsNew file+39
Index: package/out/command-line/controller/site-controller.js
===================================================================
--- package/out/command-line/controller/site-controller.js
+++ package/out/command-line/controller/site-controller.js
@@ -0,0 +1,39 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.SiteController = void 0;
+const site_1 = require("../../site");
+class SiteController {
+ view;
+ siteService;
+ constructor(view, siteService) {
+ this.view = view;
+ this.siteService = siteService;
+ }
+ async provision() {
+ const existing = await this.view.checkForExistingSite(() => this.siteService.getExistingSite());
+ if (existing) {
+ this.view.alreadyExists();
+ this.view.renderSite(existing);
+ return;
+ }
+ const result = await this.view.requestSite(() => this.siteService.provision());
+ await this.pollAndRender(result.taskId);
+ }
+ async pollAndRender(taskId) {
+ const outcome = await this.view.watchProvisioning(() => this.siteService.pollProvisioning(taskId, {
+ timeoutMs: site_1.DEFAULT_PROVISION_TIMEOUT_MS,
+ intervalMs: site_1.DEFAULT_PROVISION_POLL_INTERVAL_MS,
+ onStatus: (status) => this.view.reportStatus(status)
+ }));
+ if (outcome.kind === 'timeout') {
+ this.view.backgroundTimeout();
+ return;
+ }
+ if (outcome.kind === 'completedWithErrors') {
+ this.view.completedWithErrors();
+ }
+ this.view.renderSite(outcome.provisioning.site);
+ }
+}
+exports.SiteController = SiteController;
+//# sourceMappingURL=site-controller.js.map
\ No newline at end of file