@zoranwong/acc-engine.js
Version:
A javascript framework to accelerate your applicatin developement
106 lines (85 loc) • 2.88 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _newArrowCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/newArrowCheck"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _classPrivateFieldLooseBase2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldLooseBase"));
var _classPrivateFieldLooseKey2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldLooseKey"));
var _underscore = require("underscore");
var _items = (0, _classPrivateFieldLooseKey2["default"])("items");
var Repository = /*#__PURE__*/function () {
function Repository(config) {
(0, _classCallCheck2["default"])(this, Repository);
Object.defineProperty(this, _items, {
writable: true,
value: {}
});
(0, _classPrivateFieldLooseBase2["default"])(this, _items)[_items] = config;
}
(0, _createClass2["default"])(Repository, [{
key: "prop",
value: function prop(key, value) {
var _this = this;
var data = value;
var keys = this.parseKey(key).reverse();
keys.forEach(function (k) {
(0, _newArrowCheck2["default"])(this, _this);
var temp = {};
temp[k] = data;
data = temp;
}.bind(this));
this.extend((0, _classPrivateFieldLooseBase2["default"])(this, _items)[_items], data);
return value;
}
}, {
key: "extend",
value: function extend(des, sources) {
var count = 0;
for (var k in sources) {
count += 1;
if ((0, _underscore.isObject)(sources[k]) && !(0, _underscore.isArray)(sources[k])) {
if (!des[k]) {
des[k] = sources[k];
}
if (this.extend(des[k], sources[k]) < 0) {
des[k] = sources[k];
}
} else {
des[k] = sources[k];
}
}
if (count === 0) {
return -1;
} else {
return 1;
}
}
}, {
key: "getProp",
value: function getProp(key) {
var _this2 = this;
var keys = this.parseKey(key);
var value = (0, _classPrivateFieldLooseBase2["default"])(this, _items)[_items];
keys.forEach(function (k) {
(0, _newArrowCheck2["default"])(this, _this2);
if (typeof value !== 'undefined') {
value = value[k];
} else {
value = null;
}
}.bind(this));
return value;
}
}, {
key: "parseKey",
value: function parseKey(key) {
return (0, _underscore.isString)(key) ? key.split('.') : [key];
}
}]);
return Repository;
}();
exports["default"] = Repository;