UNPKG

class-o-mat

Version:

ALPHA VERSION ONLY: class-o-mats will help to create getter-setter functionality with validations that can be attached to a container class for easier coding. Some basic validations are included. class-o-mats also has the ability to store params as bloc

116 lines (91 loc) 3.28 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _bunyan = require('bunyan'); var _bunyan2 = _interopRequireDefault(_bunyan); var _types = require('../constants/types'); var _fieldOMat = require('./field-o-mat'); var _fieldOMat2 = _interopRequireDefault(_fieldOMat); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var log = _bunyan2.default.createLogger({ name: "ClassOMat" }); var RadioOption = function () { function RadioOption(parent, key) { _classCallCheck(this, RadioOption); this.TYPE = _types.RADIO_OPTION; this._params = { parent: parent, key: key, value: _types.NONE }; } _createClass(RadioOption, [{ key: '$', value: function $() { return this._params.parent.$(); } }, { key: 'value', value: function value(_value) { this._params.value = _value; return this; } }, { key: 'value$', value: function value$(value) { return this.value(value).$(); } }, { key: 'option', value: function option(key) { return this._params.parent.option(key); } }]); return RadioOption; }(); var RadioOMat = function () { function RadioOMat(parent, key) { _classCallCheck(this, RadioOMat); this.TYPE = _types.RADIO_O_MAT; this._params = { parent: parent, key: key, baseField: _types.NONE, options: [] }; } _createClass(RadioOMat, [{ key: '$', value: function $() { var _params = this._params, parent = _params.parent, key = _params.key, baseField = _params.baseField, options = _params.options; parent._params.fieldOMats.push(baseField); var internalKey = baseField.internalKey(); options.forEach(function (option) { var _option$_params = option._params, key = _option$_params.key, value = _option$_params.value; parent.field(key).staticSetter(value).internalKey(internalKey); }); return parent; } }, { key: 'base', value: function base(key) { var baseField = new _fieldOMat2.default(this, key).getter(); this._params.baseField = baseField; return baseField; } }, { key: 'option', value: function option(key) { var radioOption = new RadioOption(this, key); this._params.options.push(radioOption); return radioOption; } }]); return RadioOMat; }(); exports.default = RadioOMat; //# sourceMappingURL=radio-o-mat.js.map