jaydata
Version:
Cross-platform HTML5 data-management, JavaScript Language Query (JSLQ) support for OData, SQLite, WebSQL, IndexedDB, YQL and Facebook (packaged for Node.JS)
42 lines (33 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
var _TypeSystem = require('../TypeSystem.js');
var _TypeSystem2 = _interopRequireDefault(_TypeSystem);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* $data.SimpleBase */
_TypeSystem2.default.SimpleBase = function SimpleBase(data) {
if ((typeof data === 'undefined' ? 'undefined' : _typeof(data)) === 'object' && data) {
if (Array.isArray(this.constructor.validMembers)) {
for (var i = 0; i < this.constructor.validMembers.length; i++) {
var name = this.constructor.validMembers[i];
if (data[name] !== undefined) {
this[name] = data[name];
}
}
} else {
delete data.type;
_TypeSystem2.default.typeSystem.extend(this, data);
}
}
};
_TypeSystem2.default.SimpleBase.registerType = function (name, type, base) {
base = base || _TypeSystem2.default.SimpleBase;
type.type = name;
type.prototype = Object.create(base.prototype);
type.prototype.constructor = type;
};
_TypeSystem2.default.Container.registerType(['$data.SimpleBase', 'SimpleBase'], _TypeSystem2.default.SimpleBase);
exports.default = _TypeSystem2.default;
module.exports = exports['default'];