UNPKG

@zoranwong/acc-engine.js

Version:

A javascript framework to accelerate your applicatin developement

106 lines (85 loc) 2.88 kB
"use strict"; 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;