@@ -19,6 +19,7 @@ const Relay = require('RelayPublic');
19
19
import type RelayQueryRequest from 'RelayQueryRequest' ;
20
20
21
21
const performanceNow = require ( 'performanceNow' ) ;
22
+ const xhrSimpleDataSerializer = require ( 'xhrSimpleDataSerializer' ) ;
22
23
23
24
export type RelayNetworkDebuggable = {
24
25
name : string ,
@@ -51,13 +52,17 @@ class RelayNetworkDebugger {
51
52
const id = this . _queryID ++ ;
52
53
const timerName = `[${ id } ] Request Duration` ;
53
54
54
- /* eslint-disable no-console */
55
- console . timeStamp && console . timeStamp ( `START: [${ id } ] ${ type } : ${ name } →` ) ;
55
+ /* eslint-disable no-console-disallow */
56
+ console . timeStamp && console . timeStamp (
57
+ `START: [${ id } ] ${ type } : ${ name } \u2192`
58
+ ) ;
56
59
console . time && console . time ( timerName ) ;
57
60
58
61
const onSettled = ( error , response ) => {
59
62
const time = ( performanceNow ( ) - this . _initTime ) / 1000 ;
60
- console . timeStamp && console . timeStamp ( `← END: [${ id } ] ${ type } : ${ name } ` ) ;
63
+ console . timeStamp && console . timeStamp (
64
+ `\u2190 END: [${ id } ] ${ type } : ${ name } `
65
+ ) ;
61
66
const groupName = `%c[${ id } ] ${ type } : ${ name } @ ${ time } s` ;
62
67
console . groupCollapsed ?
63
68
console . groupCollapsed (
@@ -69,7 +74,7 @@ class RelayNetworkDebugger {
69
74
logResult ( error , response ) ;
70
75
console . groupEnd && console . groupEnd ( ) ;
71
76
} ;
72
- /* eslint-enable no-console */
77
+ /* eslint-enable no-console-disallow */
73
78
74
79
promise . then (
75
80
response => onSettled ( null , response ) ,
@@ -87,21 +92,45 @@ function createDebuggableFromRequest(
87
92
type ,
88
93
promise : request . getPromise ( ) ,
89
94
logResult ( error , response ) {
90
- /* eslint-disable no-console */
95
+ /* eslint-disable no-console-disallow */
96
+ console. debug (
97
+ 'Request Size (Estimate): %s' ,
98
+ formatSize (
99
+ xhrSimpleDataSerializer ( {
100
+ q : request . getQueryString ( ) ,
101
+ query_params : request . getVariables ( ) ,
102
+ } ) . length
103
+ )
104
+ ) ;
105
+
91
106
console . debug && console . debug (
92
107
'%c%s\n' ,
93
108
'font-size:10px; color:#333; font-family:mplus-2m-regular,menlo,' +
94
109
'monospaced;' ,
95
110
request . getQueryString ( )
96
111
) ;
97
- console . log ( 'Request variables\n' , request . getVariables ( ) ) ;
112
+
113
+
114
+ console . log ( 'Request Variables\n' , request . getVariables ( ) ) ;
98
115
error && console . error ( error ) ;
99
116
response && console . log ( response ) ;
100
- /* eslint-enable no-console */
117
+ /* eslint-enable no-console-disallow */
101
118
} ,
102
119
} ;
103
120
}
104
121
122
+ const ALL_UNITS = [ 'B' , 'KB' , 'MB' , 'GB' , 'TB' , 'PB' , 'EB' , 'ZB' , 'YB' ] ;
123
+ function formatSize ( bytes : number ) : string {
124
+ const sign = bytes < 0 ? - 1 : 1 ;
125
+ bytes = Math . abs ( bytes ) ;
126
+ let i = 0 ;
127
+ while ( bytes >= Math . pow ( 1024 , i + 1 ) && i < ALL_UNITS . length ) {
128
+ i ++ ;
129
+ }
130
+ const value = sign * bytes * 1.0 / Math . pow ( 1024 , i ) ;
131
+ return Number ( value . toFixed ( 2 ) ) + ALL_UNITS [ i ] ;
132
+ }
133
+
105
134
let networkDebugger : ?RelayNetworkDebugger ;
106
135
107
136
const RelayNetworkDebug = {
0 commit comments