Skip to content

Commit ba4f5c5

Browse files
committed
Separation of code logic.
1 parent e2684a5 commit ba4f5c5

File tree

6 files changed

+289
-149
lines changed

6 files changed

+289
-149
lines changed

dist/index copy.js

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
'use strict';
2+
3+
Object.defineProperty(exports, '__esModule', {
4+
value: true
5+
});
6+
7+
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; }; })();
8+
9+
var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
10+
11+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
12+
13+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
14+
15+
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; }
16+
17+
var _react = require('react');
18+
19+
var _react2 = _interopRequireDefault(_react);
20+
21+
var _reactDom = require('react-dom');
22+
23+
var _reactDom2 = _interopRequireDefault(_reactDom);
24+
25+
var _lodashLangIsArray = require('lodash/lang/isArray');
26+
27+
var _lodashLangIsArray2 = _interopRequireDefault(_lodashLangIsArray);
28+
29+
var _lodash = require('lodash');
30+
31+
var _lodash2 = _interopRequireDefault(_lodash);
32+
33+
var unfreeze = undefined;
34+
35+
/**
36+
* Make a shallow copy of the object.
37+
*
38+
* @param {Object} source Frozen object.
39+
* @return {Object}
40+
*/
41+
unfreeze = function (source) {
42+
var property = undefined,
43+
target = undefined;
44+
45+
target = {};
46+
47+
for (property in source) {
48+
target[property] = source[property];
49+
}
50+
51+
return target;
52+
};
53+
54+
/**
55+
* @param {ReactClass} Target
56+
* @return {ReactClass}
57+
*/
58+
59+
exports['default'] = function (Target, styles) {
60+
var linkClass = undefined;
61+
62+
console.log('styles', styles);
63+
64+
/**
65+
* @param {ReactElement} element
66+
* @return {ReactElement}
67+
*/
68+
linkClass = function (element) {
69+
var isFrozen = undefined;
70+
71+
if (Object.isFrozen && Object.isFrozen(element)) {
72+
isFrozen = true;
73+
74+
// https://github.com/facebook/react/blob/v0.13.3/src/classic/element/ReactElement.js#L131
75+
element = unfreeze(element);
76+
element.props = unfreeze(element.props);
77+
}
78+
79+
if (element.props.className) {
80+
element.props.className = element.props.className.split(' ').map(function (className) {
81+
if (styles[className]) {
82+
return className + ' ' + styles[className];
83+
} else {
84+
return className;
85+
}
86+
}).join(' ');
87+
}
88+
89+
if ((0, _lodashLangIsArray2['default'])(element.props.children)) {
90+
element.props.children = element.props.children.map(function (node) {
91+
if (_react2['default'].isValidElement(node)) {
92+
return linkClass(node);
93+
} else {
94+
return node;
95+
}
96+
});
97+
}
98+
99+
if (isFrozen) {
100+
Object.freeze(element);
101+
Object.freeze(element.props);
102+
}
103+
104+
return element;
105+
};
106+
107+
return (function (_Target) {
108+
_inherits(_class, _Target);
109+
110+
function _class() {
111+
_classCallCheck(this, _class);
112+
113+
_get(Object.getPrototypeOf(_class.prototype), 'constructor', this).apply(this, arguments);
114+
}
115+
116+
_createClass(_class, [{
117+
key: 'render',
118+
value: function render() {
119+
return linkClass(_get(Object.getPrototypeOf(_class.prototype), 'render', this).call(this));
120+
}
121+
}]);
122+
123+
return _class;
124+
})(Target);
125+
};
126+
127+
module.exports = exports['default'];

dist/index.js

Lines changed: 4 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -14,90 +14,17 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
1414

1515
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; }
1616

17-
var _react = require('react');
17+
var _linkClass = require('./linkClass');
1818

19-
var _react2 = _interopRequireDefault(_react);
20-
21-
var _reactDom = require('react-dom');
22-
23-
var _reactDom2 = _interopRequireDefault(_reactDom);
24-
25-
var _lodashLangIsArray = require('lodash/lang/isArray');
26-
27-
var _lodashLangIsArray2 = _interopRequireDefault(_lodashLangIsArray);
28-
29-
var unfreeze = undefined;
30-
31-
/**
32-
* Naive implementation of a method to unfreeze an object.
33-
*
34-
* @param {Object} source Frozen object.
35-
* @return {Object}
36-
*/
37-
unfreeze = function (source) {
38-
var property = undefined,
39-
target = undefined;
40-
41-
target = {};
42-
43-
for (property in source) {
44-
target[property] = source[property];
45-
}
46-
47-
return target;
48-
};
19+
var _linkClass2 = _interopRequireDefault(_linkClass);
4920

5021
/**
5122
* @param {ReactClass} Target
23+
* @param {Object} styles
5224
* @return {ReactClass}
5325
*/
5426

5527
exports['default'] = function (Target, styles) {
56-
var linkClass = undefined;
57-
58-
/**
59-
* @param {ReactElement} element
60-
* @return {ReactElement}
61-
*/
62-
linkClass = function (element) {
63-
var isFrozen = undefined;
64-
65-
if (Object.isFrozen && Object.isFrozen(element)) {
66-
isFrozen = true;
67-
68-
// https://github.com/facebook/react/blob/v0.13.3/src/classic/element/ReactElement.js#L131
69-
element = unfreeze(element);
70-
element.props = unfreeze(element.props);
71-
}
72-
73-
if (element.props.className) {
74-
element.props.className = element.props.className.split(' ').map(function (className) {
75-
if (styles[className]) {
76-
return className + ' ' + styles[className];
77-
} else {
78-
return className;
79-
}
80-
}).join(' ');
81-
}
82-
83-
if ((0, _lodashLangIsArray2['default'])(element.props.children)) {
84-
element.props.children = element.props.children.map(function (node) {
85-
if (_react2['default'].isValidElement(node)) {
86-
return linkClass(node);
87-
} else {
88-
return node;
89-
}
90-
});
91-
}
92-
93-
if (isFrozen) {
94-
Object.freeze(element);
95-
Object.freeze(element.props);
96-
}
97-
98-
return element;
99-
};
100-
10128
return (function (_Target) {
10229
_inherits(_class, _Target);
10330

@@ -110,7 +37,7 @@ exports['default'] = function (Target, styles) {
11037
_createClass(_class, [{
11138
key: 'render',
11239
value: function render() {
113-
return linkClass(_get(Object.getPrototypeOf(_class.prototype), 'render', this).call(this));
40+
return (0, _linkClass2['default'])(_get(Object.getPrototypeOf(_class.prototype), 'render', this).call(this), styles);
11441
}
11542
}]);
11643

dist/linkClass.js

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
'use strict';
2+
3+
Object.defineProperty(exports, '__esModule', {
4+
value: true
5+
});
6+
7+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
8+
9+
var _react = require('react');
10+
11+
var _react2 = _interopRequireDefault(_react);
12+
13+
var _lodashLangIsArray = require('lodash/lang/isArray');
14+
15+
var _lodashLangIsArray2 = _interopRequireDefault(_lodashLangIsArray);
16+
17+
var linkClass = undefined,
18+
unfreeze = undefined;
19+
20+
/**
21+
* Make a shallow copy of the object.
22+
*
23+
* @param {Object} source Frozen object.
24+
* @return {Object}
25+
*/
26+
unfreeze = function (source) {
27+
var property = undefined,
28+
target = undefined;
29+
30+
target = {};
31+
32+
for (property in source) {
33+
target[property] = source[property];
34+
}
35+
36+
return target;
37+
};
38+
39+
/**
40+
* @param {ReactElement} element
41+
* @param {Object} styles
42+
* @return {ReactElement}
43+
*/
44+
linkClass = function (element, styles) {
45+
var isFrozen = undefined;
46+
47+
if (Object.isFrozen && Object.isFrozen(element)) {
48+
isFrozen = true;
49+
50+
// https://github.com/facebook/react/blob/v0.13.3/src/classic/element/ReactElement.js#L131
51+
element = unfreeze(element);
52+
element.props = unfreeze(element.props);
53+
}
54+
55+
if (element.props.className) {
56+
element.props.className = element.props.className.split(' ').map(function (className) {
57+
if (styles[className]) {
58+
return className + ' ' + styles[className];
59+
} else {
60+
return className;
61+
}
62+
}).join(' ');
63+
}
64+
65+
if ((0, _lodashLangIsArray2['default'])(element.props.children)) {
66+
element.props.children = element.props.children.map(function (node) {
67+
if (_react2['default'].isValidElement(node)) {
68+
return linkClass(node, styles);
69+
} else {
70+
return node;
71+
}
72+
});
73+
}
74+
75+
if (isFrozen) {
76+
Object.freeze(element);
77+
Object.freeze(element.props);
78+
}
79+
80+
return element;
81+
};
82+
83+
exports['default'] = linkClass;
84+
module.exports = exports['default'];

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@
1919
},
2020
"license": "BSD-3-Clause",
2121
"peerDependencies": {
22-
"react": "^0.14.0-beta3",
23-
"react-dom": "^0.14.0-beta3"
22+
"react": "^0.14.0-beta3"
2423
},
2524
"dependencies": {
2625
"lodash": "^3.10.1"

0 commit comments

Comments
 (0)