All files / src getLastResults.ts

100% Statements 16/16
100% Branches 4/4
100% Functions 1/1
100% Lines 16/16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 398x     8x     8x     8x             8x   8x 5x 1x       4x 4x 4x     4x 3x 3x   1x       8x  
import {
  readFileSync,
} from 'fs';
import {
  isValidLastResults,
} from './TypeGuards/isValidLastResults';
import {
  homedir,
} from 'os';
import {
  join,
} from 'path';
import {
  TUUIDLastResults,
} from './TypeAliases/TUUIDLastResults';
 
let lastResults: TUUIDLastResults | null = null;
 
export const getLastResults = () => {
  if (lastResults) {
    return lastResults;
  }
 
  let tempLastResults;
  try {
    const fileStr = readFileSync(join(homedir(), 'uuid'), 'utf8');
    tempLastResults = JSON.parse(fileStr) as TUUIDLastResults;
  } catch (e) { /* Do nothing. */ }
 
  if (isValidLastResults(tempLastResults)) {
    lastResults = tempLastResults;
    return lastResults;
  } else {
    return {} as TUUIDLastResults;
  }
};
 
export default getLastResults;