1. 'use strict';
    
  2. 
    
  3. // This file is a proxy for our rule definition that will
    
  4. // load the latest built version on every check. This makes
    
  5. // it convenient to test inside IDEs (which would otherwise
    
  6. // load a version of our rule once and never restart the server).
    
  7. // See instructions in ../index.js playground.
    
  8. 
    
  9. let build;
    
  10. reload();
    
  11. 
    
  12. function reload() {
    
  13.   for (let id in require.cache) {
    
  14.     if (/eslint-plugin-react-hooks/.test(id)) {
    
  15.       delete require.cache[id];
    
  16.     }
    
  17.   }
    
  18.   // Point to the built version.
    
  19.   build = require('../../../build/oss-experimental/eslint-plugin-react-hooks');
    
  20. }
    
  21. 
    
  22. let rules = {};
    
  23. for (let key in build.rules) {
    
  24.   if (build.rules.hasOwnProperty(key)) {
    
  25.     rules[key] = Object.assign({}, build.rules, {
    
  26.       create() {
    
  27.         // Reload changes to the built rule
    
  28.         reload();
    
  29.         return build.rules[key].create.apply(this, arguments);
    
  30.       },
    
  31.     });
    
  32.   }
    
  33. }
    
  34. 
    
  35. module.exports = {rules};