Skip to content

Commit 19e12ec

Browse files
author
Kartik Raj
committed
Create factory function
1 parent 645873a commit 19e12ec

File tree

3 files changed

+12
-16
lines changed

3 files changed

+12
-16
lines changed

src/client/apiTypes.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -245,18 +245,17 @@ export interface IProposedExtensionAPI {
245245
registerEnvironmentProvider(
246246
environmentProvider: IEnvironmentProvider,
247247
metadata: EnvironmentProviderMetadata,
248-
): Promise<void>;
248+
): Promise<void>; // TODO: Disposable??
249249
};
250250
}
251251

252252
interface IEnvironmentProvider {
253-
locator: ILocatorClass;
253+
// TODO: createEnv
254+
createLocator: ILocatorFactory;
254255
getEnvironmentDetails: (env: EnvInfo) => Promise<EnvironmentDetails | undefined>;
255256
}
256257

257-
export interface ILocatorClass {
258-
new (root?: string): ILocatorAPI;
259-
}
258+
export type ILocatorFactory = (root?: string) => ILocatorAPI;
260259

261260
export interface ILocatorAPI {
262261
iterEnvs?(): IPythonEnvsIterator<EnvInfo>;

src/client/pythonEnvironments/base/locator.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,7 @@ import {
1414
PythonEnvsWatcher,
1515
} from './watcher';
1616

17-
export interface ILocatorClass {
18-
new (root?: string): ILocatorAPI;
19-
}
20-
17+
export type ILocatorFactory = (root?: string) => ILocatorAPI;
2118
export interface ILocatorAPI {
2219
iterEnvs?(): IPythonEnvsIterator<EnvInfo>;
2320
readonly onChanged?: Event<LocatorEnvsChangedEvent>;
@@ -232,7 +229,7 @@ export interface ILocator<I = PythonEnvInfo, E extends BasicPythonEnvsChangedEve
232229
}
233230

234231
export interface IEnvProvider {
235-
addNewLocator?(LocatorClass: ILocatorClass, isWorkspace: boolean): void;
232+
addNewLocator?(locatorFactory: ILocatorFactory, isWorkspace: boolean): void;
236233
}
237234

238235
interface IResolver {

src/client/pythonEnvironments/base/locators/wrappers.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
// eslint-disable-next-line max-classes-per-file
55
import { Uri } from 'vscode';
6-
import { ILocatorClass } from '../../../apiTypes';
6+
import { ILocatorFactory } from '../../../apiTypes';
77
import { IDisposable } from '../../../common/types';
88
import { iterEmpty } from '../../../common/utils/async';
99
import { getURIFilter } from '../../../common/utils/misc';
@@ -37,12 +37,12 @@ export class ExtensionLocators extends Locators<BasicEnvInfo> {
3737
return combineIterators(iterators);
3838
}
3939

40-
public addNewLocator(LocatorClass: ILocatorClass, isWorkspace: boolean): void {
40+
public addNewLocator(locatorFactory: ILocatorFactory, isWorkspace: boolean): void {
4141
if (isWorkspace) {
42-
this.workspace.addNewLocator(LocatorClass);
42+
this.workspace.addNewLocator(locatorFactory);
4343
}
4444
if (!isWorkspace) {
45-
this.nonWorkspace = [...this.nonWorkspace, new CustomLocator(new LocatorClass())];
45+
this.nonWorkspace = [...this.nonWorkspace, new CustomLocator(locatorFactory())];
4646
}
4747
}
4848
}
@@ -145,10 +145,10 @@ export class WorkspaceLocators extends LazyResourceBasedLocator<BasicEnvInfo> {
145145
);
146146
}
147147

148-
public addNewLocator(LocatorClass: ILocatorClass): void {
148+
public addNewLocator(locatorFactory: ILocatorFactory): void {
149149
Object.keys(this.roots).forEach((key) => {
150150
const root = this.roots[key];
151-
const newLocator = new LocatorClass(root.fsPath);
151+
const newLocator = locatorFactory(root.fsPath);
152152
const convertedLocator: ILocator<BasicEnvInfo> = new CustomLocator(newLocator);
153153
const [locators] = this.locators[key];
154154
locators.addLocator(convertedLocator);

0 commit comments

Comments
 (0)