UNPKG

@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
'use strict'; 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; }();