electron-forge
Version:
A complete tool for building modern Electron applications
93 lines (69 loc) • 5.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _stringify = require('babel-runtime/core-js/json/stringify');
var _stringify2 = _interopRequireDefault(_stringify);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _debug = require('debug');
var _debug2 = _interopRequireDefault(_debug);
var _fsExtra = require('fs-extra');
var _fsExtra2 = _interopRequireDefault(_fsExtra);
var _os = require('os');
var _os2 = _interopRequireDefault(_os);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var d = (0, _debug2.default)('electron-forge:runtime-config');
/*
* Let's be real: sharing config across spawned processes must be easier than
* this...
*/
var BasicConfigStore = function () {
function BasicConfigStore() {
var _this = this;
(0, _classCallCheck3.default)(this, BasicConfigStore);
this._store = {};
this._dir = _path2.default.resolve(_os2.default.tmpdir(), 'electron-forge');
this._path = _path2.default.resolve(this._dir, '.runtime.config');
_fsExtra2.default.mkdirsSync(this._dir);
process.on('exit', function () {
_this.reset();
});
}
(0, _createClass3.default)(BasicConfigStore, [{
key: 'get',
value: function get(key) {
this._load();
d('fetching key', key);
return this._store[key];
}
}, {
key: 'set',
value: function set(key, value) {
this._load();
this._store[key] = value;
d('setting key:', key, 'to value:', value);
_fsExtra2.default.writeFileSync(this._path, (0, _stringify2.default)(this._store));
}
}, {
key: '_load',
value: function _load() {
if (_fsExtra2.default.existsSync(this._path)) {
this._store = JSON.parse(_fsExtra2.default.readFileSync(this._path, 'utf8'));
}
}
}, {
key: 'reset',
value: function reset() {
this._store = {};
_fsExtra2.default.writeFileSync(this._path, (0, _stringify2.default)(this._store));
}
}]);
return BasicConfigStore;
}();
exports.default = new BasicConfigStore();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWwvY29uZmlnLmpzIl0sIm5hbWVzIjpbImQiLCJCYXNpY0NvbmZpZ1N0b3JlIiwiX3N0b3JlIiwiX2RpciIsInJlc29sdmUiLCJ0bXBkaXIiLCJfcGF0aCIsIm1rZGlyc1N5bmMiLCJwcm9jZXNzIiwib24iLCJyZXNldCIsImtleSIsIl9sb2FkIiwidmFsdWUiLCJ3cml0ZUZpbGVTeW5jIiwiZXhpc3RzU3luYyIsIkpTT04iLCJwYXJzZSIsInJlYWRGaWxlU3luYyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLElBQUkscUJBQU0sK0JBQU4sQ0FBVjs7QUFFQTs7Ozs7SUFJTUMsZ0I7QUFDSiw4QkFBYztBQUFBOztBQUFBOztBQUNaLFNBQUtDLE1BQUwsR0FBYyxFQUFkO0FBQ0EsU0FBS0MsSUFBTCxHQUFZLGVBQUtDLE9BQUwsQ0FBYSxhQUFHQyxNQUFILEVBQWIsRUFBMEIsZ0JBQTFCLENBQVo7QUFDQSxTQUFLQyxLQUFMLEdBQWEsZUFBS0YsT0FBTCxDQUFhLEtBQUtELElBQWxCLEVBQXdCLGlCQUF4QixDQUFiO0FBQ0Esc0JBQUdJLFVBQUgsQ0FBYyxLQUFLSixJQUFuQjs7QUFFQUssWUFBUUMsRUFBUixDQUFXLE1BQVgsRUFBbUIsWUFBTTtBQUN2QixZQUFLQyxLQUFMO0FBQ0QsS0FGRDtBQUdEOzs7O3dCQUVHQyxHLEVBQUs7QUFDUCxXQUFLQyxLQUFMO0FBQ0FaLFFBQUUsY0FBRixFQUFrQlcsR0FBbEI7QUFDQSxhQUFPLEtBQUtULE1BQUwsQ0FBWVMsR0FBWixDQUFQO0FBQ0Q7Ozt3QkFFR0EsRyxFQUFLRSxLLEVBQU87QUFDZCxXQUFLRCxLQUFMO0FBQ0EsV0FBS1YsTUFBTCxDQUFZUyxHQUFaLElBQW1CRSxLQUFuQjtBQUNBYixRQUFFLGNBQUYsRUFBa0JXLEdBQWxCLEVBQXVCLFdBQXZCLEVBQW9DRSxLQUFwQztBQUNBLHdCQUFHQyxhQUFILENBQWlCLEtBQUtSLEtBQXRCLEVBQTZCLHlCQUFlLEtBQUtKLE1BQXBCLENBQTdCO0FBQ0Q7Ozs0QkFFTztBQUNOLFVBQUksa0JBQUdhLFVBQUgsQ0FBYyxLQUFLVCxLQUFuQixDQUFKLEVBQStCO0FBQzdCLGFBQUtKLE1BQUwsR0FBY2MsS0FBS0MsS0FBTCxDQUFXLGtCQUFHQyxZQUFILENBQWdCLEtBQUtaLEtBQXJCLEVBQTRCLE1BQTVCLENBQVgsQ0FBZDtBQUNEO0FBQ0Y7Ozs0QkFFTztBQUNOLFdBQUtKLE1BQUwsR0FBYyxFQUFkO0FBQ0Esd0JBQUdZLGFBQUgsQ0FBaUIsS0FBS1IsS0FBdEIsRUFBNkIseUJBQWUsS0FBS0osTUFBcEIsQ0FBN0I7QUFDRDs7Ozs7a0JBR1ksSUFBSUQsZ0JBQUosRSIsImZpbGUiOiJ1dGlsL2NvbmZpZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuXG5jb25zdCBkID0gZGVidWcoJ2VsZWN0cm9uLWZvcmdlOnJ1bnRpbWUtY29uZmlnJyk7XG5cbi8qXG4gKiBMZXQncyBiZSByZWFsOiBzaGFyaW5nIGNvbmZpZyBhY3Jvc3Mgc3Bhd25lZCBwcm9jZXNzZXMgbXVzdCBiZSBlYXNpZXIgdGhhblxuICogdGhpcy4uLlxuICovXG5jbGFzcyBCYXNpY0NvbmZpZ1N0b3JlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fc3RvcmUgPSB7fTtcbiAgICB0aGlzLl9kaXIgPSBwYXRoLnJlc29sdmUob3MudG1wZGlyKCksICdlbGVjdHJvbi1mb3JnZScpO1xuICAgIHRoaXMuX3BhdGggPSBwYXRoLnJlc29sdmUodGhpcy5fZGlyLCAnLnJ1bnRpbWUuY29uZmlnJyk7XG4gICAgZnMubWtkaXJzU3luYyh0aGlzLl9kaXIpO1xuXG4gICAgcHJvY2Vzcy5vbignZXhpdCcsICgpID0+IHtcbiAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldChrZXkpIHtcbiAgICB0aGlzLl9sb2FkKCk7XG4gICAgZCgnZmV0Y2hpbmcga2V5Jywga2V5KTtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmVba2V5XTtcbiAgfVxuXG4gIHNldChrZXksIHZhbHVlKSB7XG4gICAgdGhpcy5fbG9hZCgpO1xuICAgIHRoaXMuX3N0b3JlW2tleV0gPSB2YWx1ZTtcbiAgICBkKCdzZXR0aW5nIGtleTonLCBrZXksICd0byB2YWx1ZTonLCB2YWx1ZSk7XG4gICAgZnMud3JpdGVGaWxlU3luYyh0aGlzLl9wYXRoLCBKU09OLnN0cmluZ2lmeSh0aGlzLl9zdG9yZSkpO1xuICB9XG5cbiAgX2xvYWQoKSB7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmModGhpcy5fcGF0aCkpIHtcbiAgICAgIHRoaXMuX3N0b3JlID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmModGhpcy5fcGF0aCwgJ3V0ZjgnKSk7XG4gICAgfVxuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5fc3RvcmUgPSB7fTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMuX3BhdGgsIEpTT04uc3RyaW5naWZ5KHRoaXMuX3N0b3JlKSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IEJhc2ljQ29uZmlnU3RvcmUoKTtcbiJdfQ==