From 330f9006a7a2018dcffc3968b9a30217c55ab54d Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Thu, 9 Nov 2017 15:49:26 -0800 Subject: [PATCH] Add cache.clear() to clear the `data` reference when cache option is `false`. --- packages/babel-register/src/cache.js | 8 ++++++++ packages/babel-register/src/node.js | 11 ++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/babel-register/src/cache.js b/packages/babel-register/src/cache.js index e2494e0248..22b590eb93 100644 --- a/packages/babel-register/src/cache.js +++ b/packages/babel-register/src/cache.js @@ -62,3 +62,11 @@ export function load() { export function get(): Object { return data; } + +/** + * Clear the cache object. + */ + +export function clear() { + data = {}; +} diff --git a/packages/babel-register/src/node.js b/packages/babel-register/src/node.js index 21729f4fdb..a20514f2a1 100644 --- a/packages/babel-register/src/node.js +++ b/packages/babel-register/src/node.js @@ -30,8 +30,7 @@ function installSourceMapSupport() { }); } -registerCache.load(); -let cache = registerCache.get(); +let cache; function mtime(filename) { return +fs.statSync(filename).mtime; @@ -103,7 +102,13 @@ export default function register(opts?: Object = {}) { opts = Object.assign({}, opts); if (opts.extensions) hookExtensions(opts.extensions); - if (opts.cache === false) cache = null; + if (opts.cache === false && cache) { + registerCache.clear(); + cache = null; + } else if (opts.cache !== false && !cache) { + registerCache.load(); + cache = registerCache.get(); + } delete opts.extensions; delete opts.cache;