| import { DataPCSBase } from './datafile/data.pcs'; | 
| import { browser } from '../e2elib/node_modules/protractor'; | 
|   | 
| /** | 
|  * Dynamic data loading based on e2e.json configuration (params > testdata > name). | 
|  */ | 
| export class DataProvider  { | 
|   private static _dataProvider: DataProvider; | 
|   | 
|   // Data organized by functional categories | 
|   private static _dataPCS: DataPCSBase; | 
|   | 
|   // Get singleton instance of DataProvider | 
|   public static getInstance(): DataProvider { | 
|     if (DataProvider._dataProvider === undefined) { | 
|       DataProvider._dataProvider = new DataProvider(); | 
|     } | 
|   | 
|     return DataProvider._dataProvider; | 
|   } | 
|   | 
|   private constructor() { | 
|     // To avoid initialization externally | 
|   } | 
|   | 
|   /** | 
|    * Get pcs related data. | 
|    */ | 
|   public async getDataPCS(): Promise<DataPCSBase> { | 
|     if (DataProvider._dataPCS === undefined) { | 
|       const path = `./datafile/${browser.params.testdata.name}/data.pcs`; | 
|       const { dataPCS}: { dataPCS: DataPCSBase } = await import(path); | 
|       DataProvider._dataPCS = dataPCS; | 
|     } | 
|     return DataProvider._dataPCS; | 
|   } | 
| } |