Galooshi/import-js

View on GitHub
lib/FileUtils.js

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
// @flow
import fs from 'fs';

export default {
  readJsonFile(absoluteFilePath: string): ?Object {
    if (!fs.existsSync(absoluteFilePath)) {
      return null;
    }

    const contents = fs.readFileSync(absoluteFilePath, 'utf8');
    if (!contents) {
      // Protect against trying to parse empty files.
      return null;
    }

    return JSON.parse(contents);
  },

  readJsFile(absoluteFilePath: string): ?Object {
    if (!fs.existsSync(absoluteFilePath)) {
      return null;
    }

    // Clear the require cache so that the file is read every time.
    delete require.cache[absoluteFilePath];

    return require(absoluteFilePath);
  },
};