Skip to content

Commit a2501ea

Browse files
switched to typed data providers map/cache
1 parent 1824e62 commit a2501ea

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/data.manager.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ export class DataManager implements IDataManager {
104104

105105
// singleton instance
106106
private static _instance: DataManager;
107-
private _dataProviders: {}; // loaded data providers map
107+
private _dataProviders: Map<string, IDataProvider>;
108108
private _logger: Logger = new Logger('data.manager:', config.logLevel);
109109

110110
/**
@@ -132,7 +132,7 @@ export class DataManager implements IDataManager {
132132
private loadDataProviders(): any {
133133
this._logger.debug('loadDataProviders(): loading data providers...');
134134
// create data provider instances for the supported data formats
135-
const dataProviders: any = {};
135+
const dataProviders: Map<string, IDataProvider> = new Map<string, IDataProvider>();
136136
this.addDataProvider(dataProviders, new AvroDataProvider());
137137
this.addDataProvider(dataProviders, new ArrowDataProvider());
138138
this.addDataProvider(dataProviders, new ExcelDataProvider());
@@ -152,9 +152,10 @@ export class DataManager implements IDataManager {
152152
* @param dataProviderMap Data provider map to update.
153153
* @param dataProvider Data provider to add.
154154
*/
155-
private addDataProvider(dataProviderMap: any, dataProvider: IDataProvider): void {
155+
private addDataProvider(dataProviderMap: Map<string, IDataProvider>,
156+
dataProvider: IDataProvider): void {
156157
dataProvider.supportedDataFileTypes.forEach(fileType => {
157-
dataProviderMap[fileType] = dataProvider;
158+
dataProviderMap.set(fileType, dataProvider);
158159
});
159160
}
160161

@@ -163,8 +164,8 @@ export class DataManager implements IDataManager {
163164
* @param fileType The data file mime type or extension to get data provider instance for.
164165
*/
165166
public getDataProvider(fileType: string): IDataProvider {
166-
if (this._dataProviders.hasOwnProperty(fileType)) {
167-
return this._dataProviders[fileType];
167+
if (this._dataProviders.has(fileType)) {
168+
return this._dataProviders.get(fileType);
168169
}
169170
const errorMessage: string = `No matching Data Provider found for the File Type: '${fileType}'`;
170171
window.showErrorMessage(errorMessage);

0 commit comments

Comments
 (0)