UNPKG

instantjob-recruiter-client

Version:

a set of tools for creating an instantjob recruiter react client

75 lines (56 loc) 2.45 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _getOwnPropertyDescriptor = require('babel-runtime/core-js/object/get-own-property-descriptor'); var _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor); var _getOwnPropertyNames = require('babel-runtime/core-js/object/get-own-property-names'); var _getOwnPropertyNames2 = _interopRequireDefault(_getOwnPropertyNames); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _defineProperty = require('babel-runtime/core-js/object/define-property'); var _defineProperty2 = _interopRequireDefault(_defineProperty); exports.default = auto_bind; var _utilities = require('./utilities'); var _constants = require('./constants'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var react_properties_set = (0, _utilities.set_from_array)(["constructor", "componentWillMount", "render", "componentDidMount", "componentWillReceiveProps", "shouldComponentUpdate", "componentWillUpdate", "componentDidUpdate", "componentWillUnmount"]); var is_not_react_property = function is_not_react_property(property) { return !react_properties_set[property]; }; // from react-autobind function boundMethod(objPrototype, method, descriptor) { var fn = descriptor.value; return { configurable: true, get: function get() { if (this === objPrototype || this.hasOwnProperty(method)) { return fn; } var boundFn = fn.bind(this); (0, _defineProperty2.default)(this, method, { value: boundFn, configurable: true, writable: true }); return boundFn; }, set: function set(new_fn) { fn = new_fn; } }; } function auto_bind(component) { var prototype = (0, _getPrototypeOf2.default)(component); (0, _getOwnPropertyNames2.default)(prototype).filter(is_not_react_property).forEach(function (property) { var descriptor = (0, _getOwnPropertyDescriptor2.default)(prototype, property); if (descriptor === undefined) { _constants.DEV && console.warn('Autobind: "' + method + '" method not found in class.'); return; } if (typeof descriptor.value !== 'function') { return; } (0, _defineProperty2.default)(prototype, property, boundMethod(prototype, property, descriptor)); }); }