Skip to content

Commit ef55dfc

Browse files
committed
SHK-7520: Fixed ios network requests always 200
1 parent 8edbb2e commit ef55dfc

7 files changed

Lines changed: 61 additions & 37 deletions

File tree

example/ios/Podfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1322,7 +1322,7 @@ PODS:
13221322
- ReactCodegen
13231323
- ReactCommon/turbomodule/bridging
13241324
- ReactCommon/turbomodule/core
1325-
- Shake-Staging (~> 17.0.0-rc)
1325+
- Shake-Staging (~> 17.1.0-rc)
13261326
- Yoga
13271327
- React-nativeconfig (0.76.3)
13281328
- React-NativeModulesApple (0.76.3):
@@ -1605,7 +1605,7 @@ PODS:
16051605
- RNFBApp
16061606
- RNFS (2.20.0):
16071607
- React-Core
1608-
- Shake-Staging (17.0.2-rc.1616)
1608+
- Shake-Staging (17.1.0-rc.1618)
16091609
- SocketRocket (0.7.1)
16101610
- Yoga (0.0.0)
16111611

@@ -1885,7 +1885,7 @@ SPEC CHECKSUMS:
18851885
React-logger: 2736a90a3fdaed3dab1e2e9c5a5e9b3be00c287d
18861886
React-Mapbuffer: 12bbf447b326f0de8a472998eceafbdc4f43ca4e
18871887
React-microtasksnativemodule: 6483158af194b5bca6cc3c842451019c45100d80
1888-
react-native-shake: 4a7db319452f3b0c01adb15780cac3ba165baf5f
1888+
react-native-shake: fecbf5c3907abaf9857c18cbba411b59db3afbee
18891889
React-nativeconfig: f2bddc1e6c2eb793c065b37e12c513fdea88afef
18901890
React-NativeModulesApple: 43be3b84598af78efe8fcdbad90033caef83af43
18911891
React-perflogger: 2991d4258277af250eb7a2705980ebb3ef9ba85e
@@ -1918,7 +1918,7 @@ SPEC CHECKSUMS:
19181918
RNFBApp: 72b96921c64702d51eca9f3ed579c1777efd0d7e
19191919
RNFBMessaging: 2ad5a47bd81da9f2d65188292d24115f40cbba74
19201920
RNFS: 89de7d7f4c0f6bafa05343c578f61118c8282ed8
1921-
Shake-Staging: 969f693866a68e0ca7572b7c6b97388bbcb6697c
1921+
Shake-Staging: f77d61b3b376dbb23bfff829725ed49666ca5040
19221922
SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
19231923
Yoga: e6c2f5a192a47cd0c5523ec8c4f7eca01d15d077
19241924

example/src/ui/shake/MainScreen.tsx

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ const MainScreen = () => {
131131
// const oldForm = Shake.getShakeForm();
132132
// oldForm.components = oldForm.components.filter(c => c.type !== 'inspect');
133133

134-
const pickerItems: Array<ShakePickerItem> = [
134+
const pickerItems: ShakePickerItem[] = [
135135
new ShakePickerItem('Mouse', 'Mouse', null, 'mouse'),
136136
new ShakePickerItem('Keyboard', 'Keyboard', null, 'keyboard'),
137137
new ShakePickerItem('Display', 'Display', null, 'display'),
@@ -206,22 +206,28 @@ const MainScreen = () => {
206206
};
207207

208208
const setNotificationEventsFilter = () => {
209-
Shake.setNotificationEventsFilter((notificationEvent) => {
210-
notificationEvent.setDescription('data_redacted');
211-
notificationEvent.setTitle('data_redacted');
212-
213-
return notificationEvent;
214-
});
209+
Shake.setNotificationEventsFilter(
210+
(
211+
notificationEvent: NotificationEventBuilder
212+
): NotificationEventBuilder | null => {
213+
notificationEvent.setDescription('data_redacted');
214+
notificationEvent.setTitle('data_redacted');
215+
216+
return notificationEvent;
217+
}
218+
);
215219
};
216220

217221
const setNetworkRequestsFilter = () => {
218-
Shake.setNetworkRequestsFilter((networkRequest) => {
219-
networkRequest.setResponseBody('data_redacted');
220-
networkRequest.setRequestBody('data_redacted');
221-
networkRequest.setDate(new Date());
222-
223-
return networkRequest;
224-
});
222+
Shake.setNetworkRequestsFilter(
223+
(networkRequest: NetworkRequestBuilder): NetworkRequestBuilder | null => {
224+
networkRequest.setResponseBody('data_redacted');
225+
networkRequest.setRequestBody('data_redacted');
226+
networkRequest.setDate(new Date());
227+
228+
return networkRequest;
229+
}
230+
);
225231
};
226232

227233
const showNotificationsSettings = () => {

ios/Shake.mm

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -719,20 +719,30 @@ - (NSDictionary*)mapToNetworkRequestToDict:(JS::NativeShake::NetworkRequest &)na
719719
NSDictionary *networkRequest = [[NSDictionary alloc] init];
720720
NSString *requestBody = nativeNetworkRequest.requestBody() ?: @"";
721721
NSData *data = [requestBody dataUsingEncoding:NSUTF8StringEncoding];
722+
NSNumber* statusCode = [self parseIntegerFromString:nativeNetworkRequest.statusCode()];
723+
722724
networkRequest = @{
723725
@"url": nativeNetworkRequest.url() ?: @"",
724726
@"method": nativeNetworkRequest.method() ?: @"",
725727
@"responseBody": nativeNetworkRequest.responseBody() ?: @"",
726-
@"statusCode": nativeNetworkRequest.statusCode() ?: @"",
728+
@"statusCode": statusCode ?: 0,
727729
@"requestBody": data,
728730
@"requestHeaders": nativeNetworkRequest.requestHeaders() ?: @{},
729731
@"duration": [NSNumber numberWithDouble:nativeNetworkRequest.duration() ?: 0],
730732
@"responseHeaders": nativeNetworkRequest.responseHeaders() ?: @{},
731733
@"timestamp": nativeNetworkRequest.timestamp() ?: @""
732734
};
735+
733736
return networkRequest;
734737
}
735738

739+
- (NSNumber *)parseIntegerFromString:(NSString *)string {
740+
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
741+
formatter.numberStyle = NSNumberFormatterNoStyle;
742+
743+
return [formatter numberFromString:string];
744+
}
745+
736746
- (NSDictionary*)mapToNotificationEvent:(JS::NativeShake::NotificationEvent &)nativeNotification
737747
{
738748
NSDictionary *notificationEvent = [[NSDictionary alloc] init];

src/index.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,9 @@ class Shake {
389389
* @param {((builder: NetworkRequestBuilder) => NetworkRequestBuilder) | null} filter function
390390
*/
391391
static setNetworkRequestsFilter(
392-
filter: ((builder: NetworkRequestBuilder) => NetworkRequestBuilder) | null
392+
filter:
393+
| ((builder: NetworkRequestBuilder) => NetworkRequestBuilder | null)
394+
| null
393395
) {
394396
this.networkTracker.setFilter(filter);
395397
}
@@ -412,7 +414,7 @@ class Shake {
412414
*/
413415
static setNotificationEventsFilter(
414416
filter:
415-
| ((builder: NotificationEventBuilder) => NotificationEventBuilder)
417+
| ((builder: NotificationEventBuilder) => NotificationEventBuilder | null)
416418
| null
417419
) {
418420
this.notificationTracker.setFilter(filter);

src/modules/NetworkTracker.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class NetworkTracker {
99
shake: any;
1010
enabled: boolean = false;
1111
filter:
12-
| ((requestBuilder: NetworkRequestBuilder) => NetworkRequestBuilder)
12+
| ((requestBuilder: NetworkRequestBuilder) => NetworkRequestBuilder | null)
1313
| null = null;
1414

1515
constructor(shake: any) {
@@ -41,7 +41,9 @@ class NetworkTracker {
4141
*/
4242
setFilter = (
4343
filter:
44-
| ((requestBuilder: NetworkRequestBuilder) => NetworkRequestBuilder)
44+
| ((
45+
requestBuilder: NetworkRequestBuilder
46+
) => NetworkRequestBuilder | null)
4547
| null
4648
) => {
4749
this.filter = filter;
@@ -53,10 +55,10 @@ class NetworkTracker {
5355
*/
5456
insertNetworkRequest = (networkRequestBuilder: NetworkRequestBuilder) => {
5557
if (this.filter) {
56-
networkRequestBuilder = this.filter(networkRequestBuilder);
57-
if (networkRequestBuilder) {
58-
this.shake.insertNetworkRequest(networkRequestBuilder.build());
59-
}
58+
let newBuilder: NetworkRequestBuilder | null = this.filter(
59+
networkRequestBuilder
60+
);
61+
if (newBuilder) this.shake.insertNetworkRequest(newBuilder.build());
6062
} else {
6163
this.shake.insertNetworkRequest(networkRequestBuilder.build());
6264
}

src/modules/NotificationTracker.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ class NotificationTracker {
1212
shake: any;
1313
enabled: boolean;
1414
filter:
15-
| ((requestBuilder: NotificationEventBuilder) => NotificationEventBuilder)
15+
| ((
16+
requestBuilder: NotificationEventBuilder
17+
) => NotificationEventBuilder | null)
1618
| null;
1719

1820
constructor(shake: any) {
@@ -36,7 +38,9 @@ class NotificationTracker {
3638
*/
3739
setFilter = (
3840
filter:
39-
| ((requestBuilder: NotificationEventBuilder) => NotificationEventBuilder)
41+
| ((
42+
requestBuilder: NotificationEventBuilder
43+
) => NotificationEventBuilder | null)
4044
| null
4145
) => {
4246
this.filter = filter;
@@ -50,10 +54,10 @@ class NotificationTracker {
5054
notificationEventBuilder: NotificationEventBuilder
5155
) => {
5256
if (this.filter) {
53-
notificationEventBuilder = this.filter(notificationEventBuilder);
54-
if (notificationEventBuilder) {
55-
this.shake.insertNotificationEvent(notificationEventBuilder.build());
56-
}
57+
const newBuilder: NotificationEventBuilder | null = this.filter(
58+
notificationEventBuilder
59+
);
60+
if (newBuilder) this.shake.insertNotificationEvent(newBuilder.build());
5761
} else {
5862
this.shake.insertNotificationEvent(notificationEventBuilder.build());
5963
}

src/utils/XHRInterceptor.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ const XHRInterceptor = {
8686
networkRequestClone.responseBody = responseText ? responseText : '';
8787
networkRequestClone.statusCode = this.status
8888
? this.status.toString()
89-
: 'n/a';
89+
: '0';
9090

9191
reportRequest(networkRequestClone);
9292
});
@@ -98,7 +98,7 @@ const XHRInterceptor = {
9898

9999
networkRequestClone.duration = Date.now() - networkRequestClone.start;
100100
networkRequestClone.responseBody = 'Request error.';
101-
networkRequestClone.statusCode = 'err';
101+
networkRequestClone.statusCode = '500';
102102

103103
reportRequest(networkRequestClone);
104104
});
@@ -108,7 +108,7 @@ const XHRInterceptor = {
108108

109109
networkRequestClone.duration = Date.now() - networkRequestClone.start;
110110
networkRequestClone.responseBody = 'Request aborted.';
111-
networkRequestClone.statusCode = 'err';
111+
networkRequestClone.statusCode = '499';
112112

113113
reportRequest(networkRequestClone);
114114
});
@@ -118,7 +118,7 @@ const XHRInterceptor = {
118118

119119
networkRequestClone.duration = Date.now() - networkRequestClone.start;
120120
networkRequestClone.responseBody = 'Request timeout.';
121-
networkRequestClone.statusCode = 't/o';
121+
networkRequestClone.statusCode = '408';
122122

123123
reportRequest(networkRequestClone);
124124
});

0 commit comments

Comments
 (0)