@codersvn/model
Version:
NF Repository is a abstract layer of Sequelize Application, that make application more easy to understand and flexible to maintain.
89 lines (74 loc) • 2.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Model = undefined;
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _getOwnPropertyNames = require('babel-runtime/core-js/object/get-own-property-names');
var _getOwnPropertyNames2 = _interopRequireDefault(_getOwnPropertyNames);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Model = exports.Model = function () {
function Model() {
(0, _classCallCheck3.default)(this, Model);
}
(0, _createClass3.default)(Model, [{
key: 'bind',
value: function bind() {
var _this = this;
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var keep_function = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
// tslint:disable-next-line:forin
for (var k in options) {
var v = options[k];
if (typeof v === 'function') {
if (keep_function === true) {
this[k] = v;
}
continue;
}
if (v !== null && v !== undefined) {
if (typeof this[k] === 'function') {
this[k] = this[k](v);
} else {
this[k] = v;
}
}
(0, _getOwnPropertyNames2.default)(this).forEach(function (property) {
if (options[property] === null || options[property] === undefined) {
delete _this[property];
} else {
var proto = (0, _getPrototypeOf2.default)(_this);
// tslint:disable-next-line:prefer-const
var method = _this.camelCase('get_' + property);
proto[method] = function () {
return this[property];
};
}
});
}
}
}, {
key: 'camelCase',
value: function camelCase(string) {
string = string.toLowerCase();
string = string.replace(/[^a-z0-9]/g, ' ');
string = string.replace(/\s{2}/g, '');
string = string.replace(/\w+/g, function (match) {
return match.replace(/\b./, function (item) {
return item.toUpperCase();
});
});
string = string.replace(/\s/g, '');
string = string.replace(/\b./, function (item) {
return item.toLowerCase();
});
return string;
}
}]);
return Model;
}();