UNPKG

@scripty/react-store

Version:

This lightweight global react hook store is inspired by the extjs store architecture. Share your stores through your application with only a few lines of code!

72 lines (58 loc) 1.55 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.Model = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var Model = /*#__PURE__*/function () { function Model(model, callback) { var _this = this; (0, _classCallCheck2["default"])(this, Model); this.callback = callback; model.fields.forEach(function (rec) { _this[rec.name] = rec["default"] ? rec["default"] : _this.getInitialValue(rec.type); }); } (0, _createClass2["default"])(Model, [{ key: "getInitialValue", value: function getInitialValue(type) { switch (type) { case 'string': return ''; case 'object': return {}; case 'array': return []; case 'number': return 0; default: return ''; } } }, { key: "set", value: function set(record) { var _this2 = this; Object.keys(record).forEach(function (key) { _this2[key] = record[key]; }); if (this.callback) { this.callback(); } } }, { key: "setDirty", value: function setDirty() { this.dirty = true; } }, { key: "get", value: function get(field) { return this[field]; } }]); return Model; }(); exports.Model = Model;