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; 
 | 
  } 
 | 
} 
 |