diff --git a/node_modules/eslint-module-utils/ModuleCache.js b/node_modules/eslint-module-utils/ModuleCache.js
new file mode 100644
index 0000000..b910a58
--- /dev/null
+++ b/node_modules/eslint-module-utils/ModuleCache.js
@@ -0,0 +1,47 @@
+'use strict'
+exports.__esModule = true
+
+const log = require('debug')('eslint-module-utils:ModuleCache')
+
+class ModuleCache {
+  constructor(map) {
+    this.map = map || new Map()
+  }
+
+  /**
+   * returns value for returning inline
+   * @param {[type]} cacheKey [description]
+   * @param {[type]} result   [description]
+   */
+  set(cacheKey, result) {
+    this.map.set(cacheKey, { result, lastSeen: process.hrtime() })
+    log('setting entry for', cacheKey)
+    return result
+  }
+
+  get(cacheKey, settings) {
+    if (this.map.has(cacheKey)) {
+      const f = this.map.get(cacheKey)
+      // check freshness
+      if (process.hrtime(f.lastSeen)[0] < settings.lifetime) return f.result
+    } else log('cache miss for', cacheKey)
+    // cache miss
+    return undefined
+  }
+
+}
+
+ModuleCache.getSettings = function (settings) {
+  const cacheSettings = Object.assign({
+    lifetime: 30,  // seconds
+  }, settings['import/cache'])
+
+  // parse infinity
+  if (cacheSettings.lifetime === '∞' || cacheSettings.lifetime === 'Infinity') {
+    cacheSettings.lifetime = Infinity
+  }
+
+  return cacheSettings
+}
+
+exports.default = ModuleCache
