Skip to content
This repository was archived by the owner on Jul 30, 2020. It is now read-only.

Commit 00129c8

Browse files
author
Brandon Carroll
committed
fix(npm): transpile library for use in projects
1 parent 5e7b694 commit 00129c8

14 files changed

+997
-5
lines changed

.travis.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
sudo: false
22
language: node_js
33
node_js:
4+
- '8'
45
- '9'
56
- '10'
67
- '11'
@@ -13,6 +14,7 @@ jobs:
1314
include:
1415
- stage: release
1516
branches:
16-
only: master
17+
only:
18+
- master
1719
node_js: '10'
1820
script: npm run semantic-release

build/act-compat.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Object.defineProperty(exports, '__esModule', { value: true });
2+
exports.default = void 0;
3+
var _reactTestRenderer = require('react-test-renderer');
4+
function actPolyfill(callback) {
5+
callback();
6+
}
7+
var act = _reactTestRenderer.act || actPolyfill;
8+
function rntlAct(callback) {
9+
return act(callback);
10+
}
11+
var _default = rntlAct;
12+
exports.default = _default;

build/events.js

Lines changed: 234 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,234 @@
1+
var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault');
2+
Object.defineProperty(exports, '__esModule', { value: true });
3+
exports.fireEvent = fireEvent;
4+
exports.getEventHandlerName = getEventHandlerName;
5+
exports.NativeEvent = void 0;
6+
var _classCallCheck2 = _interopRequireDefault(require('@babel/runtime/helpers/classCallCheck'));
7+
var _createClass2 = _interopRequireDefault(require('@babel/runtime/helpers/createClass'));
8+
var eventMap = {
9+
focus: {
10+
type: 'FocusEvent',
11+
validTargets: [
12+
'TextInput',
13+
'Touchable',
14+
'TouchableBounce',
15+
'TouchableHighlight',
16+
'TouchableOpacity',
17+
'TouchableWithoutFeedback',
18+
'TouchableNativeFeedback',
19+
],
20+
},
21+
blur: {
22+
type: 'BlurEvent',
23+
validTargets: [
24+
'TextInput',
25+
'Touchable',
26+
'TouchableBounce',
27+
'TouchableHighlight',
28+
'TouchableOpacity',
29+
'TouchableWithoutFeedback',
30+
],
31+
},
32+
change: {
33+
type: 'ChangeEvent',
34+
validTargets: [
35+
'SegmentedControlIOS',
36+
'PickerIOS',
37+
'Switch',
38+
'DatePickerIOS',
39+
'Checkbox',
40+
'TextInput',
41+
],
42+
},
43+
contentSizeChange: {
44+
type: 'ContentSizeChangeEvent',
45+
validTargets: ['VirtualizedList', 'FlatList', 'SectionList', 'TextInput', 'ScrollView'],
46+
},
47+
endEditing: { type: 'EditingEvent', validTargets: ['TextInput'] },
48+
keyPress: { type: 'KeyPressEvent', validTargets: ['TextInput'] },
49+
submitEditing: { type: 'EditingEvent', validTargets: ['TextInput'] },
50+
layout: {
51+
type: 'LayoutEvent',
52+
validTargets: [
53+
'ActivityIndicator',
54+
'FlatList',
55+
'Image',
56+
'KeyboardAvoidingView',
57+
'ScrollView',
58+
'ScrollViewStickyHeader',
59+
'SectionList',
60+
'Text',
61+
'TextInput',
62+
'Touchable',
63+
'TouchableHighlight',
64+
'TouchableNativeFeedback',
65+
'TouchableOpacity',
66+
'TouchableWithoutFeedback',
67+
'View',
68+
'VirtualizedList',
69+
'WindowedListView',
70+
],
71+
},
72+
selectionChange: { type: 'SelectionChangeEvent', validTargets: ['TextInput'] },
73+
longPress: {
74+
type: 'PressEvent',
75+
validTargets: [
76+
'Touchable',
77+
'TouchableBounce',
78+
'TouchableHighlight',
79+
'TouchableOpacity',
80+
'TouchableWithoutFeedback',
81+
'TouchableNativeFeedback',
82+
],
83+
},
84+
press: {
85+
type: 'PressEvent',
86+
validTargets: [
87+
'Button',
88+
'Touchable',
89+
'TouchableBounce',
90+
'TouchableHighlight',
91+
'TouchableOpacity',
92+
'TouchableWithoutFeedback',
93+
'TouchableNativeFeedback',
94+
],
95+
},
96+
pressIn: {
97+
type: 'PressEvent',
98+
validTargets: [
99+
'Touchable',
100+
'TouchableBounce',
101+
'TouchableHighlight',
102+
'TouchableOpacity',
103+
'TouchableWithoutFeedback',
104+
'TouchableNativeFeedback',
105+
'YellowBoxPressable',
106+
],
107+
},
108+
pressOut: {
109+
type: 'PressEvent',
110+
validTargets: [
111+
'Touchable',
112+
'TouchableBounce',
113+
'TouchableHighlight',
114+
'TouchableOpacity',
115+
'TouchableWithoutFeedback',
116+
'TouchableNativeFeedback',
117+
'YellowBoxPressable',
118+
],
119+
},
120+
momentumScrollBegin: {
121+
type: 'ScrollEvent',
122+
validTargets: [
123+
'ScrollResponder',
124+
'FlatList',
125+
'ScrollView',
126+
'SectionList',
127+
'VirtualizedList',
128+
'WindowedListView',
129+
],
130+
},
131+
momentumScrollEnd: {
132+
type: 'ScrollEvent',
133+
validTargets: [
134+
'ScrollResponder',
135+
'FlatList',
136+
'ScrollView',
137+
'SectionList',
138+
'VirtualizedList',
139+
'WindowedListView',
140+
],
141+
},
142+
scroll: {
143+
type: 'ScrollEvent',
144+
validTargets: [
145+
'ScrollResponder',
146+
'FlatList',
147+
'ScrollView',
148+
'SectionList',
149+
'TextInput',
150+
'VirtualizedList',
151+
'WindowedListView',
152+
],
153+
},
154+
scrollBeginDrag: {
155+
type: 'ScrollEvent',
156+
validTargets: [
157+
'ScrollResponder',
158+
'FlatList',
159+
'ScrollView',
160+
'SectionList',
161+
'VirtualizedList',
162+
'WindowedListView',
163+
],
164+
},
165+
scrollEndDrag: {
166+
type: 'ScrollEvent',
167+
validTargets: [
168+
'ScrollResponder',
169+
'FlatList',
170+
'ScrollView',
171+
'SectionList',
172+
'VirtualizedList',
173+
'WindowedListView',
174+
],
175+
},
176+
load: { type: 'ImageLoadEvent', validTargets: ['Image'] },
177+
error: { type: 'SyntheticEvent', validTargets: ['Image'] },
178+
progress: { type: 'SyntheticEvent', validTargets: ['Image'] },
179+
};
180+
var NativeEvent = (function() {
181+
function NativeEvent(typeArg) {
182+
var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
183+
(0, _classCallCheck2.default)(this, NativeEvent);
184+
var config = eventMap[typeArg];
185+
this.typeArg = typeArg;
186+
this.nativeEvent = eventInit;
187+
this.type = config.type;
188+
this.validTargets = config.validTargets;
189+
}
190+
(0, _createClass2.default)(NativeEvent, [
191+
{
192+
key: 'target',
193+
set: function set(target) {
194+
this._target = target;
195+
},
196+
get: function get() {
197+
return this._target;
198+
},
199+
},
200+
]);
201+
return NativeEvent;
202+
})();
203+
exports.NativeEvent = NativeEvent;
204+
function getEventHandlerName(key) {
205+
return 'on' + key.charAt(0).toUpperCase() + key.slice(1);
206+
}
207+
function isValidTarget(element, event) {
208+
return (
209+
event.validTargets.includes(element.type) ||
210+
event.validTargets.includes(element.type.name) ||
211+
event.validTargets.includes(element.type.displayName)
212+
);
213+
}
214+
function findEventHandler(element, event) {
215+
var typeArg = event.typeArg;
216+
var eventHandler = getEventHandlerName(typeArg);
217+
var isValid = isValidTarget(element, event);
218+
if (typeof element.props[eventHandler] === 'function' && isValid) {
219+
return element.props[eventHandler];
220+
}
221+
if (element.parent === null || element.parent.parent === null) {
222+
throw new Error('No handler found for event: ' + typeArg);
223+
}
224+
return findEventHandler(element.parent, event);
225+
}
226+
function fireEvent(element, event) {
227+
event.target = findEventHandler(element, event);
228+
return event.target(event);
229+
}
230+
Object.keys(eventMap).forEach(function(key) {
231+
fireEvent[key] = function(node, init) {
232+
return fireEvent(node, new NativeEvent(key, init));
233+
};
234+
});

build/get-node-text.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
Object.defineProperty(exports, '__esModule', { value: true });
2+
exports.getNodeText = getNodeText;
3+
var _reactNative = require('react-native');
4+
var _queryHelpers = require('./query-helpers');
5+
function getNodeText(node) {
6+
if ((0, _queryHelpers.filterNodeByType)(node, _reactNative.TextInput)) {
7+
return node.props.value;
8+
}
9+
return Array.from(node.children)
10+
.filter(function(node) {
11+
return (0, _queryHelpers.filterNodeByType)(node, 'Text') && Boolean(node.props.children);
12+
})
13+
.map(function(_ref) {
14+
var props = _ref.props;
15+
return props.children;
16+
})
17+
.join('');
18+
}

build/get-queries-for-element.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
var _interopRequireWildcard = require('@babel/runtime/helpers/interopRequireWildcard');
2+
Object.defineProperty(exports, '__esModule', { value: true });
3+
exports.getQueriesForElement = getQueriesForElement;
4+
var defaultQueries = _interopRequireWildcard(require('./queries'));
5+
function getQueriesForElement(container) {
6+
var queries = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultQueries;
7+
return Object.keys(queries).reduce(function(helpers, key) {
8+
var fn = queries[key];
9+
helpers[key] = fn.bind(null, { testInstance: container, container: container.root });
10+
return helpers;
11+
}, {});
12+
}

build/helpers.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Object.defineProperty(exports, '__esModule', { value: true });
2+
exports.getSetImmediate = getSetImmediate;
3+
function getSetImmediate() {
4+
if (typeof setImmediate === 'function') {
5+
return setImmediate;
6+
} else {
7+
return function setImmediate(fn) {
8+
return setTimeout(fn, 0);
9+
};
10+
}
11+
}

0 commit comments

Comments
 (0)