Skip to content

Commit fb3a4c2

Browse files
author
Kartik Raj
committed
Change getter to function
1 parent ba3d488 commit fb3a4c2

File tree

10 files changed

+29
-23
lines changed

10 files changed

+29
-23
lines changed

src/client/interpreter/contracts.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export const IComponentAdapter = Symbol('IComponentAdapter');
1818
export interface IComponentAdapter {
1919
readonly onProgress: Event<ProgressNotificationEvent>;
2020
triggerRefresh(query?: PythonLocatorQuery & { clearCache?: boolean }, trigger?: 'auto' | 'ui'): Promise<void>;
21-
readonly refreshPromise: Promise<void> | undefined;
21+
getRefreshPromise(): Promise<void> | undefined;
2222
readonly onChanged: Event<PythonEnvironmentsChangedEvent>;
2323
// VirtualEnvPrompt
2424
onDidCreate(resource: Resource, callback: () => void): Disposable;

src/client/interpreter/display/progressDisplay.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@ export class InterpreterLocatorProgressStatubarHandler implements IExtensionSing
3535
(event) => {
3636
if (event.stage === ProgressReportStage.discoveryStarted) {
3737
this.showProgress();
38-
if (this.pyenvs.refreshPromise) {
39-
this.pyenvs.refreshPromise.then(() => this.hideProgress());
38+
const refreshPromise = this.pyenvs.getRefreshPromise();
39+
if (refreshPromise) {
40+
refreshPromise.then(() => this.hideProgress());
4041
}
4142
}
4243
},

src/client/interpreter/interpreterService.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export class InterpreterService implements Disposable, IInterpreterService {
4848
}
4949

5050
public get refreshPromise(): Promise<void> | undefined {
51-
return this.pyenvs.refreshPromise;
51+
return this.pyenvs.getRefreshPromise();
5252
}
5353

5454
public get onDidChangeInterpreter(): Event<void> {

src/client/proposedApi.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import { IInterpreterService } from './interpreter/contracts';
1616
import { IServiceContainer } from './ioc/types';
1717
import { PythonEnvInfo } from './pythonEnvironments/base/info';
1818
import { getEnvPath } from './pythonEnvironments/base/info/env';
19-
import { IDiscoveryAPI } from './pythonEnvironments/base/locator';
19+
import { GetRefreshEnvironmentsOptions, IDiscoveryAPI } from './pythonEnvironments/base/locator';
2020

2121
const onDidInterpretersChangedEvent = new EventEmitter<EnvironmentsChangedParams[]>();
2222
export function reportInterpretersChanged(e: EnvironmentsChangedParams[]): void {
@@ -106,8 +106,8 @@ export function buildProposedApi(
106106
const paths = discoveryApi.getEnvs().map((e) => getEnvPath(e.executable.filename, e.location));
107107
return Promise.resolve(paths);
108108
},
109-
getRefreshPromise(): Promise<void> | undefined {
110-
return discoveryApi.refreshPromise;
109+
getRefreshPromise(options?: GetRefreshEnvironmentsOptions): Promise<void> | undefined {
110+
return discoveryApi.getRefreshPromise(options);
111111
},
112112
onDidChangeExecutionDetails: interpreterService.onDidChangeInterpreterConfiguration,
113113
onDidEnvironmentsChanged: onDidInterpretersChangedEvent.event,

src/client/pythonEnvironments/api.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,12 @@ import { StopWatch } from '../common/utils/stopWatch';
66
import { sendTelemetryEvent } from '../telemetry';
77
import { EventName } from '../telemetry/constants';
88
import { getEnvPath } from './base/info/env';
9-
import { IDiscoveryAPI, ProgressNotificationEvent, PythonLocatorQuery } from './base/locator';
9+
import {
10+
GetRefreshEnvironmentsOptions,
11+
IDiscoveryAPI,
12+
ProgressNotificationEvent,
13+
PythonLocatorQuery,
14+
} from './base/locator';
1015

1116
export type GetLocatorFunc = () => Promise<IDiscoveryAPI>;
1217

@@ -31,8 +36,8 @@ class PythonEnvironments implements IDiscoveryAPI {
3136
return this.locator.onProgress;
3237
}
3338

34-
public get refreshPromise() {
35-
return this.locator.refreshPromise;
39+
public getRefreshPromise(options?: GetRefreshEnvironmentsOptions) {
40+
return this.locator.getRefreshPromise(options);
3641
}
3742

3843
public get onChanged() {

src/client/pythonEnvironments/base/locator.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ export interface IDiscoveryAPI {
203203
* Resolves once environment list has finished refreshing, i.e all environments are
204204
* discovered. Carries `undefined` if there is no refresh currently going on.
205205
*/
206-
readonly refreshPromise: Promise<void> | undefined;
206+
getRefreshPromise(options?: GetRefreshEnvironmentsOptions): Promise<void> | undefined;
207207
/**
208208
* Triggers a new refresh for query if there isn't any already running.
209209
*/

src/client/pythonEnvironments/base/locators/composite/envsCollectionService.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export class EnvsCollectionService extends PythonEnvsWatcher<PythonEnvCollection
3535
return this.progress.event;
3636
}
3737

38-
public get refreshPromise(): Promise<void> | undefined {
38+
public getRefreshPromise(): Promise<void> | undefined {
3939
return this.refreshPromises.size > 0
4040
? Promise.all(Array.from(this.refreshPromises.values())).then()
4141
: undefined;

src/client/pythonEnvironments/legacyIOC.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,8 @@ class ComponentAdapter implements IComponentAdapter {
107107
return this.api.triggerRefresh(query, trigger);
108108
}
109109

110-
public get refreshPromise() {
111-
return this.api.refreshPromise;
110+
public getRefreshPromise() {
111+
return this.api.getRefreshPromise();
112112
}
113113

114114
public get onProgress() {
@@ -235,7 +235,7 @@ class ComponentAdapter implements IComponentAdapter {
235235
}
236236
// We should already have initiated discovery. Wait for an env to be added
237237
// to the collection until the refresh has finished.
238-
await Promise.race([onAddedToCollection.promise, this.api.refreshPromise]);
238+
await Promise.race([onAddedToCollection.promise, this.api.getRefreshPromise()]);
239239
const envs = await asyncFilter(this.api.getEnvs(), (e) => filter(convertEnvInfo(e)));
240240
return envs.length > 0;
241241
}
@@ -297,7 +297,7 @@ class ComponentAdapter implements IComponentAdapter {
297297
if (options?.ignoreCache) {
298298
await this.api.triggerRefresh(query);
299299
}
300-
await this.api.refreshPromise;
300+
await this.api.getRefreshPromise();
301301
const envs = this.api.getEnvs(query);
302302
return envs.map(convertEnvInfo);
303303
}

src/test/proposedApi.unit.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ suite('Proposed Extension API', () => {
389389

390390
test('getRefreshPromise: common scenario', () => {
391391
const expected = Promise.resolve();
392-
discoverAPI.setup((d) => d.refreshPromise).returns(() => expected);
392+
discoverAPI.setup((d) => d.getRefreshPromise()).returns(() => expected);
393393
const actual = proposed.environment.getRefreshPromise();
394394

395395
// We are comparing instances here, they should be the same instance.

src/test/pythonEnvironments/base/locators/composite/envsCollectionService.unit.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -149,9 +149,9 @@ suite('Python envs locator - Environments Collection', async () => {
149149
let envs = collectionService.getEnvs();
150150

151151
assertEnvsEqual(envs, []);
152-
expect(collectionService.refreshPromise).to.not.equal(undefined);
152+
expect(collectionService.getRefreshPromise()).to.not.equal(undefined);
153153

154-
await collectionService.refreshPromise;
154+
await collectionService.getRefreshPromise();
155155
envs = collectionService.getEnvs();
156156

157157
assertEnvsEqual(
@@ -377,14 +377,14 @@ suite('Python envs locator - Environments Collection', async () => {
377377
});
378378
collectionService = new EnvsCollectionService(cache, parentLocator);
379379

380-
expect(collectionService.refreshPromise).to.equal(
380+
expect(collectionService.getRefreshPromise()).to.equal(
381381
undefined,
382382
'Should be undefined if no refresh is currently going on',
383383
);
384384

385385
const promise = collectionService.triggerRefresh();
386386

387-
const onGoingRefreshPromise = collectionService.refreshPromise;
387+
const onGoingRefreshPromise = collectionService.getRefreshPromise();
388388
expect(onGoingRefreshPromise).to.not.equal(undefined, 'Refresh triggered should be tracked');
389389
const onGoingRefreshPromiseDeferred = createDeferredFromPromise(onGoingRefreshPromise!);
390390
await sleep(1);
@@ -393,7 +393,7 @@ suite('Python envs locator - Environments Collection', async () => {
393393
deferred.resolve();
394394
await promise;
395395

396-
expect(collectionService.refreshPromise).to.equal(
396+
expect(collectionService.getRefreshPromise()).to.equal(
397397
undefined,
398398
'Should be undefined if no refresh is currently going on',
399399
);
@@ -557,7 +557,7 @@ suite('Python envs locator - Environments Collection', async () => {
557557
refreshDeferred.resolve();
558558
await sleep(1);
559559

560-
await collectionService.refreshPromise; // Wait for refresh to finish
560+
await collectionService.getRefreshPromise(); // Wait for refresh to finish
561561

562562
/**
563563
* We expect 2 refreshes to be triggered in total, explanation:

0 commit comments

Comments
 (0)