mobile-cli-lib
Version:
common lib used by different CLI
56 lines (55 loc) • 2.23 kB
JavaScript
;
var UserSettingsServiceBase = (function () {
function UserSettingsServiceBase(userSettingsFilePath, $fs) {
this.$fs = $fs;
this.userSettingsFilePath = null;
this.userSettingsData = null;
this.userSettingsFilePath = userSettingsFilePath;
}
UserSettingsServiceBase.prototype.getSettingValue = function (settingName) {
var _this = this;
return (function () {
_this.loadUserSettingsFile().wait();
return _this.userSettingsData ? _this.userSettingsData[settingName] : null;
}).future()();
};
UserSettingsServiceBase.prototype.saveSetting = function (key, value) {
var settingObject = {};
settingObject[key] = value;
return this.saveSettings(settingObject);
};
UserSettingsServiceBase.prototype.removeSetting = function (key) {
var _this = this;
return (function () {
_this.loadUserSettingsFile().wait();
delete _this.userSettingsData[key];
_this.saveSettings().wait();
}).future()();
};
UserSettingsServiceBase.prototype.saveSettings = function (data) {
var _this = this;
return (function () {
_this.loadUserSettingsFile().wait();
_this.userSettingsData = _this.userSettingsData || {};
_(data)
.keys()
.each(function (propertyName) {
_this.userSettingsData[propertyName] = data[propertyName];
});
_this.$fs.writeJson(_this.userSettingsFilePath, _this.userSettingsData).wait();
}).future()();
};
UserSettingsServiceBase.prototype.loadUserSettingsFile = function () {
var _this = this;
return (function () {
if (!_this.userSettingsData) {
if (!_this.$fs.exists(_this.userSettingsFilePath).wait()) {
_this.$fs.writeFile(_this.userSettingsFilePath, null).wait();
}
_this.userSettingsData = _this.$fs.readJson(_this.userSettingsFilePath).wait();
}
}).future()();
};
return UserSettingsServiceBase;
}());
exports.UserSettingsServiceBase = UserSettingsServiceBase;