Skip to content

Commit f2e8c19

Browse files
authored
Merge pull request #28 from birkir/feature/prop-types
Use external PropTypes for better support.
2 parents 0899886 + 8c68c2e commit f2e8c19

9 files changed

+121
-71
lines changed

commonjs/AsyncComponentProvider.js

+15-11
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ var _react = require('react');
1010

1111
var _react2 = _interopRequireDefault(_react);
1212

13+
var _propTypes = require('prop-types');
14+
15+
var _propTypes2 = _interopRequireDefault(_propTypes);
16+
1317
var _createAsyncContext = require('./createAsyncContext');
1418

1519
var _createAsyncContext2 = _interopRequireDefault(_createAsyncContext);
@@ -65,14 +69,14 @@ var AsyncComponentProvider = function (_React$Component) {
6569
}(_react2.default.Component);
6670

6771
AsyncComponentProvider.propTypes = {
68-
children: _react2.default.PropTypes.node.isRequired,
69-
asyncContext: _react2.default.PropTypes.shape({
70-
getNextId: _react2.default.PropTypes.func.isRequired,
71-
resolved: _react2.default.PropTypes.func.isRequired,
72-
getState: _react2.default.PropTypes.func.isRequired
72+
children: _propTypes2.default.node.isRequired,
73+
asyncContext: _propTypes2.default.shape({
74+
getNextId: _propTypes2.default.func.isRequired,
75+
resolved: _propTypes2.default.func.isRequired,
76+
getState: _propTypes2.default.func.isRequired
7377
}),
74-
rehydrateState: _react2.default.PropTypes.shape({
75-
resolved: _react2.default.PropTypes.object
78+
rehydrateState: _propTypes2.default.shape({
79+
resolved: _propTypes2.default.object
7680
})
7781
};
7882
AsyncComponentProvider.defaultProps = {
@@ -82,10 +86,10 @@ AsyncComponentProvider.defaultProps = {
8286
}
8387
};
8488
AsyncComponentProvider.childContextTypes = {
85-
asyncComponents: _react2.default.PropTypes.shape({
86-
getNextId: _react2.default.PropTypes.func.isRequired,
87-
resolved: _react2.default.PropTypes.func.isRequired,
88-
shouldRehydrate: _react2.default.PropTypes.func.isRequired
89+
asyncComponents: _propTypes2.default.shape({
90+
getNextId: _propTypes2.default.func.isRequired,
91+
resolved: _propTypes2.default.func.isRequired,
92+
shouldRehydrate: _propTypes2.default.func.isRequired
8993
}).isRequired
9094
};
9195
exports.default = AsyncComponentProvider;

commonjs/asyncComponent.js

+12-8
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ var _react = require('react');
1414

1515
var _react2 = _interopRequireDefault(_react);
1616

17+
var _propTypes = require('prop-types');
18+
19+
var _propTypes2 = _interopRequireDefault(_propTypes);
20+
1721
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1822

1923
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -236,18 +240,18 @@ function asyncComponent(config) {
236240

237241
AsyncComponent.displayName = name || 'AsyncComponent';
238242
AsyncComponent.contextTypes = {
239-
asyncComponentsAncestor: _react2.default.PropTypes.shape({
240-
isBoundary: _react2.default.PropTypes.bool
243+
asyncComponentsAncestor: _propTypes2.default.shape({
244+
isBoundary: _propTypes2.default.bool
241245
}),
242-
asyncComponents: _react2.default.PropTypes.shape({
243-
getNextId: _react2.default.PropTypes.func.isRequired,
244-
resolved: _react2.default.PropTypes.func.isRequired,
245-
shouldRehydrate: _react2.default.PropTypes.func.isRequired
246+
asyncComponents: _propTypes2.default.shape({
247+
getNextId: _propTypes2.default.func.isRequired,
248+
resolved: _propTypes2.default.func.isRequired,
249+
shouldRehydrate: _propTypes2.default.func.isRequired
246250
})
247251
};
248252
AsyncComponent.childContextTypes = {
249-
asyncComponentsAncestor: _react2.default.PropTypes.shape({
250-
isBoundary: _react2.default.PropTypes.bool
253+
asyncComponentsAncestor: _propTypes2.default.shape({
254+
isBoundary: _propTypes2.default.bool
251255
})
252256
};
253257

package.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@
5454
},
5555
"peerDependencies": {
5656
"react": "^0.14.0 || ^15.0.0-0",
57-
"react-dom": "^0.14.0 || ^15.0.0-0"
57+
"react-dom": "^0.14.0 || ^15.0.0-0",
58+
"prop-types": "^15.0.0-0"
5859
},
5960
"dependencies": {},
6061
"devDependencies": {
@@ -90,6 +91,7 @@
9091
"prettier-eslint": "4.4.0",
9192
"prettier-eslint-cli": "3.2.0",
9293
"pretty-bytes": "4.0.2",
94+
"prop-types": "15.5.6",
9395
"ramda": "0.23.0",
9496
"react": "15.4.2",
9597
"react-addons-test-utils": "15.4.2",

src/AsyncComponentProvider.js

+12-11
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
import React from 'react'
2+
import PropTypes from 'prop-types'
23

34
import createAsyncContext from './createAsyncContext'
45

56
class AsyncComponentProvider extends React.Component {
67
static propTypes = {
7-
children: React.PropTypes.node.isRequired,
8-
asyncContext: React.PropTypes.shape({
9-
getNextId: React.PropTypes.func.isRequired,
10-
resolved: React.PropTypes.func.isRequired,
11-
getState: React.PropTypes.func.isRequired,
8+
children: PropTypes.node.isRequired,
9+
asyncContext: PropTypes.shape({
10+
getNextId: PropTypes.func.isRequired,
11+
resolved: PropTypes.func.isRequired,
12+
getState: PropTypes.func.isRequired,
1213
}),
13-
rehydrateState: React.PropTypes.shape({
14-
resolved: React.PropTypes.object,
14+
rehydrateState: PropTypes.shape({
15+
resolved: PropTypes.object,
1516
}),
1617
};
1718

@@ -23,10 +24,10 @@ class AsyncComponentProvider extends React.Component {
2324
};
2425

2526
static childContextTypes = {
26-
asyncComponents: React.PropTypes.shape({
27-
getNextId: React.PropTypes.func.isRequired,
28-
resolved: React.PropTypes.func.isRequired,
29-
shouldRehydrate: React.PropTypes.func.isRequired,
27+
asyncComponents: PropTypes.shape({
28+
getNextId: PropTypes.func.isRequired,
29+
resolved: PropTypes.func.isRequired,
30+
shouldRehydrate: PropTypes.func.isRequired,
3031
}).isRequired,
3132
};
3233

src/asyncComponent.js

+9-8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import React from 'react'
2+
import PropTypes from 'prop-types'
23

34
const validSSRModes = ['resolve', 'defer', 'boundary']
45

@@ -62,19 +63,19 @@ function asyncComponent(config) {
6263
static displayName = name || 'AsyncComponent';
6364

6465
static contextTypes = {
65-
asyncComponentsAncestor: React.PropTypes.shape({
66-
isBoundary: React.PropTypes.bool,
66+
asyncComponentsAncestor: PropTypes.shape({
67+
isBoundary: PropTypes.bool,
6768
}),
68-
asyncComponents: React.PropTypes.shape({
69-
getNextId: React.PropTypes.func.isRequired,
70-
resolved: React.PropTypes.func.isRequired,
71-
shouldRehydrate: React.PropTypes.func.isRequired,
69+
asyncComponents: PropTypes.shape({
70+
getNextId: PropTypes.func.isRequired,
71+
resolved: PropTypes.func.isRequired,
72+
shouldRehydrate: PropTypes.func.isRequired,
7273
}),
7374
};
7475

7576
static childContextTypes = {
76-
asyncComponentsAncestor: React.PropTypes.shape({
77-
isBoundary: React.PropTypes.bool,
77+
asyncComponentsAncestor: PropTypes.shape({
78+
isBoundary: PropTypes.bool,
7879
}),
7980
};
8081

tools/webpack/configFactory.js

+6
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@ function webpackConfigFactory({ target }) {
3434
commonjs: 'react-dom',
3535
commonjs2: 'react-dom',
3636
},
37+
'prop-types': {
38+
root: 'PropTypes',
39+
amd: 'prop-types',
40+
commonjs: 'prop-types',
41+
commonjs2: 'prop-types',
42+
},
3743
},
3844
plugins: removeEmpty([
3945
new webpack.DefinePlugin({

umd/react-async-component.js

+45-31
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
(function webpackUniversalModuleDefinition(root, factory) {
22
if(typeof exports === 'object' && typeof module === 'object')
3-
module.exports = factory(require("react"));
3+
module.exports = factory(require("prop-types"), require("react"));
44
else if(typeof define === 'function' && define.amd)
5-
define(["react"], factory);
5+
define(["prop-types", "react"], factory);
66
else if(typeof exports === 'object')
7-
exports["ReactAsyncComponent"] = factory(require("react"));
7+
exports["ReactAsyncComponent"] = factory(require("prop-types"), require("react"));
88
else
9-
root["ReactAsyncComponent"] = factory(root["React"]);
10-
})(this, function(__WEBPACK_EXTERNAL_MODULE_1__) {
9+
root["ReactAsyncComponent"] = factory(root["PropTypes"], root["React"]);
10+
})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__) {
1111
return /******/ (function(modules) { // webpackBootstrap
1212
/******/ // The module cache
1313
/******/ var installedModules = {};
@@ -73,7 +73,7 @@ return /******/ (function(modules) { // webpackBootstrap
7373
/******/ __webpack_require__.p = "";
7474
/******/
7575
/******/ // Load entry module and return exports
76-
/******/ return __webpack_require__(__webpack_require__.s = 4);
76+
/******/ return __webpack_require__(__webpack_require__.s = 5);
7777
/******/ })
7878
/************************************************************************/
7979
/******/ ([
@@ -119,6 +119,12 @@ module.exports = __WEBPACK_EXTERNAL_MODULE_1__;
119119

120120
/***/ }),
121121
/* 2 */
122+
/***/ (function(module, exports) {
123+
124+
module.exports = __WEBPACK_EXTERNAL_MODULE_2__;
125+
126+
/***/ }),
127+
/* 3 */
122128
/***/ (function(module, exports, __webpack_require__) {
123129

124130
"use strict";
@@ -130,10 +136,14 @@ Object.defineProperty(exports, "__esModule", {
130136

131137
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; }; }();
132138

133-
var _react = __webpack_require__(1);
139+
var _react = __webpack_require__(2);
134140

135141
var _react2 = _interopRequireDefault(_react);
136142

143+
var _propTypes = __webpack_require__(1);
144+
145+
var _propTypes2 = _interopRequireDefault(_propTypes);
146+
137147
var _createAsyncContext = __webpack_require__(0);
138148

139149
var _createAsyncContext2 = _interopRequireDefault(_createAsyncContext);
@@ -189,14 +199,14 @@ var AsyncComponentProvider = function (_React$Component) {
189199
}(_react2.default.Component);
190200

191201
AsyncComponentProvider.propTypes = {
192-
children: _react2.default.PropTypes.node.isRequired,
193-
asyncContext: _react2.default.PropTypes.shape({
194-
getNextId: _react2.default.PropTypes.func.isRequired,
195-
resolved: _react2.default.PropTypes.func.isRequired,
196-
getState: _react2.default.PropTypes.func.isRequired
202+
children: _propTypes2.default.node.isRequired,
203+
asyncContext: _propTypes2.default.shape({
204+
getNextId: _propTypes2.default.func.isRequired,
205+
resolved: _propTypes2.default.func.isRequired,
206+
getState: _propTypes2.default.func.isRequired
197207
}),
198-
rehydrateState: _react2.default.PropTypes.shape({
199-
resolved: _react2.default.PropTypes.object
208+
rehydrateState: _propTypes2.default.shape({
209+
resolved: _propTypes2.default.object
200210
})
201211
};
202212
AsyncComponentProvider.defaultProps = {
@@ -206,16 +216,16 @@ AsyncComponentProvider.defaultProps = {
206216
}
207217
};
208218
AsyncComponentProvider.childContextTypes = {
209-
asyncComponents: _react2.default.PropTypes.shape({
210-
getNextId: _react2.default.PropTypes.func.isRequired,
211-
resolved: _react2.default.PropTypes.func.isRequired,
212-
shouldRehydrate: _react2.default.PropTypes.func.isRequired
219+
asyncComponents: _propTypes2.default.shape({
220+
getNextId: _propTypes2.default.func.isRequired,
221+
resolved: _propTypes2.default.func.isRequired,
222+
shouldRehydrate: _propTypes2.default.func.isRequired
213223
}).isRequired
214224
};
215225
exports.default = AsyncComponentProvider;
216226

217227
/***/ }),
218-
/* 3 */
228+
/* 4 */
219229
/***/ (function(module, exports, __webpack_require__) {
220230

221231
"use strict";
@@ -231,10 +241,14 @@ var _createClass = function () { function defineProperties(target, props) { for
231241

232242
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
233243

234-
var _react = __webpack_require__(1);
244+
var _react = __webpack_require__(2);
235245

236246
var _react2 = _interopRequireDefault(_react);
237247

248+
var _propTypes = __webpack_require__(1);
249+
250+
var _propTypes2 = _interopRequireDefault(_propTypes);
251+
238252
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
239253

240254
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -457,18 +471,18 @@ function asyncComponent(config) {
457471

458472
AsyncComponent.displayName = name || 'AsyncComponent';
459473
AsyncComponent.contextTypes = {
460-
asyncComponentsAncestor: _react2.default.PropTypes.shape({
461-
isBoundary: _react2.default.PropTypes.bool
474+
asyncComponentsAncestor: _propTypes2.default.shape({
475+
isBoundary: _propTypes2.default.bool
462476
}),
463-
asyncComponents: _react2.default.PropTypes.shape({
464-
getNextId: _react2.default.PropTypes.func.isRequired,
465-
resolved: _react2.default.PropTypes.func.isRequired,
466-
shouldRehydrate: _react2.default.PropTypes.func.isRequired
477+
asyncComponents: _propTypes2.default.shape({
478+
getNextId: _propTypes2.default.func.isRequired,
479+
resolved: _propTypes2.default.func.isRequired,
480+
shouldRehydrate: _propTypes2.default.func.isRequired
467481
})
468482
};
469483
AsyncComponent.childContextTypes = {
470-
asyncComponentsAncestor: _react2.default.PropTypes.shape({
471-
isBoundary: _react2.default.PropTypes.bool
484+
asyncComponentsAncestor: _propTypes2.default.shape({
485+
isBoundary: _propTypes2.default.bool
472486
})
473487
};
474488

@@ -479,7 +493,7 @@ function asyncComponent(config) {
479493
exports.default = asyncComponent;
480494

481495
/***/ }),
482-
/* 4 */
496+
/* 5 */
483497
/***/ (function(module, exports, __webpack_require__) {
484498

485499
"use strict";
@@ -490,15 +504,15 @@ Object.defineProperty(exports, "__esModule", {
490504
});
491505
exports.asyncComponent = exports.createAsyncContext = exports.AsyncComponentProvider = undefined;
492506

493-
var _AsyncComponentProvider = __webpack_require__(2);
507+
var _AsyncComponentProvider = __webpack_require__(3);
494508

495509
var _AsyncComponentProvider2 = _interopRequireDefault(_AsyncComponentProvider);
496510

497511
var _createAsyncContext = __webpack_require__(0);
498512

499513
var _createAsyncContext2 = _interopRequireDefault(_createAsyncContext);
500514

501-
var _asyncComponent = __webpack_require__(3);
515+
var _asyncComponent = __webpack_require__(4);
502516

503517
var _asyncComponent2 = _interopRequireDefault(_asyncComponent);
504518

0 commit comments

Comments
 (0)