subscriptionDisplayName: nonNullProp()

in ui/src/tree/AzureAccountTreeItemBase.ts [136:199]


                        subscriptionDisplayName: nonNullProp(filter.subscription, 'displayName'),
                        subscriptionId,
                        subscriptionPath: nonNullProp(filter.subscription, 'id'),
                        tenantId: filter.session.tenantId,
                        userId: filter.session.userId,
                        environment: filter.session.environment,
                        isCustomCloud: filter.session.environment.name === 'AzureCustomCloud'
                    });
                }
            }));
            return this._subscriptionTreeItems;
        }
    }

    public async getIsLoggedIn(): Promise<boolean> {
        const azureAccount: AzureAccountResult = await this._azureAccountTask;
        return typeof azureAccount !== 'string' && azureAccount.status === 'LoggedIn';
    }

    public async getSubscriptionPromptStep(context: Partial<types.ISubscriptionActionContext> & types.IActionContext): Promise<types.AzureWizardPromptStep<types.ISubscriptionActionContext> | undefined> {
        const subscriptionNodes: SubscriptionTreeItemBase[] = await this.ensureSubscriptionTreeItems(context);
        if (subscriptionNodes.length === 1) {
            Object.assign(context, subscriptionNodes[0].subscription);
            return undefined;
        } else {
            // eslint-disable-next-line @typescript-eslint/no-this-alias
            const me: AzureAccountTreeItemBase = this;
            class SubscriptionPromptStep extends AzureWizardPromptStep<types.ISubscriptionActionContext> {
                public async prompt(): Promise<void> {
                    const ti: SubscriptionTreeItemBase = <SubscriptionTreeItemBase>await me.treeDataProvider.showTreeItemPicker(SubscriptionTreeItemBase.contextValue, context, me);
                    Object.assign(context, ti.subscription);
                }
                public shouldPrompt(): boolean { return !(<types.ISubscriptionActionContext>context).subscriptionId; }
            }
            return new SubscriptionPromptStep();
        }
    }

    public async pickTreeItemImpl(_expectedContextValues: (string | RegExp)[]): Promise<AzExtTreeItem | undefined> {
        const azureAccount: AzureAccountResult = await this._azureAccountTask;
        if (typeof azureAccount !== 'string' && (azureAccount.status === 'LoggingIn' || azureAccount.status === 'Initializing')) {
            const title: string = localize('waitingForAzureSignin', 'Waiting for Azure sign-in...');
            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
            await window.withProgress({ location: ProgressLocation.Notification, title }, async (): Promise<boolean> => await azureAccount!.waitForSubscriptions());
        }

        return undefined;
    }

    public compareChildrenImpl(item1: AzExtTreeItem, item2: AzExtTreeItem): number {
        if (item1 instanceof GenericTreeItem && item2 instanceof GenericTreeItem) {
            return 0; // already sorted
        } else {
            return super.compareChildrenImpl(item1, item2);
        }
    }

    private async loadAzureAccount(azureAccount: AzureAccount | undefined): Promise<AzureAccountResult> {
        if (!azureAccount) {
            const extension: Extension<AzureAccount> | undefined = extensions.getExtension<AzureAccount>(azureAccountExtensionId);
            if (extension) {
                try {
                    // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
                    if (semver.lt(extension.packageJSON.version, minAccountExtensionVersion)) {