react-native-xenon 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/lib/commonjs/assets/icons/record.png +0 -0
- package/lib/commonjs/colors.js +14 -0
- package/lib/commonjs/colors.js.map +1 -0
- package/lib/commonjs/hooks/useConsoleInterceptor.js +6 -7
- package/lib/commonjs/hooks/useConsoleInterceptor.js.map +1 -1
- package/lib/commonjs/hooks/useNetworkInterceptor.js +28 -24
- package/lib/commonjs/hooks/useNetworkInterceptor.js.map +1 -1
- package/lib/commonjs/icons.js +15 -0
- package/lib/commonjs/icons.js.map +1 -0
- package/lib/commonjs/interceptors/ConsoleInterceptor.js.map +1 -1
- package/lib/commonjs/interceptors/FetchInterceptor.js +5 -2
- package/lib/commonjs/interceptors/FetchInterceptor.js.map +1 -1
- package/lib/commonjs/interceptors/Interceptor.js +7 -1
- package/lib/commonjs/interceptors/Interceptor.js.map +1 -1
- package/lib/commonjs/interceptors/WebSocketInterceptor.js +11 -4
- package/lib/commonjs/interceptors/WebSocketInterceptor.js.map +1 -1
- package/lib/commonjs/interceptors/XHRInterceptor.js +4 -1
- package/lib/commonjs/interceptors/XHRInterceptor.js.map +1 -1
- package/lib/commonjs/types/index.js +8 -8
- package/lib/commonjs/types/index.js.map +1 -1
- package/lib/commonjs/ui/Xenon.js +12 -9
- package/lib/commonjs/ui/Xenon.js.map +1 -1
- package/lib/commonjs/ui/components/bubble/Bubble.js +5 -2
- package/lib/commonjs/ui/components/bubble/Bubble.js.map +1 -1
- package/lib/commonjs/ui/components/details/LogMessageDetails.js +3 -1
- package/lib/commonjs/ui/components/details/LogMessageDetails.js.map +1 -1
- package/lib/commonjs/ui/components/details/NetworkRequestDetails.js +17 -19
- package/lib/commonjs/ui/components/details/NetworkRequestDetails.js.map +1 -1
- package/lib/commonjs/ui/components/headers/DebuggerHeader.js +9 -7
- package/lib/commonjs/ui/components/headers/DebuggerHeader.js.map +1 -1
- package/lib/commonjs/ui/components/headers/NetworkPanelHeader.js +22 -9
- package/lib/commonjs/ui/components/headers/NetworkPanelHeader.js.map +1 -1
- package/lib/commonjs/ui/components/index.js +2 -2
- package/lib/commonjs/ui/components/index.js.map +1 -1
- package/lib/commonjs/ui/components/items/ConsolePanelItem.js +3 -1
- package/lib/commonjs/ui/components/items/ConsolePanelItem.js.map +1 -1
- package/lib/commonjs/ui/components/items/DebuggerHeaderItem.js +17 -10
- package/lib/commonjs/ui/components/items/DebuggerHeaderItem.js.map +1 -1
- package/lib/commonjs/ui/components/items/NetworkPanelItem.js +21 -9
- package/lib/commonjs/ui/components/items/NetworkPanelItem.js.map +1 -1
- package/lib/commonjs/ui/components/items/NetworkRequestDetailsHeaderItem.js +4 -2
- package/lib/commonjs/ui/components/items/NetworkRequestDetailsHeaderItem.js.map +1 -1
- package/lib/commonjs/ui/components/items/NetworkRequestDetailsItem.js +4 -2
- package/lib/commonjs/ui/components/items/NetworkRequestDetailsItem.js.map +1 -1
- package/lib/commonjs/ui/components/panels/ConsolePanel.js +2 -1
- package/lib/commonjs/ui/components/panels/ConsolePanel.js.map +1 -1
- package/lib/commonjs/ui/components/panels/NetworkPanel.js +4 -2
- package/lib/commonjs/ui/components/panels/NetworkPanel.js.map +1 -1
- package/lib/commonjs/utils.js +7 -5
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/assets/icons/record.png +0 -0
- package/lib/module/colors.js +10 -0
- package/lib/module/colors.js.map +1 -0
- package/lib/module/hooks/useConsoleInterceptor.js +6 -7
- package/lib/module/hooks/useConsoleInterceptor.js.map +1 -1
- package/lib/module/hooks/useNetworkInterceptor.js +18 -14
- package/lib/module/hooks/useNetworkInterceptor.js.map +1 -1
- package/lib/module/icons.js +11 -0
- package/lib/module/icons.js.map +1 -0
- package/lib/module/interceptors/ConsoleInterceptor.js.map +1 -1
- package/lib/module/interceptors/FetchInterceptor.js +6 -3
- package/lib/module/interceptors/FetchInterceptor.js.map +1 -1
- package/lib/module/interceptors/Interceptor.js +7 -1
- package/lib/module/interceptors/Interceptor.js.map +1 -1
- package/lib/module/interceptors/WebSocketInterceptor.js +11 -4
- package/lib/module/interceptors/WebSocketInterceptor.js.map +1 -1
- package/lib/module/interceptors/XHRInterceptor.js +4 -1
- package/lib/module/interceptors/XHRInterceptor.js.map +1 -1
- package/lib/module/types/index.js +1 -1
- package/lib/module/types/index.js.map +1 -1
- package/lib/module/ui/Xenon.js +13 -10
- package/lib/module/ui/Xenon.js.map +1 -1
- package/lib/module/ui/components/bubble/Bubble.js +4 -2
- package/lib/module/ui/components/bubble/Bubble.js.map +1 -1
- package/lib/module/ui/components/details/LogMessageDetails.js +2 -1
- package/lib/module/ui/components/details/LogMessageDetails.js.map +1 -1
- package/lib/module/ui/components/details/NetworkRequestDetails.js +18 -20
- package/lib/module/ui/components/details/NetworkRequestDetails.js.map +1 -1
- package/lib/module/ui/components/headers/DebuggerHeader.js +9 -7
- package/lib/module/ui/components/headers/DebuggerHeader.js.map +1 -1
- package/lib/module/ui/components/headers/NetworkPanelHeader.js +21 -9
- package/lib/module/ui/components/headers/NetworkPanelHeader.js.map +1 -1
- package/lib/module/ui/components/index.js +2 -2
- package/lib/module/ui/components/index.js.map +1 -1
- package/lib/module/ui/components/items/ConsolePanelItem.js +2 -1
- package/lib/module/ui/components/items/ConsolePanelItem.js.map +1 -1
- package/lib/module/ui/components/items/DebuggerHeaderItem.js +16 -10
- package/lib/module/ui/components/items/DebuggerHeaderItem.js.map +1 -1
- package/lib/module/ui/components/items/NetworkPanelItem.js +21 -10
- package/lib/module/ui/components/items/NetworkPanelItem.js.map +1 -1
- package/lib/module/ui/components/items/NetworkRequestDetailsHeaderItem.js +3 -2
- package/lib/module/ui/components/items/NetworkRequestDetailsHeaderItem.js.map +1 -1
- package/lib/module/ui/components/items/NetworkRequestDetailsItem.js +3 -2
- package/lib/module/ui/components/items/NetworkRequestDetailsItem.js.map +1 -1
- package/lib/module/ui/components/panels/ConsolePanel.js +2 -1
- package/lib/module/ui/components/panels/ConsolePanel.js.map +1 -1
- package/lib/module/ui/components/panels/NetworkPanel.js +4 -2
- package/lib/module/ui/components/panels/NetworkPanel.js.map +1 -1
- package/lib/module/utils.js +3 -2
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/commonjs/src/colors.d.ts +8 -0
- package/lib/typescript/commonjs/src/colors.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/contexts/MainContext.d.ts +1 -1
- package/lib/typescript/commonjs/src/contexts/MainContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/hooks/useConsoleInterceptor.d.ts +2 -2
- package/lib/typescript/commonjs/src/hooks/useConsoleInterceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/hooks/useNetworkInterceptor.d.ts +2 -2
- package/lib/typescript/commonjs/src/hooks/useNetworkInterceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/icons.d.ts +9 -0
- package/lib/typescript/commonjs/src/icons.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/interceptors/ConsoleInterceptor.d.ts +1 -1
- package/lib/typescript/commonjs/src/interceptors/ConsoleInterceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/interceptors/FetchInterceptor.d.ts +1 -1
- package/lib/typescript/commonjs/src/interceptors/FetchInterceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/interceptors/HttpInterceptor.d.ts +1 -1
- package/lib/typescript/commonjs/src/interceptors/Interceptor.d.ts +3 -1
- package/lib/typescript/commonjs/src/interceptors/Interceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/interceptors/WebSocketInterceptor.d.ts +4 -3
- package/lib/typescript/commonjs/src/interceptors/WebSocketInterceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/interceptors/XHRInterceptor.d.ts +1 -1
- package/lib/typescript/commonjs/src/interceptors/XHRInterceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/common.d.ts +2 -0
- package/lib/typescript/commonjs/src/types/common.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/http.d.ts +1 -2
- package/lib/typescript/commonjs/src/types/http.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/index.d.ts +1 -1
- package/lib/typescript/commonjs/src/types/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/websocket.d.ts +6 -7
- package/lib/typescript/commonjs/src/types/websocket.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/Xenon.d.ts +4 -4
- package/lib/typescript/commonjs/src/ui/Xenon.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/bubble/Bubble.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/details/LogMessageDetails.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/details/NetworkRequestDetails.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/headers/DebuggerHeader.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/headers/NetworkPanelHeader.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/index.d.ts +2 -2
- package/lib/typescript/commonjs/src/ui/components/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/items/ConsolePanelItem.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/items/DebuggerHeaderItem.d.ts +1 -1
- package/lib/typescript/commonjs/src/ui/components/items/DebuggerHeaderItem.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/items/NetworkPanelItem.d.ts +5 -4
- package/lib/typescript/commonjs/src/ui/components/items/NetworkPanelItem.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/items/NetworkRequestDetailsHeaderItem.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/items/NetworkRequestDetailsItem.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/panels/ConsolePanel.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/panels/NetworkPanel.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/utils.d.ts +3 -2
- package/lib/typescript/commonjs/src/utils.d.ts.map +1 -1
- package/lib/typescript/module/src/colors.d.ts +8 -0
- package/lib/typescript/module/src/colors.d.ts.map +1 -0
- package/lib/typescript/module/src/contexts/MainContext.d.ts +1 -1
- package/lib/typescript/module/src/contexts/MainContext.d.ts.map +1 -1
- package/lib/typescript/module/src/hooks/useConsoleInterceptor.d.ts +2 -2
- package/lib/typescript/module/src/hooks/useConsoleInterceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/hooks/useNetworkInterceptor.d.ts +2 -2
- package/lib/typescript/module/src/hooks/useNetworkInterceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/icons.d.ts +9 -0
- package/lib/typescript/module/src/icons.d.ts.map +1 -0
- package/lib/typescript/module/src/interceptors/ConsoleInterceptor.d.ts +1 -1
- package/lib/typescript/module/src/interceptors/ConsoleInterceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/interceptors/FetchInterceptor.d.ts +1 -1
- package/lib/typescript/module/src/interceptors/FetchInterceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/interceptors/HttpInterceptor.d.ts +1 -1
- package/lib/typescript/module/src/interceptors/Interceptor.d.ts +3 -1
- package/lib/typescript/module/src/interceptors/Interceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/interceptors/WebSocketInterceptor.d.ts +4 -3
- package/lib/typescript/module/src/interceptors/WebSocketInterceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/interceptors/XHRInterceptor.d.ts +1 -1
- package/lib/typescript/module/src/interceptors/XHRInterceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/types/common.d.ts +2 -0
- package/lib/typescript/module/src/types/common.d.ts.map +1 -1
- package/lib/typescript/module/src/types/http.d.ts +1 -2
- package/lib/typescript/module/src/types/http.d.ts.map +1 -1
- package/lib/typescript/module/src/types/index.d.ts +1 -1
- package/lib/typescript/module/src/types/index.d.ts.map +1 -1
- package/lib/typescript/module/src/types/websocket.d.ts +6 -7
- package/lib/typescript/module/src/types/websocket.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/Xenon.d.ts +4 -4
- package/lib/typescript/module/src/ui/Xenon.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/bubble/Bubble.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/details/LogMessageDetails.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/details/NetworkRequestDetails.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/headers/DebuggerHeader.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/headers/NetworkPanelHeader.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/index.d.ts +2 -2
- package/lib/typescript/module/src/ui/components/index.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/items/ConsolePanelItem.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/items/DebuggerHeaderItem.d.ts +1 -1
- package/lib/typescript/module/src/ui/components/items/DebuggerHeaderItem.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/items/NetworkPanelItem.d.ts +5 -4
- package/lib/typescript/module/src/ui/components/items/NetworkPanelItem.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/items/NetworkRequestDetailsHeaderItem.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/items/NetworkRequestDetailsItem.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/panels/ConsolePanel.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/panels/NetworkPanel.d.ts.map +1 -1
- package/lib/typescript/module/src/utils.d.ts +3 -2
- package/lib/typescript/module/src/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/assets/icons/record.png +0 -0
- package/src/colors.ts +8 -0
- package/src/contexts/MainContext.ts +1 -1
- package/src/global.d.ts +4 -4
- package/src/hooks/useConsoleInterceptor.ts +5 -7
- package/src/hooks/useNetworkInterceptor.ts +19 -13
- package/src/icons.ts +9 -0
- package/src/interceptors/ConsoleInterceptor.ts +3 -3
- package/src/interceptors/FetchInterceptor.ts +7 -3
- package/src/interceptors/Interceptor.ts +9 -1
- package/src/interceptors/WebSocketInterceptor.ts +14 -5
- package/src/interceptors/XHRInterceptor.ts +7 -1
- package/src/types/common.ts +2 -0
- package/src/types/http.ts +1 -1
- package/src/types/index.ts +1 -1
- package/src/types/websocket.ts +6 -11
- package/src/ui/Xenon.tsx +110 -101
- package/src/ui/components/bubble/Bubble.tsx +4 -2
- package/src/ui/components/details/LogMessageDetails.tsx +2 -1
- package/src/ui/components/details/NetworkRequestDetails.tsx +29 -21
- package/src/ui/components/headers/DebuggerHeader.tsx +9 -13
- package/src/ui/components/headers/NetworkPanelHeader.tsx +20 -9
- package/src/ui/components/index.ts +2 -2
- package/src/ui/components/items/ConsolePanelItem.tsx +2 -1
- package/src/ui/components/items/DebuggerHeaderItem.tsx +18 -12
- package/src/ui/components/items/NetworkPanelItem.tsx +33 -13
- package/src/ui/components/items/NetworkRequestDetailsHeaderItem.tsx +3 -2
- package/src/ui/components/items/NetworkRequestDetailsItem.tsx +3 -2
- package/src/ui/components/panels/ConsolePanel.tsx +2 -1
- package/src/ui/components/panels/NetworkPanel.tsx +4 -2
- package/src/utils.ts +5 -2
- package/lib/commonjs/assets/record.png +0 -0
- package/lib/module/assets/record.png +0 -0
- package/src/assets/record.png +0 -0
- /package/lib/commonjs/assets/{code.png → icons/code.png} +0 -0
- /package/lib/commonjs/assets/{delete.png → icons/delete.png} +0 -0
- /package/lib/commonjs/assets/{hide.png → icons/hide.png} +0 -0
- /package/lib/commonjs/assets/{move.png → icons/move.png} +0 -0
- /package/lib/module/assets/{code.png → icons/code.png} +0 -0
- /package/lib/module/assets/{delete.png → icons/delete.png} +0 -0
- /package/lib/module/assets/{hide.png → icons/hide.png} +0 -0
- /package/lib/module/assets/{move.png → icons/move.png} +0 -0
- /package/src/assets/{code.png → icons/code.png} +0 -0
- /package/src/assets/{delete.png → icons/delete.png} +0 -0
- /package/src/assets/{hide.png → icons/hide.png} +0 -0
- /package/src/assets/{move.png → icons/move.png} +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ConsolePanelItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/ConsolePanelItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
1
|
+
{"version":3,"file":"ConsolePanelItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/ConsolePanelItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD,UAAU,qBAAsB,SAAQ,UAAU;IAChD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,qBAAqB,2CAQxF"}
|
@@ -5,6 +5,6 @@ interface DebuggerHeaderItemProps {
|
|
5
5
|
isActive?: boolean;
|
6
6
|
onPress: () => void;
|
7
7
|
}
|
8
|
-
export default function DebuggerHeaderItem(
|
8
|
+
export default function DebuggerHeaderItem({ content, isLabel, isActive, onPress, }: DebuggerHeaderItemProps): import("react/jsx-runtime").JSX.Element;
|
9
9
|
export {};
|
10
10
|
//# sourceMappingURL=DebuggerHeaderItem.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DebuggerHeaderItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/DebuggerHeaderItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6C,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
1
|
+
{"version":3,"file":"DebuggerHeaderItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/DebuggerHeaderItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6C,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGlG,UAAU,uBAAuB;IAC/B,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,GACR,EAAE,uBAAuB,2CAuBzB"}
|
@@ -1,10 +1,11 @@
|
|
1
|
-
import type { HttpRequest,
|
1
|
+
import type { HttpRequest, NetworkRequest } from '../../../types';
|
2
2
|
interface NetworkPanelItemProps {
|
3
|
-
name: HttpRequest['url'] | WebSocketRequest['uri'];
|
4
3
|
method?: HttpRequest['method'];
|
5
|
-
|
4
|
+
name: NetworkRequest['url'];
|
5
|
+
duration?: NetworkRequest['duration'];
|
6
|
+
status?: NetworkRequest['status'];
|
6
7
|
onPress: () => void;
|
7
8
|
}
|
8
|
-
export default function NetworkPanelItem({ name,
|
9
|
+
export default function NetworkPanelItem({ method, name, duration, status, onPress, }: NetworkPanelItemProps): import("react/jsx-runtime").JSX.Element;
|
9
10
|
export {};
|
10
11
|
//# sourceMappingURL=NetworkPanelItem.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NetworkPanelItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/NetworkPanelItem.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,
|
1
|
+
{"version":3,"file":"NetworkPanelItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/NetworkPanelItem.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQlE,UAAU,qBAAqB;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IAC5B,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,OAAO,GACR,EAAE,qBAAqB,2CA0CvB"}
|
package/lib/typescript/module/src/ui/components/items/NetworkRequestDetailsHeaderItem.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NetworkRequestDetailsHeaderItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/NetworkRequestDetailsHeaderItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
1
|
+
{"version":3,"file":"NetworkRequestDetailsHeaderItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/NetworkRequestDetailsHeaderItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,UAAU,oCAAoC;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,+BAA+B,CAAC,EACtD,OAAO,EACP,IAAI,EACJ,UAAU,EACV,KAAK,EACL,OAAO,GACR,EAAE,oCAAoC,kDAatC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NetworkRequestDetailsItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/NetworkRequestDetailsItem.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"NetworkRequestDetailsItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/NetworkRequestDetailsItem.tsx"],"names":[],"mappings":"AAGA,UAAU,8BAA8B;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,EAChD,KAAK,EACL,OAAO,EACP,UAAU,GACX,EAAE,8BAA8B,2CAkBhC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ConsolePanel.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/panels/ConsolePanel.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"ConsolePanel.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/panels/ConsolePanel.tsx"],"names":[],"mappings":"AAUA,MAAM,CAAC,OAAO,UAAU,YAAY,4CAkCnC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NetworkPanel.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/panels/NetworkPanel.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"NetworkPanel.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/panels/NetworkPanel.tsx"],"names":[],"mappings":"AAWA,MAAM,CAAC,OAAO,UAAU,YAAY,4CA2CnC"}
|
@@ -2,8 +2,9 @@ import type { HttpRequest } from './types';
|
|
2
2
|
export declare const limitChar: (value: any, limit?: number) => string;
|
3
3
|
export declare const getHttpInterceptorId: () => string;
|
4
4
|
export declare const keyValueToString: (key: string, value: any) => string;
|
5
|
-
export declare const
|
6
|
-
export declare const
|
5
|
+
export declare const formatRequestMethod: (method?: string) => string;
|
6
|
+
export declare const formatRequestDuration: (duration?: number) => string;
|
7
|
+
export declare const formatRequestStatusCode: (statusCode?: number) => string;
|
7
8
|
export declare const formatLogMessage: (type: string, values: any[]) => string;
|
8
9
|
export declare const convertToCurl: (method: HttpRequest["method"], url: HttpRequest["url"], headers: HttpRequest["requestHeaders"], body: HttpRequest["body"]) => string;
|
9
10
|
//# sourceMappingURL=utils.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,SAAS,UAAW,GAAG,2BAMnC,CAAC;AAEF,eAAO,MAAM,oBAAoB,cAIhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAS,MAAM,SAAS,GAAG,KAAG,MAC1B,CAAC;AAElC,eAAO,MAAM,
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,SAAS,UAAW,GAAG,2BAMnC,CAAC;AAEF,eAAO,MAAM,oBAAoB,cAIhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAS,MAAM,SAAS,GAAG,KAAG,MAC1B,CAAC;AAElC,eAAO,MAAM,mBAAmB,YAAa,MAAM,WAAoB,CAAC;AAExE,eAAO,MAAM,qBAAqB,cAAe,MAAM,WACf,CAAC;AAEzC,eAAO,MAAM,uBAAuB,gBAAiB,MAAM,WAAiC,CAAC;AAE7F,eAAO,MAAM,gBAAgB,SAAU,MAAM,UAAU,GAAG,EAAE,WAQ3D,CAAC;AAEF,eAAO,MAAM,aAAa,WAChB,WAAW,CAAC,QAAQ,CAAC,OACxB,WAAW,CAAC,KAAK,CAAC,WACd,WAAW,CAAC,gBAAgB,CAAC,QAChC,WAAW,CAAC,MAAM,CAAC,WAgB1B,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "react-native-xenon",
|
3
|
-
"version": "0.1
|
3
|
+
"version": "0.2.1",
|
4
4
|
"description": "A comprehensive tool for analyzing HTTP(S) requests and logs in React Native apps. Designed for use across all environments, it offers an intuitive interface for efficient debugging and issue resolution.",
|
5
5
|
"source": "./src/index.ts",
|
6
6
|
"main": "./lib/commonjs/index.js",
|
Binary file
|
package/src/colors.ts
ADDED
@@ -1,10 +1,10 @@
|
|
1
1
|
import { createContext, type MutableRefObject } from 'react';
|
2
2
|
import type { useConsoleInterceptor, useNetworkInterceptor } from '../hooks';
|
3
3
|
import type {
|
4
|
-
HttpRequest,
|
5
4
|
DebuggerPanel,
|
6
5
|
DebuggerPosition,
|
7
6
|
DebuggerVisibility,
|
7
|
+
HttpRequest,
|
8
8
|
LogMessage,
|
9
9
|
SetState,
|
10
10
|
WebSocketRequest,
|
package/src/global.d.ts
CHANGED
@@ -5,18 +5,18 @@ interface XMLHttpRequest {
|
|
5
5
|
declare module 'react-native/Libraries/WebSocket/NativeWebSocketModule' {
|
6
6
|
interface NativeWebSocketModule extends NativeModule {
|
7
7
|
connect(
|
8
|
-
|
9
|
-
protocols?: string | string[]
|
8
|
+
url: string,
|
9
|
+
protocols?: string | string[],
|
10
10
|
options?: {
|
11
11
|
headers: { [headerName: string]: string };
|
12
12
|
[optionName: string]: any;
|
13
|
-
}
|
13
|
+
},
|
14
14
|
socketId: number,
|
15
15
|
): void;
|
16
16
|
|
17
17
|
send(data: string, socketId: number): void;
|
18
18
|
|
19
|
-
sendBinary(
|
19
|
+
sendBinary(base64String: string, socketId: number): void;
|
20
20
|
|
21
21
|
close(code: number, reason: string, socketId: number): void;
|
22
22
|
|
@@ -4,12 +4,10 @@ import { ConsoleInterceptor } from '../interceptors';
|
|
4
4
|
import type { LogMessage } from '../types';
|
5
5
|
|
6
6
|
interface ConsoleInterceptorParams {
|
7
|
-
autoEnabled
|
7
|
+
autoEnabled: boolean;
|
8
8
|
}
|
9
9
|
|
10
|
-
export default function useConsoleInterceptor(
|
11
|
-
const { autoEnabled = false } = params || {};
|
12
|
-
|
10
|
+
export default function useConsoleInterceptor({ autoEnabled }: ConsoleInterceptorParams) {
|
13
11
|
const [isInterceptorEnabled, setIsInterceptorEnabled] = useState(autoEnabled);
|
14
12
|
|
15
13
|
const [logMessages, setLogMessages] = useImmer<LogMessage[]>([]);
|
@@ -18,10 +16,10 @@ export default function useConsoleInterceptor(params: ConsoleInterceptorParams)
|
|
18
16
|
setLogMessages([]);
|
19
17
|
};
|
20
18
|
|
21
|
-
const
|
19
|
+
const isEnabled = () => ConsoleInterceptor.instance.isInterceptorEnabled;
|
22
20
|
|
23
21
|
const enableInterception = useCallback(() => {
|
24
|
-
if (
|
22
|
+
if (isEnabled()) return;
|
25
23
|
|
26
24
|
ConsoleInterceptor.instance
|
27
25
|
.setCallback((type, args) => {
|
@@ -35,7 +33,7 @@ export default function useConsoleInterceptor(params: ConsoleInterceptorParams)
|
|
35
33
|
}, [setLogMessages]);
|
36
34
|
|
37
35
|
const disableInterception = useCallback(() => {
|
38
|
-
if (!
|
36
|
+
if (!isEnabled()) return;
|
39
37
|
|
40
38
|
ConsoleInterceptor.instance.disableInterception();
|
41
39
|
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import { enableMapSet } from 'immer';
|
2
1
|
import { useCallback, useEffect, useState } from 'react';
|
3
2
|
import { useImmer } from 'use-immer';
|
4
3
|
import { NETWORK_REQUEST_HEADER } from '../constants';
|
4
|
+
import { FetchInterceptor, WebSocketInterceptor, XHRInterceptor } from '../interceptors';
|
5
5
|
import {
|
6
6
|
NetworkType,
|
7
7
|
type HttpHeaderReceivedCallback,
|
@@ -21,25 +21,21 @@ import {
|
|
21
21
|
type WebSocketSendCallback,
|
22
22
|
} from '../types';
|
23
23
|
import { keyValueToString } from '../utils';
|
24
|
-
import { XHRInterceptor, FetchInterceptor, WebSocketInterceptor } from '../interceptors';
|
25
24
|
|
26
25
|
interface NetworkInterceptorParams {
|
27
|
-
autoEnabled
|
26
|
+
autoEnabled: boolean;
|
28
27
|
}
|
29
28
|
|
30
29
|
type NetworkRequests<T> = Map<NonNullable<ID>, T>;
|
31
30
|
|
32
|
-
enableMapSet();
|
33
|
-
|
34
31
|
const initRequests = new Map<NonNullable<ID>, HttpRequest & WebSocketRequest>();
|
35
32
|
|
36
|
-
export default function useNetworkInterceptor(
|
37
|
-
const { autoEnabled = false } = params || {};
|
33
|
+
export default function useNetworkInterceptor({ autoEnabled }: NetworkInterceptorParams) {
|
38
34
|
const [isInterceptorEnabled, setIsInterceptorEnabled] = useState(autoEnabled);
|
39
35
|
|
40
36
|
const [networkRequests, setNetworkRequests] = useImmer(initRequests);
|
41
37
|
|
42
|
-
const
|
38
|
+
const isEnabled = () =>
|
43
39
|
XHRInterceptor.instance.isInterceptorEnabled &&
|
44
40
|
FetchInterceptor.instance.isInterceptorEnabled &&
|
45
41
|
WebSocketInterceptor.instance.isInterceptorEnabled;
|
@@ -116,6 +112,7 @@ export default function useNetworkInterceptor(params?: NetworkInterceptorParams)
|
|
116
112
|
id,
|
117
113
|
status,
|
118
114
|
timeout,
|
115
|
+
duration,
|
119
116
|
response,
|
120
117
|
responseURL,
|
121
118
|
responseType,
|
@@ -127,6 +124,7 @@ export default function useNetworkInterceptor(params?: NetworkInterceptorParams)
|
|
127
124
|
|
128
125
|
draft.get(id)!.status = status;
|
129
126
|
draft.get(id)!.timeout = timeout;
|
127
|
+
draft.get(id)!.duration = duration;
|
130
128
|
draft.get(id)!.response = response;
|
131
129
|
if (responseURL) draft.get(id)!.url = responseURL;
|
132
130
|
draft.get(id)!.responseType = responseType;
|
@@ -151,12 +149,12 @@ export default function useNetworkInterceptor(params?: NetworkInterceptorParams)
|
|
151
149
|
}, [setNetworkRequests]);
|
152
150
|
|
153
151
|
const enableWebSocketInterception = useCallback(() => {
|
154
|
-
const connectCallback: WebSocketConnectCallback = (
|
152
|
+
const connectCallback: WebSocketConnectCallback = (url, protocols, options, socketId) => {
|
155
153
|
if (typeof socketId !== 'number') return;
|
156
154
|
|
157
155
|
setNetworkRequests((draft: NetworkRequests<WebSocketRequest>) => {
|
158
156
|
draft.set(`${socketId}`, {
|
159
|
-
|
157
|
+
url,
|
160
158
|
type: NetworkType.WS,
|
161
159
|
protocols,
|
162
160
|
options,
|
@@ -186,7 +184,15 @@ export default function useNetworkInterceptor(params?: NetworkInterceptorParams)
|
|
186
184
|
});
|
187
185
|
};
|
188
186
|
|
189
|
-
const onOpenCallback: WebSocketOnOpenCallback = () => {
|
187
|
+
const onOpenCallback: WebSocketOnOpenCallback = (socketId, duration) => {
|
188
|
+
if (typeof socketId !== 'number') return;
|
189
|
+
|
190
|
+
setNetworkRequests((draft: NetworkRequests<WebSocketRequest>) => {
|
191
|
+
if (!draft.get(`${socketId}`)) return draft;
|
192
|
+
|
193
|
+
draft.get(`${socketId}`)!.duration = duration;
|
194
|
+
});
|
195
|
+
};
|
190
196
|
|
191
197
|
const onMessageCallback: WebSocketOnMessageCallback = (socketId, message) => {
|
192
198
|
if (typeof socketId !== 'number') return;
|
@@ -231,7 +237,7 @@ export default function useNetworkInterceptor(params?: NetworkInterceptorParams)
|
|
231
237
|
}, [setNetworkRequests]);
|
232
238
|
|
233
239
|
const enableInterception = useCallback(() => {
|
234
|
-
if (
|
240
|
+
if (isEnabled()) return;
|
235
241
|
|
236
242
|
enableHttpInterceptions();
|
237
243
|
enableWebSocketInterception();
|
@@ -239,7 +245,7 @@ export default function useNetworkInterceptor(params?: NetworkInterceptorParams)
|
|
239
245
|
}, [enableHttpInterceptions, enableWebSocketInterception]);
|
240
246
|
|
241
247
|
const disableInterception = useCallback(() => {
|
242
|
-
if (!
|
248
|
+
if (!isEnabled()) return;
|
243
249
|
|
244
250
|
XHRInterceptor.instance.disableInterception();
|
245
251
|
FetchInterceptor.instance.disableInterception();
|
package/src/icons.ts
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
const icons = Object.freeze({
|
2
|
+
code: require('./assets/icons/code.png'),
|
3
|
+
delete: require('./assets/icons/delete.png'),
|
4
|
+
hide: require('./assets/icons/hide.png'),
|
5
|
+
move: require('./assets/icons/move.png'),
|
6
|
+
record: require('./assets/icons/record.png'),
|
7
|
+
});
|
8
|
+
|
9
|
+
export default icons;
|
@@ -13,7 +13,7 @@ const originalConsoleGroupEnd = console.groupEnd;
|
|
13
13
|
const originalConsoleGroup = console.group;
|
14
14
|
|
15
15
|
export default class ConsoleInterceptor extends Interceptor {
|
16
|
-
static instance = new ConsoleInterceptor();
|
16
|
+
static readonly instance = new ConsoleInterceptor();
|
17
17
|
|
18
18
|
private constructor() {
|
19
19
|
super();
|
@@ -67,10 +67,10 @@ export default class ConsoleInterceptor extends Interceptor {
|
|
67
67
|
originalConsoleDebug.call(this, ...args);
|
68
68
|
};
|
69
69
|
|
70
|
-
console.table = function (...args) {
|
70
|
+
console.table = function (...args: Parameters<typeof originalConsoleTable>) {
|
71
71
|
callback?.('table', args);
|
72
72
|
|
73
|
-
originalConsoleTable.call(this, ...
|
73
|
+
originalConsoleTable.call(this, ...args);
|
74
74
|
};
|
75
75
|
|
76
76
|
console.groupCollapsed = function (...args) {
|
@@ -1,12 +1,12 @@
|
|
1
1
|
import { NETWORK_REQUEST_HEADER } from '../constants';
|
2
2
|
import { NetworkType } from '../types';
|
3
|
-
import {
|
3
|
+
import { formatRequestMethod, getHttpInterceptorId, keyValueToString } from '../utils';
|
4
4
|
import HttpInterceptor from './HttpInterceptor';
|
5
5
|
|
6
6
|
const originalFetch = global.fetch;
|
7
7
|
|
8
8
|
export default class FetchInterceptor extends HttpInterceptor {
|
9
|
-
static instance = new FetchInterceptor();
|
9
|
+
static readonly instance = new FetchInterceptor();
|
10
10
|
|
11
11
|
private constructor() {
|
12
12
|
super();
|
@@ -33,7 +33,7 @@ export default class FetchInterceptor extends HttpInterceptor {
|
|
33
33
|
const requestInit: RequestInit = { ...init, headers: requestHeaders };
|
34
34
|
|
35
35
|
//#region open
|
36
|
-
const method =
|
36
|
+
const method = formatRequestMethod(init?.method);
|
37
37
|
|
38
38
|
let url: string;
|
39
39
|
|
@@ -76,11 +76,13 @@ export default class FetchInterceptor extends HttpInterceptor {
|
|
76
76
|
//#endregion
|
77
77
|
|
78
78
|
//#region send
|
79
|
+
const timeStart = Date.now();
|
79
80
|
sendCallback?.(interceptionId, init?.body ?? null);
|
80
81
|
//#endregion
|
81
82
|
|
82
83
|
const response = await originalFetch.call(this, input, requestInit);
|
83
84
|
|
85
|
+
const timeEnd = Date.now();
|
84
86
|
const clonedResponse = response.clone();
|
85
87
|
const clonedResponseHeaders = clonedResponse.headers;
|
86
88
|
|
@@ -105,11 +107,13 @@ export default class FetchInterceptor extends HttpInterceptor {
|
|
105
107
|
|
106
108
|
//#region response
|
107
109
|
const responseBody: string | null = await clonedResponse.text().catch(() => null);
|
110
|
+
const duration = timeEnd - timeStart;
|
108
111
|
|
109
112
|
responseCallback?.(
|
110
113
|
interceptionId,
|
111
114
|
clonedResponse.status,
|
112
115
|
0,
|
116
|
+
duration,
|
113
117
|
responseBody,
|
114
118
|
clonedResponse.url,
|
115
119
|
clonedResponse.type,
|
@@ -1,5 +1,13 @@
|
|
1
1
|
export default abstract class Interceptor {
|
2
|
-
isInterceptorEnabled = false;
|
2
|
+
#isInterceptorEnabled = false;
|
3
|
+
|
4
|
+
get isInterceptorEnabled() {
|
5
|
+
return this.#isInterceptorEnabled;
|
6
|
+
}
|
7
|
+
|
8
|
+
protected set isInterceptorEnabled(value: boolean) {
|
9
|
+
this.#isInterceptorEnabled = value;
|
10
|
+
}
|
3
11
|
|
4
12
|
abstract enableInterception(): void;
|
5
13
|
abstract disableInterception(): void;
|
@@ -17,7 +17,7 @@ const originalWebSocketSendBinary = NativeWebSocketModule.sendBinary;
|
|
17
17
|
const originalWebSocketClose = NativeWebSocketModule.close;
|
18
18
|
|
19
19
|
export default class WebSocketInterceptor extends NetworkInterceptor {
|
20
|
-
static instance = new WebSocketInterceptor();
|
20
|
+
static readonly instance = new WebSocketInterceptor();
|
21
21
|
|
22
22
|
private constructor() {
|
23
23
|
super();
|
@@ -92,6 +92,7 @@ export default class WebSocketInterceptor extends NetworkInterceptor {
|
|
92
92
|
|
93
93
|
private eventEmitter: NativeEventEmitter | null = null;
|
94
94
|
private subscriptions: EmitterSubscription[] = [];
|
95
|
+
private readonly timeStart: Map<number, number> = new Map();
|
95
96
|
|
96
97
|
private arrayBufferToString(data?: string) {
|
97
98
|
try {
|
@@ -112,7 +113,12 @@ export default class WebSocketInterceptor extends NetworkInterceptor {
|
|
112
113
|
|
113
114
|
this.subscriptions = [
|
114
115
|
this.eventEmitter.addListener('websocketOpen', ev => {
|
115
|
-
this.
|
116
|
+
const timeStart = this.timeStart.get(ev.id);
|
117
|
+
const timeEnd = Date.now();
|
118
|
+
const duration = timeEnd - (timeStart ?? 0);
|
119
|
+
this.timeStart.delete(ev.id);
|
120
|
+
|
121
|
+
this.onOpenCallback?.(ev.id, duration);
|
116
122
|
}),
|
117
123
|
this.eventEmitter.addListener('websocketMessage', ev => {
|
118
124
|
this.onMessageCallback?.(
|
@@ -145,9 +151,12 @@ export default class WebSocketInterceptor extends NetworkInterceptor {
|
|
145
151
|
const { connectCallback, sendCallback, closeCallback, arrayBufferToString } =
|
146
152
|
this.getCallbacks();
|
147
153
|
|
154
|
+
const timeStart = this.timeStart;
|
148
155
|
NativeWebSocketModule.connect = function (...args) {
|
149
156
|
connectCallback?.(...args);
|
150
157
|
|
158
|
+
timeStart.set(args[3], Date.now());
|
159
|
+
|
151
160
|
originalWebSocketConnect.call(this, ...args);
|
152
161
|
};
|
153
162
|
|
@@ -157,10 +166,10 @@ export default class WebSocketInterceptor extends NetworkInterceptor {
|
|
157
166
|
originalWebSocketSend.call(this, ...args);
|
158
167
|
};
|
159
168
|
|
160
|
-
NativeWebSocketModule.sendBinary = function (
|
161
|
-
sendCallback?.(arrayBufferToString(
|
169
|
+
NativeWebSocketModule.sendBinary = function (base64String, socketId) {
|
170
|
+
sendCallback?.(arrayBufferToString(base64String), socketId);
|
162
171
|
|
163
|
-
originalWebSocketSendBinary.call(this,
|
172
|
+
originalWebSocketSendBinary.call(this, base64String, socketId);
|
164
173
|
};
|
165
174
|
|
166
175
|
NativeWebSocketModule.close = function (code, reason, socketId) {
|
@@ -7,7 +7,7 @@ const originalXHRSend = XMLHttpRequest.prototype.send;
|
|
7
7
|
const originalXHRSetRequestHeader = XMLHttpRequest.prototype.setRequestHeader;
|
8
8
|
|
9
9
|
export default class XHRInterceptor extends HttpInterceptor {
|
10
|
-
static instance = new XHRInterceptor();
|
10
|
+
static readonly instance = new XHRInterceptor();
|
11
11
|
|
12
12
|
private constructor() {
|
13
13
|
super();
|
@@ -43,6 +43,8 @@ export default class XHRInterceptor extends HttpInterceptor {
|
|
43
43
|
XMLHttpRequest.prototype.send = function (data) {
|
44
44
|
sendCallback?.(this._interceptionId, data);
|
45
45
|
|
46
|
+
const timeStart = Date.now();
|
47
|
+
|
46
48
|
this.addEventListener?.('readystatechange', () => {
|
47
49
|
if (!isInterceptorEnabled()) return;
|
48
50
|
|
@@ -66,10 +68,14 @@ export default class XHRInterceptor extends HttpInterceptor {
|
|
66
68
|
}
|
67
69
|
|
68
70
|
if (this.readyState === this.DONE) {
|
71
|
+
const timeEnd = Date.now();
|
72
|
+
const duration = timeEnd - timeStart;
|
73
|
+
|
69
74
|
responseCallback?.(
|
70
75
|
this._interceptionId,
|
71
76
|
this.status,
|
72
77
|
this.timeout,
|
78
|
+
duration,
|
73
79
|
this.response,
|
74
80
|
this.responseURL,
|
75
81
|
this.responseType,
|
package/src/types/common.ts
CHANGED
package/src/types/http.ts
CHANGED
@@ -3,7 +3,6 @@ import type { ID, NetworkRequest, NetworkType } from './common';
|
|
3
3
|
export interface HttpRequest extends NetworkRequest {
|
4
4
|
type: NetworkType.Fetch | NetworkType.XHR;
|
5
5
|
method: string;
|
6
|
-
url: string;
|
7
6
|
requestHeaders?: Record<string, string>;
|
8
7
|
requestHeadersString?: string;
|
9
8
|
body?: any;
|
@@ -37,6 +36,7 @@ export type HttpResponseCallback =
|
|
37
36
|
id: ID,
|
38
37
|
status: number | undefined,
|
39
38
|
timeout: number | undefined,
|
39
|
+
duration: number,
|
40
40
|
response: any,
|
41
41
|
responseURL: string | undefined,
|
42
42
|
responseType: string | undefined,
|
package/src/types/index.ts
CHANGED
package/src/types/websocket.ts
CHANGED
@@ -2,12 +2,11 @@ import type { NetworkRequest, NetworkType } from './common';
|
|
2
2
|
|
3
3
|
export interface WebSocketRequest extends NetworkRequest {
|
4
4
|
type: NetworkType.WS;
|
5
|
-
|
6
|
-
protocols?: string | string[] | null;
|
5
|
+
protocols?: string | string[];
|
7
6
|
options?: {
|
8
7
|
headers: { [headerName: string]: string };
|
9
8
|
[optionName: string]: any;
|
10
|
-
}
|
9
|
+
};
|
11
10
|
messages?: string;
|
12
11
|
closeReason?: string;
|
13
12
|
serverError?: { message?: string };
|
@@ -16,7 +15,7 @@ export interface WebSocketRequest extends NetworkRequest {
|
|
16
15
|
|
17
16
|
export type WebSocketConnectCallback =
|
18
17
|
| ((
|
19
|
-
|
18
|
+
url: string,
|
20
19
|
protocols?: WebSocketRequest['protocols'],
|
21
20
|
options?: WebSocketRequest['options'],
|
22
21
|
socketId?: number,
|
@@ -26,19 +25,15 @@ export type WebSocketConnectCallback =
|
|
26
25
|
export type WebSocketSendCallback = ((data: string, socketId: number) => void) | null;
|
27
26
|
|
28
27
|
export type WebSocketCloseCallback =
|
29
|
-
| ((
|
30
|
-
code: WebSocketRequest['status'],
|
31
|
-
reason: WebSocketRequest['closeReason'],
|
32
|
-
socketId: number,
|
33
|
-
) => void)
|
28
|
+
| ((code: number, reason: string, socketId: number) => void)
|
34
29
|
| null;
|
35
30
|
|
36
|
-
export type WebSocketOnOpenCallback = ((socketId: number) => void) | null;
|
31
|
+
export type WebSocketOnOpenCallback = ((socketId: number, duration: number) => void) | null;
|
37
32
|
|
38
33
|
export type WebSocketOnMessageCallback = ((socketId: number, message: any) => void) | null;
|
39
34
|
|
40
35
|
export type WebSocketOnErrorCallback =
|
41
|
-
| ((socketId: number,
|
36
|
+
| ((socketId: number, error: WebSocketRequest['serverError']) => void)
|
42
37
|
| null;
|
43
38
|
|
44
39
|
export type WebSocketOnCloseCallback =
|