UNPKG

react-component-decorators

Version:
79 lines (59 loc) 3.2 kB
'use strict'; exports.__esModule = true; exports.renderArgsClass = exports.applyInjectProps = undefined; var _injectProps = require('./injectProps'); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } function renderArgsClass() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['props', 'state']; var propsToInject = ['props', 'state']; if (!Array.isArray(options)) { var decoratorArgsBecauseNoOptions = options; return decorate(decoratorArgsBecauseNoOptions); } else { propsToInject = options; } function decorate(target) { var _dec, _desc, _value, _class; return _dec = (0, _injectProps.applyInjectProps)(propsToInject), (_class = function (_target) { _inherits(InjectPropsClass, _target); function InjectPropsClass() { _classCallCheck(this, InjectPropsClass); return _possibleConstructorReturn(this, _target.apply(this, arguments)); } InjectPropsClass.prototype.render = function render() { // console.debug('------ rendering with args', {props: this.props, state: this.state}) return _target.prototype.render.call(this, this.props, this.state); }; return InjectPropsClass; }(target), (_applyDecoratedDescriptor(_class.prototype, 'render', [_dec], Object.getOwnPropertyDescriptor(_class.prototype, 'render'), _class.prototype)), _class); } return decorate; } exports.default = renderArgsClass; exports.applyInjectProps = _injectProps.applyInjectProps; exports.renderArgsClass = renderArgsClass;