1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.__RewireAPI__ = exports.__ResetDependency__ = exports.__set__ = exports.__Rewire__ = exports.__GetDependency__ = exports.__get__ = exports.RedBoxError = undefined;
|
7 |
|
8 | 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; };
|
9 |
|
10 | 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; }; }();
|
11 |
|
12 | var _react = require('react');
|
13 |
|
14 | var _react2 = _interopRequireDefault(_react);
|
15 |
|
16 | var _reactDom = require('react-dom');
|
17 |
|
18 | var _reactDom2 = _interopRequireDefault(_reactDom);
|
19 |
|
20 | var _style = require('./style.js');
|
21 |
|
22 | var _style2 = _interopRequireDefault(_style);
|
23 |
|
24 | var _errorStackParser = require('error-stack-parser');
|
25 |
|
26 | var _errorStackParser2 = _interopRequireDefault(_errorStackParser);
|
27 |
|
28 | var _objectAssign = require('object-assign');
|
29 |
|
30 | var _objectAssign2 = _interopRequireDefault(_objectAssign);
|
31 |
|
32 | var _lib = require('./lib');
|
33 |
|
34 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
35 |
|
36 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
37 |
|
38 | 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; }
|
39 |
|
40 | 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; }
|
41 |
|
42 | var RedBoxError = exports.RedBoxError = function (_get__2) {
|
43 | _inherits(RedBoxError, _get__2);
|
44 |
|
45 | function RedBoxError() {
|
46 | _classCallCheck(this, RedBoxError);
|
47 |
|
48 | return _possibleConstructorReturn(this, (RedBoxError.__proto__ || Object.getPrototypeOf(RedBoxError)).apply(this, arguments));
|
49 | }
|
50 |
|
51 | _createClass(RedBoxError, [{
|
52 | key: 'renderFrames',
|
53 | value: function renderFrames(frames) {
|
54 | var _props = this.props,
|
55 | filename = _props.filename,
|
56 | editorScheme = _props.editorScheme,
|
57 | useLines = _props.useLines,
|
58 | useColumns = _props.useColumns;
|
59 |
|
60 | var _get__3 = _get__('assign')({}, _get__('style'), this.props.style),
|
61 | frame = _get__3.frame,
|
62 | file = _get__3.file,
|
63 | linkToFile = _get__3.linkToFile;
|
64 |
|
65 | return frames.map(function (f, index) {
|
66 | var text = void 0;
|
67 | var url = void 0;
|
68 |
|
69 | if (index === 0 && filename && !_get__('isFilenameAbsolute')(f.fileName)) {
|
70 | url = _get__('makeUrl')(filename, editorScheme);
|
71 | text = _get__('makeLinkText')(filename);
|
72 | } else {
|
73 | var lines = useLines ? f.lineNumber : null;
|
74 | var columns = useColumns ? f.columnNumber : null;
|
75 | url = _get__('makeUrl')(f.fileName, editorScheme, lines, columns);
|
76 | text = _get__('makeLinkText')(f.fileName, lines, columns);
|
77 | }
|
78 |
|
79 | return _get__('React').createElement(
|
80 | 'div',
|
81 | { style: frame, key: index },
|
82 | _get__('React').createElement(
|
83 | 'div',
|
84 | null,
|
85 | f.functionName
|
86 | ),
|
87 | _get__('React').createElement(
|
88 | 'div',
|
89 | { style: file },
|
90 | _get__('React').createElement(
|
91 | 'a',
|
92 | { href: url, style: linkToFile },
|
93 | text
|
94 | )
|
95 | )
|
96 | );
|
97 | });
|
98 | }
|
99 | }, {
|
100 | key: 'render',
|
101 | value: function render() {
|
102 | var _props2 = this.props,
|
103 | error = _props2.error,
|
104 | className = _props2.className;
|
105 |
|
106 | var _get__4 = _get__('assign')({}, _get__('style'), this.props.style),
|
107 | redbox = _get__4.redbox,
|
108 | message = _get__4.message,
|
109 | stack = _get__4.stack,
|
110 | frame = _get__4.frame;
|
111 |
|
112 | var frames = void 0;
|
113 | var parseError = void 0;
|
114 | try {
|
115 | frames = _get__('ErrorStackParser').parse(error);
|
116 | } catch (e) {
|
117 | parseError = new Error('Failed to parse stack trace. Stack trace information unavailable.');
|
118 | }
|
119 |
|
120 | if (parseError) {
|
121 | frames = _get__('React').createElement(
|
122 | 'div',
|
123 | { style: frame, key: 0 },
|
124 | _get__('React').createElement(
|
125 | 'div',
|
126 | null,
|
127 | parseError.message
|
128 | )
|
129 | );
|
130 | } else {
|
131 | frames = this.renderFrames(frames);
|
132 | }
|
133 |
|
134 | return _get__('React').createElement(
|
135 | 'div',
|
136 | { style: redbox, className: className },
|
137 | _get__('React').createElement(
|
138 | 'div',
|
139 | { style: message },
|
140 | error.name,
|
141 | ': ',
|
142 | error.message
|
143 | ),
|
144 | _get__('React').createElement(
|
145 | 'div',
|
146 | { style: stack },
|
147 | frames
|
148 | )
|
149 | );
|
150 | }
|
151 | }]);
|
152 |
|
153 | return RedBoxError;
|
154 | }(_get__('Component'));
|
155 |
|
156 |
|
157 |
|
158 |
|
159 |
|
160 | RedBoxError.propTypes = {
|
161 | error: _get__('PropTypes').instanceOf(Error).isRequired,
|
162 | filename: _get__('PropTypes').string,
|
163 | editorScheme: _get__('PropTypes').string,
|
164 | useLines: _get__('PropTypes').bool,
|
165 | useColumns: _get__('PropTypes').bool,
|
166 | style: _get__('PropTypes').object,
|
167 | className: _get__('PropTypes').string
|
168 | };
|
169 | RedBoxError.displayName = 'RedBoxError';
|
170 | RedBoxError.defaultProps = {
|
171 | useLines: true,
|
172 | useColumns: true
|
173 | };
|
174 |
|
175 | var RedBox = function (_get__5) {
|
176 | _inherits(RedBox, _get__5);
|
177 |
|
178 | function RedBox() {
|
179 | _classCallCheck(this, RedBox);
|
180 |
|
181 | return _possibleConstructorReturn(this, (RedBox.__proto__ || Object.getPrototypeOf(RedBox)).apply(this, arguments));
|
182 | }
|
183 |
|
184 | _createClass(RedBox, [{
|
185 | key: 'componentDidMount',
|
186 | value: function componentDidMount() {
|
187 | this.el = document.createElement('div');
|
188 | document.body.appendChild(this.el);
|
189 | this.renderRedBoxError();
|
190 | }
|
191 | }, {
|
192 | key: 'componentDidUpdate',
|
193 | value: function componentDidUpdate() {
|
194 | this.renderRedBoxError();
|
195 | }
|
196 | }, {
|
197 | key: 'componentWillUnmount',
|
198 | value: function componentWillUnmount() {
|
199 | _get__('ReactDOM').unmountComponentAtNode(this.el);
|
200 | document.body.removeChild(this.el);
|
201 | this.el = null;
|
202 | }
|
203 | }, {
|
204 | key: 'renderRedBoxError',
|
205 | value: function renderRedBoxError() {
|
206 | _get__('ReactDOM').render(_get__('React').createElement(_get__('RedBoxError'), this.props), this.el);
|
207 | }
|
208 | }, {
|
209 | key: 'render',
|
210 | value: function render() {
|
211 | return null;
|
212 | }
|
213 | }]);
|
214 |
|
215 | return RedBox;
|
216 | }(_get__('Component'));
|
217 |
|
218 | RedBox.propTypes = {
|
219 | error: _get__('PropTypes').instanceOf(Error).isRequired
|
220 | };
|
221 | RedBox.displayName = 'RedBox';
|
222 | exports.default = RedBox;
|
223 |
|
224 | var _RewiredData__ = Object.create(null);
|
225 |
|
226 | var INTENTIONAL_UNDEFINED = '__INTENTIONAL_UNDEFINED__';
|
227 | var _RewireAPI__ = {};
|
228 |
|
229 | (function () {
|
230 | function addPropertyToAPIObject(name, value) {
|
231 | Object.defineProperty(_RewireAPI__, name, {
|
232 | value: value,
|
233 | enumerable: false,
|
234 | configurable: true
|
235 | });
|
236 | }
|
237 |
|
238 | addPropertyToAPIObject('__get__', _get__);
|
239 | addPropertyToAPIObject('__GetDependency__', _get__);
|
240 | addPropertyToAPIObject('__Rewire__', _set__);
|
241 | addPropertyToAPIObject('__set__', _set__);
|
242 | addPropertyToAPIObject('__reset__', _reset__);
|
243 | addPropertyToAPIObject('__ResetDependency__', _reset__);
|
244 | addPropertyToAPIObject('__with__', _with__);
|
245 | })();
|
246 |
|
247 | function _get__(variableName) {
|
248 | if (_RewiredData__ === undefined || _RewiredData__[variableName] === undefined) {
|
249 | return _get_original__(variableName);
|
250 | } else {
|
251 | var value = _RewiredData__[variableName];
|
252 |
|
253 | if (value === INTENTIONAL_UNDEFINED) {
|
254 | return undefined;
|
255 | } else {
|
256 | return value;
|
257 | }
|
258 | }
|
259 | }
|
260 |
|
261 | function _get_original__(variableName) {
|
262 | switch (variableName) {
|
263 | case 'PropTypes':
|
264 | return _react.PropTypes;
|
265 |
|
266 | case 'assign':
|
267 | return _objectAssign2.default;
|
268 |
|
269 | case 'style':
|
270 | return _style2.default;
|
271 |
|
272 | case 'isFilenameAbsolute':
|
273 | return _lib.isFilenameAbsolute;
|
274 |
|
275 | case 'makeUrl':
|
276 | return _lib.makeUrl;
|
277 |
|
278 | case 'makeLinkText':
|
279 | return _lib.makeLinkText;
|
280 |
|
281 | case 'ErrorStackParser':
|
282 | return _errorStackParser2.default;
|
283 |
|
284 | case 'Component':
|
285 | return _react.Component;
|
286 |
|
287 | case 'ReactDOM':
|
288 | return _reactDom2.default;
|
289 |
|
290 | case 'React':
|
291 | return _react2.default;
|
292 |
|
293 | case 'RedBoxError':
|
294 | return RedBoxError;
|
295 | }
|
296 |
|
297 | return undefined;
|
298 | }
|
299 |
|
300 | function _assign__(variableName, value) {
|
301 | if (_RewiredData__ === undefined || _RewiredData__[variableName] === undefined) {
|
302 | return _set_original__(variableName, value);
|
303 | } else {
|
304 | return _RewiredData__[variableName] = value;
|
305 | }
|
306 | }
|
307 |
|
308 | function _set_original__(variableName, _value) {
|
309 | switch (variableName) {}
|
310 |
|
311 | return undefined;
|
312 | }
|
313 |
|
314 | function _update_operation__(operation, variableName, prefix) {
|
315 | var oldValue = _get__(variableName);
|
316 |
|
317 | var newValue = operation === '++' ? oldValue + 1 : oldValue - 1;
|
318 |
|
319 | _assign__(variableName, newValue);
|
320 |
|
321 | return prefix ? newValue : oldValue;
|
322 | }
|
323 |
|
324 | function _set__(variableName, value) {
|
325 | if ((typeof variableName === 'undefined' ? 'undefined' : _typeof(variableName)) === 'object') {
|
326 | Object.keys(variableName).forEach(function (name) {
|
327 | _RewiredData__[name] = variableName[name];
|
328 | });
|
329 | } else {
|
330 | if (value === undefined) {
|
331 | _RewiredData__[variableName] = INTENTIONAL_UNDEFINED;
|
332 | } else {
|
333 | _RewiredData__[variableName] = value;
|
334 | }
|
335 |
|
336 | return function () {
|
337 | _reset__(variableName);
|
338 | };
|
339 | }
|
340 | }
|
341 |
|
342 | function _reset__(variableName) {
|
343 | delete _RewiredData__[variableName];
|
344 | }
|
345 |
|
346 | function _with__(object) {
|
347 | var rewiredVariableNames = Object.keys(object);
|
348 | var previousValues = {};
|
349 |
|
350 | function reset() {
|
351 | rewiredVariableNames.forEach(function (variableName) {
|
352 | _RewiredData__[variableName] = previousValues[variableName];
|
353 | });
|
354 | }
|
355 |
|
356 | return function (callback) {
|
357 | rewiredVariableNames.forEach(function (variableName) {
|
358 | previousValues[variableName] = _RewiredData__[variableName];
|
359 | _RewiredData__[variableName] = object[variableName];
|
360 | });
|
361 | var result = callback();
|
362 |
|
363 | if (!!result && typeof result.then == 'function') {
|
364 | result.then(reset).catch(reset);
|
365 | } else {
|
366 | reset();
|
367 | }
|
368 |
|
369 | return result;
|
370 | };
|
371 | }
|
372 |
|
373 | var _typeOfOriginalExport = typeof RedBox === 'undefined' ? 'undefined' : _typeof(RedBox);
|
374 |
|
375 | function addNonEnumerableProperty(name, value) {
|
376 | Object.defineProperty(RedBox, name, {
|
377 | value: value,
|
378 | enumerable: false,
|
379 | configurable: true
|
380 | });
|
381 | }
|
382 |
|
383 | if ((_typeOfOriginalExport === 'object' || _typeOfOriginalExport === 'function') && Object.isExtensible(RedBox)) {
|
384 | addNonEnumerableProperty('__get__', _get__);
|
385 | addNonEnumerableProperty('__GetDependency__', _get__);
|
386 | addNonEnumerableProperty('__Rewire__', _set__);
|
387 | addNonEnumerableProperty('__set__', _set__);
|
388 | addNonEnumerableProperty('__reset__', _reset__);
|
389 | addNonEnumerableProperty('__ResetDependency__', _reset__);
|
390 | addNonEnumerableProperty('__with__', _with__);
|
391 | addNonEnumerableProperty('__RewireAPI__', _RewireAPI__);
|
392 | }
|
393 |
|
394 | exports.__get__ = _get__;
|
395 | exports.__GetDependency__ = _get__;
|
396 | exports.__Rewire__ = _set__;
|
397 | exports.__set__ = _set__;
|
398 | exports.__ResetDependency__ = _reset__;
|
399 | exports.__RewireAPI__ = _RewireAPI__; |
\ | No newline at end of file |