summaryrefslogtreecommitdiffstats
path: root/node_modules/babel-register/lib/cache.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/babel-register/lib/cache.js')
-rw-r--r--node_modules/babel-register/lib/cache.js68
1 files changed, 68 insertions, 0 deletions
diff --git a/node_modules/babel-register/lib/cache.js b/node_modules/babel-register/lib/cache.js
new file mode 100644
index 0000000..4fbe0d5
--- /dev/null
+++ b/node_modules/babel-register/lib/cache.js
@@ -0,0 +1,68 @@
+"use strict";
+
+exports.__esModule = true;
+
+var _stringify = require("babel-runtime/core-js/json/stringify");
+
+var _stringify2 = _interopRequireDefault(_stringify);
+
+exports.save = save;
+exports.load = load;
+exports.get = get;
+
+var _path = require("path");
+
+var _path2 = _interopRequireDefault(_path);
+
+var _fs = require("fs");
+
+var _fs2 = _interopRequireDefault(_fs);
+
+var _mkdirp = require("mkdirp");
+
+var _homeOrTmp = require("home-or-tmp");
+
+var _homeOrTmp2 = _interopRequireDefault(_homeOrTmp);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var FILENAME = process.env.BABEL_CACHE_PATH || _path2.default.join(_homeOrTmp2.default, ".babel.json");
+var data = {};
+
+function save() {
+ var serialised = "{}";
+
+ try {
+ serialised = (0, _stringify2.default)(data, null, " ");
+ } catch (err) {
+
+ if (err.message === "Invalid string length") {
+ err.message = "Cache too large so it's been cleared.";
+ console.error(err.stack);
+ } else {
+ throw err;
+ }
+ }
+
+ (0, _mkdirp.sync)(_path2.default.dirname(FILENAME));
+ _fs2.default.writeFileSync(FILENAME, serialised);
+}
+
+function load() {
+ if (process.env.BABEL_DISABLE_CACHE) return;
+
+ process.on("exit", save);
+ process.nextTick(save);
+
+ if (!_fs2.default.existsSync(FILENAME)) return;
+
+ try {
+ data = JSON.parse(_fs2.default.readFileSync(FILENAME));
+ } catch (err) {
+ return;
+ }
+}
+
+function get() {
+ return data;
+} \ No newline at end of file