redux-connected-devtools 1.0.2 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/DevInspector/DevInspector.js +12 -0
- package/{src/components/DevInspector/DevInspector.style.tsx → dist/components/DevInspector/DevInspector.style.js} +1 -3
- package/dist/components/DevList/DevList.js +24 -0
- package/{src/components/DevList/DevList.style.tsx → dist/components/DevList/DevList.style.js} +2 -4
- package/dist/components/DevMenu/DevMenu.js +25 -0
- package/{src/components/DevMenu/DevMenu.style.tsx → dist/components/DevMenu/DevMenu.style.js} +15 -19
- package/dist/components/DevPanel/DevPanel.js +38 -0
- package/dist/components/DevPanel/DevPanel.style.js +22 -0
- package/dist/components/DevtoolsApp/DevtoolsApp.js +17 -0
- package/dist/components/DevtoolsApp/DevtoolsApp.style.js +11 -0
- package/dist/components/Icon/AllIcons.js +18 -0
- package/dist/components/Icon/Icon.js +9 -0
- package/dist/components/Icon/Icon.style.js +10 -0
- package/{src/components/JourneyRow/JourneyRow.tsx → dist/components/JourneyRow/JourneyRow.js} +9 -32
- package/{src/components/JourneyRow/JourneyRow.style.tsx → dist/components/JourneyRow/JourneyRow.style.js} +7 -12
- package/dist/components/JsonViewer/JsonViewer.js +7 -0
- package/{src/components/JsonViewer/JsonViewer.style.tsx → dist/components/JsonViewer/JsonViewer.style.js} +1 -2
- package/dist/components/Lifecycle/Lifecycle.js +15 -0
- package/{src/components/Lifecycle/Lifecycle.style.tsx → dist/components/Lifecycle/Lifecycle.style.js} +1 -2
- package/dist/components/RequestDetails/RequestDetails.js +10 -0
- package/dist/components/RequestDetails/RequestDetails.style.js +16 -0
- package/dist/components/RequestJourney/RequestJourney.js +14 -0
- package/dist/components/RequestJourney/RequestJourney.style.js +26 -0
- package/dist/components/RequestRow/RequestRow.js +9 -0
- package/{src/components/RequestRow/RequestRow.style.tsx → dist/components/RequestRow/RequestRow.style.js} +6 -10
- package/dist/components/Size/Size.js +10 -0
- package/dist/components/Size/Size.style.js +5 -0
- package/{src/components/Time/Time.tsx → dist/components/Time/Time.js} +3 -17
- package/{src/components/Time/Time.style.tsx → dist/components/Time/Time.style.js} +4 -7
- package/dist/containers/DevMenuContainer.js +11 -0
- package/dist/containers/DevPanelContainer.js +6 -0
- package/dist/containers/DevtoolsAppContainer.js +24 -0
- package/{src/containers/EndpointConfigsContainer.tsx → dist/containers/EndpointConfigsContainer.js} +2 -5
- package/{src/containers/EndpointStatusContainer.tsx → dist/containers/EndpointStatusContainer.js} +2 -5
- package/{src/containers/GlobalSettingsContainer.tsx → dist/containers/GlobalSettingsContainer.js} +2 -5
- package/{src/containers/GlobalStatsContainer.tsx → dist/containers/GlobalStatsContainer.js} +2 -5
- package/{src/containers/LifecycleApiErrorContainer.tsx → dist/containers/LifecycleApiErrorContainer.js} +2 -4
- package/dist/containers/LifecycleFailedContainer.js +9 -0
- package/{src/containers/LifecycleGeneralErrorContainer.tsx → dist/containers/LifecycleGeneralErrorContainer.js} +2 -4
- package/{src/containers/LifecycleInQueueContainer.tsx → dist/containers/LifecycleInQueueContainer.js} +2 -4
- package/{src/containers/LifecyclePendingApiContainer.tsx → dist/containers/LifecyclePendingApiContainer.js} +2 -4
- package/{src/containers/LifecyclePostActionContainer.tsx → dist/containers/LifecyclePostActionContainer.js} +2 -4
- package/{src/containers/LifecycleReceivedContainer.tsx → dist/containers/LifecycleReceivedContainer.js} +2 -4
- package/{src/data/devComponents.tsx → dist/data/devComponents.js} +3 -4
- package/{src/data/devRoutes.ts → dist/data/devRoutes.js} +23 -28
- package/dist/dts/components/DevInspector/DevInspector.d.ts +7 -0
- package/dist/dts/components/DevInspector/DevInspector.style.d.ts +1 -0
- package/dist/dts/components/DevList/DevList.d.ts +9 -0
- package/dist/dts/components/DevList/DevList.style.d.ts +2 -0
- package/dist/dts/components/DevMenu/DevMenu.d.ts +12 -0
- package/dist/dts/components/DevMenu/DevMenu.style.d.ts +7 -0
- package/dist/dts/components/DevPanel/DevPanel.d.ts +6 -0
- package/dist/dts/components/DevPanel/DevPanel.style.d.ts +3 -0
- package/dist/dts/components/DevtoolsApp/DevtoolsApp.d.ts +10 -0
- package/dist/dts/components/DevtoolsApp/DevtoolsApp.style.d.ts +1 -0
- package/dist/dts/components/Icon/AllIcons.d.ts +8 -0
- package/dist/dts/components/Icon/Icon.d.ts +10 -0
- package/dist/dts/components/Icon/Icon.style.d.ts +3 -0
- package/dist/dts/components/JourneyRow/JourneyRow.d.ts +7 -0
- package/dist/dts/components/JourneyRow/JourneyRow.style.d.ts +5 -0
- package/dist/dts/components/JsonViewer/JsonViewer.d.ts +7 -0
- package/dist/dts/components/JsonViewer/JsonViewer.style.d.ts +3 -0
- package/dist/dts/components/Lifecycle/Lifecycle.d.ts +7 -0
- package/dist/dts/components/Lifecycle/Lifecycle.style.d.ts +1 -0
- package/dist/dts/components/RequestDetails/RequestDetails.d.ts +7 -0
- package/dist/dts/components/RequestDetails/RequestDetails.style.d.ts +4 -0
- package/dist/dts/components/RequestJourney/RequestJourney.d.ts +7 -0
- package/dist/dts/components/RequestJourney/RequestJourney.style.d.ts +1 -0
- package/dist/dts/components/RequestRow/RequestRow.d.ts +11 -0
- package/dist/dts/components/RequestRow/RequestRow.style.d.ts +6 -0
- package/dist/dts/components/Size/Size.d.ts +6 -0
- package/dist/dts/components/Size/Size.style.d.ts +1 -0
- package/dist/dts/components/Time/Time.d.ts +6 -0
- package/dist/dts/components/Time/Time.style.d.ts +3 -0
- package/dist/dts/containers/DevMenuContainer.d.ts +8 -0
- package/dist/dts/containers/DevPanelContainer.d.ts +6 -0
- package/dist/dts/containers/DevtoolsAppContainer.d.ts +7 -0
- package/dist/dts/containers/EndpointConfigsContainer.d.ts +3 -0
- package/dist/dts/containers/EndpointStatusContainer.d.ts +3 -0
- package/dist/dts/containers/GlobalSettingsContainer.d.ts +3 -0
- package/dist/dts/containers/GlobalStatsContainer.d.ts +3 -0
- package/dist/dts/containers/LifecycleApiErrorContainer.d.ts +3 -0
- package/dist/dts/containers/LifecycleFailedContainer.d.ts +3 -0
- package/dist/dts/containers/LifecycleGeneralErrorContainer.d.ts +3 -0
- package/dist/dts/containers/LifecycleInQueueContainer.d.ts +3 -0
- package/dist/dts/containers/LifecyclePendingApiContainer.d.ts +3 -0
- package/dist/dts/containers/LifecyclePostActionContainer.d.ts +3 -0
- package/dist/dts/containers/LifecycleReceivedContainer.d.ts +3 -0
- package/dist/dts/data/devComponents.d.ts +4 -0
- package/dist/dts/data/devRoutes.d.ts +8 -0
- package/dist/dts/hooks/useStoreSize.d.ts +7 -0
- package/dist/dts/index.d.ts +1 -0
- package/dist/dts/store/selectors.d.ts +2235 -0
- package/dist/dts/types.d.ts +0 -0
- package/dist/dts/utils/date.d.ts +4 -0
- package/dist/dts/utils/download.d.ts +1 -0
- package/dist/hooks/useStoreSize.js +16 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/redux-connected-devtools.es.js +992 -0
- package/dist/redux-connected-devtools.es.js.map +1 -0
- package/dist/redux-connected-devtools.umd.js +247 -0
- package/dist/redux-connected-devtools.umd.js.map +1 -0
- package/dist/store/selectors.js +143 -0
- package/dist/types.js +1 -0
- package/dist/utils/date.js +8 -0
- package/dist/utils/download.js +17 -0
- package/package.json +29 -13
- package/.env +0 -2
- package/.prettierrc.js +0 -10
- package/.vscode/settings.json +0 -12
- package/.vscode/tasks.json +0 -33
- package/index.html +0 -58
- package/jest.config.js +0 -8
- package/public/devtools.html +0 -8
- package/public/icon.png +0 -0
- package/public/manifest.json +0 -29
- package/public/options.html +0 -12
- package/public/panel.html +0 -39
- package/public/popup.html +0 -12
- package/src/__tests__/sum.ts +0 -9
- package/src/background.ts +0 -49
- package/src/components/DevInspector/DevInspector.scss +0 -2
- package/src/components/DevInspector/DevInspector.tsx +0 -34
- package/src/components/DevList/DevList.scss +0 -2
- package/src/components/DevList/DevList.tsx +0 -62
- package/src/components/DevMenu/DevMenu.scss +0 -2
- package/src/components/DevMenu/DevMenu.tsx +0 -76
- package/src/components/DevPanel/DevPanel.scss +0 -2
- package/src/components/DevPanel/DevPanel.style.tsx +0 -16
- package/src/components/DevPanel/DevPanel.tsx +0 -51
- package/src/components/JourneyRow/JourneyRow.scss +0 -2
- package/src/components/JsonViewer/JsonViewer.scss +0 -2
- package/src/components/JsonViewer/JsonViewer.tsx +0 -24
- package/src/components/Lifecycle/Lifecycle.scss +0 -2
- package/src/components/Lifecycle/Lifecycle.tsx +0 -31
- package/src/components/LogsViewer/LogsViewer.scss +0 -2
- package/src/components/LogsViewer/LogsViewer.style.tsx +0 -5
- package/src/components/LogsViewer/LogsViewer.tsx +0 -14
- package/src/components/RequestDetails/RequestDetails.scss +0 -2
- package/src/components/RequestDetails/RequestDetails.style.tsx +0 -20
- package/src/components/RequestDetails/RequestDetails.tsx +0 -60
- package/src/components/RequestJourney/RequestJourney.scss +0 -2
- package/src/components/RequestJourney/RequestJourney.style.tsx +0 -6
- package/src/components/RequestJourney/RequestJourney.tsx +0 -33
- package/src/components/RequestRow/RequestRow.scss +0 -2
- package/src/components/RequestRow/RequestRow.tsx +0 -37
- package/src/components/Time/Time.scss +0 -2
- package/src/containers/DevMenuContainer.tsx +0 -28
- package/src/containers/DevPanelContainer.tsx +0 -10
- package/src/content_script.ts +0 -19
- package/src/devtools.tsx +0 -29
- package/src/index.ts +0 -1
- package/src/injected_script.ts +0 -9
- package/src/options.tsx +0 -77
- package/src/panel.tsx +0 -30
- package/src/popup.tsx +0 -63
- package/src/store/initialState.ts +0 -42
- package/src/store/selectors.ts +0 -205
- package/src/sum.ts +0 -3
- package/src/types.ts +0 -1
- package/src/utils/date.ts +0 -3
- package/tsconfig.json +0 -24
- package/vite.config.ts +0 -45
- package/webpack/webpack.common.js +0 -46
- package/webpack/webpack.dev.js +0 -7
- package/webpack/webpack.prod.js +0 -6
@@ -0,0 +1,143 @@
|
|
1
|
+
import { createSelector } from 'reselect';
|
2
|
+
import { connectedSelectors, LifecycleStatus } from 'redux-connected';
|
3
|
+
export const $requests = createSelector(connectedSelectors.$requests, (requests) => {
|
4
|
+
return requests
|
5
|
+
.map((request) => {
|
6
|
+
const { items } = request;
|
7
|
+
const lastPoint = items[items.length - 1] ?? {};
|
8
|
+
const journeyWithDelta = items.map((point, index) => {
|
9
|
+
const nextPoint = items[index + 1] ?? point;
|
10
|
+
const delta = nextPoint.timestamp - point.timestamp;
|
11
|
+
return {
|
12
|
+
...point,
|
13
|
+
delta,
|
14
|
+
};
|
15
|
+
});
|
16
|
+
return {
|
17
|
+
...request,
|
18
|
+
items: journeyWithDelta,
|
19
|
+
lastPointTimestamp: lastPoint.timestamp,
|
20
|
+
lastPointStatus: lastPoint.status,
|
21
|
+
};
|
22
|
+
})
|
23
|
+
.sort((a, b) => {
|
24
|
+
if (a.lastPointTimestamp === b.lastPointTimestamp) {
|
25
|
+
return 0;
|
26
|
+
}
|
27
|
+
return a.lastPointTimestamp > b.lastPointTimestamp ? -1 : 1;
|
28
|
+
});
|
29
|
+
});
|
30
|
+
// 1
|
31
|
+
export const $requestsReceived = createSelector($requests, (requests) => {
|
32
|
+
return requests.filter((request) => {
|
33
|
+
const { items } = request;
|
34
|
+
const lastPoint = items[items.length - 1];
|
35
|
+
return lastPoint && lastPoint.status === LifecycleStatus.RECEIVED;
|
36
|
+
});
|
37
|
+
});
|
38
|
+
export const $requestsReceivedPast = createSelector($requests, (requests) => {
|
39
|
+
return requests.filter((request) => {
|
40
|
+
const { items } = request;
|
41
|
+
return items.find((point) => point.status === LifecycleStatus.RECEIVED);
|
42
|
+
});
|
43
|
+
});
|
44
|
+
// 2
|
45
|
+
export const $requestsInQueue = createSelector($requests, (requests) => {
|
46
|
+
return requests.filter((request) => {
|
47
|
+
const { items } = request;
|
48
|
+
const lastPoint = items[items.length - 1];
|
49
|
+
return lastPoint && lastPoint.status === LifecycleStatus.IN_QUEUE;
|
50
|
+
});
|
51
|
+
});
|
52
|
+
export const $requestsInQueuePast = createSelector($requests, (requests) => {
|
53
|
+
return requests.filter((request) => {
|
54
|
+
const { items } = request;
|
55
|
+
return items.find((point) => point.status === LifecycleStatus.IN_QUEUE);
|
56
|
+
});
|
57
|
+
});
|
58
|
+
// 3
|
59
|
+
export const $requestsPendingApi = createSelector($requests, (requests) => {
|
60
|
+
return requests.filter((request) => {
|
61
|
+
const { items } = request;
|
62
|
+
const lastPoint = items[items.length - 1];
|
63
|
+
return (lastPoint &&
|
64
|
+
lastPoint.status === LifecycleStatus.PENDING_API_RESPONSE);
|
65
|
+
});
|
66
|
+
});
|
67
|
+
export const $requestsPendingApiPast = createSelector($requests, (requests) => {
|
68
|
+
return requests.filter((request) => {
|
69
|
+
const { items } = request;
|
70
|
+
return items.find((point) => point.status === LifecycleStatus.PENDING_API_RESPONSE);
|
71
|
+
});
|
72
|
+
});
|
73
|
+
// 4
|
74
|
+
export const $requestsPostAction = createSelector($requests, (requests) => {
|
75
|
+
return requests.filter((request) => {
|
76
|
+
const { items } = request;
|
77
|
+
const lastPoint = items[items.length - 1];
|
78
|
+
return lastPoint && lastPoint.status === LifecycleStatus.POST_ACTION;
|
79
|
+
});
|
80
|
+
});
|
81
|
+
export const $requestsPostActionPast = createSelector($requests, (requests) => {
|
82
|
+
return requests.filter((request) => {
|
83
|
+
const { items } = request;
|
84
|
+
return items.find((point) => point.status === LifecycleStatus.POST_ACTION);
|
85
|
+
});
|
86
|
+
});
|
87
|
+
// e1
|
88
|
+
export const $requestsGeneralError = createSelector($requests, (requests) => {
|
89
|
+
return requests.filter((request) => {
|
90
|
+
const { items } = request;
|
91
|
+
const lastPoint = items[items.length - 1];
|
92
|
+
return lastPoint && lastPoint.status === LifecycleStatus.GENERAL_ERROR;
|
93
|
+
});
|
94
|
+
});
|
95
|
+
export const $requestsGeneralErrorPast = createSelector($requests, (requests) => {
|
96
|
+
return requests.filter((request) => {
|
97
|
+
const { items } = request;
|
98
|
+
return items.find((point) => point.status === LifecycleStatus.GENERAL_ERROR);
|
99
|
+
});
|
100
|
+
});
|
101
|
+
// e2
|
102
|
+
export const $requestsApiError = createSelector($requests, (requests) => {
|
103
|
+
return requests.filter((request) => {
|
104
|
+
const { items } = request;
|
105
|
+
const lastPoint = items[items.length - 1];
|
106
|
+
return lastPoint && lastPoint.status === LifecycleStatus.API_ERROR;
|
107
|
+
});
|
108
|
+
});
|
109
|
+
// e3
|
110
|
+
export const $requestsFailed = createSelector($requests, (requests) => {
|
111
|
+
return requests.filter((request) => {
|
112
|
+
const { items } = request;
|
113
|
+
return items.find((point) => point.status === LifecycleStatus.FAILED);
|
114
|
+
});
|
115
|
+
});
|
116
|
+
export const $requestsApiErrorPast = createSelector($requests, (requests) => {
|
117
|
+
return requests.filter((request) => {
|
118
|
+
const { items } = request;
|
119
|
+
return items.find((point) => point.status === LifecycleStatus.API_ERROR);
|
120
|
+
});
|
121
|
+
});
|
122
|
+
export const $menuBadges = createSelector($requestsReceived, $requestsInQueue, $requestsGeneralError, $requestsPendingApi, $requestsApiError, $requestsFailed, $requestsPostAction, (requestsReceived, requestsInQueue, requestsGeneralError, requestsPendingApi, requestsApiError, requestsFailed, requestsPostAction) => {
|
123
|
+
return {
|
124
|
+
lifecycleReceived: requestsReceived.length,
|
125
|
+
lifecycleInQueue: requestsInQueue.length,
|
126
|
+
lifecycleGeneralError: requestsGeneralError.length,
|
127
|
+
lifecyclePendingApi: requestsPendingApi.length,
|
128
|
+
lifecycleApiError: requestsApiError.length,
|
129
|
+
lifecycleFailed: requestsFailed.length,
|
130
|
+
lifecyclePostAction: requestsPostAction.length,
|
131
|
+
};
|
132
|
+
});
|
133
|
+
export const $menuBadgesTotal = createSelector($requestsReceivedPast, $requestsInQueuePast, $requestsGeneralErrorPast, $requestsPendingApiPast, $requestsApiErrorPast, $requestsFailed, $requestsPostActionPast, (requestsReceived, requestsInQueue, requestsGeneralError, requestsPendingApi, requestsApiError, requestsFailed, requestsPostAction) => {
|
134
|
+
return {
|
135
|
+
lifecycleReceived: requestsReceived.length,
|
136
|
+
lifecycleInQueue: requestsInQueue.length,
|
137
|
+
lifecycleGeneralError: requestsGeneralError.length,
|
138
|
+
lifecyclePendingApi: requestsPendingApi.length,
|
139
|
+
lifecycleApiError: requestsApiError.length,
|
140
|
+
lifecycleFailed: requestsFailed.length,
|
141
|
+
lifecyclePostAction: requestsPostAction.length,
|
142
|
+
};
|
143
|
+
});
|
package/dist/types.js
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";
|
@@ -0,0 +1,17 @@
|
|
1
|
+
export const download = (filename, json) => {
|
2
|
+
const data = JSON.stringify(json, null, 4);
|
3
|
+
const blob = new Blob([data], { type: 'text/csv' });
|
4
|
+
// @ts-ignore
|
5
|
+
if (window.navigator.msSaveOrOpenBlob) {
|
6
|
+
// @ts-ignore
|
7
|
+
window.navigator.msSaveBlob(blob, filename);
|
8
|
+
}
|
9
|
+
else {
|
10
|
+
const elem = window.document.createElement('a');
|
11
|
+
elem.href = window.URL.createObjectURL(blob);
|
12
|
+
elem.download = filename;
|
13
|
+
document.body.appendChild(elem);
|
14
|
+
elem.click();
|
15
|
+
document.body.removeChild(elem);
|
16
|
+
}
|
17
|
+
};
|
package/package.json
CHANGED
@@ -1,13 +1,11 @@
|
|
1
1
|
{
|
2
2
|
"name": "redux-connected-devtools",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.4",
|
4
4
|
"description": "redux-connected-devtools",
|
5
|
-
"main": "src/index.ts",
|
6
5
|
"scripts": {
|
7
6
|
"dev": "vite",
|
8
7
|
"watch": "webpack --config webpack/webpack.dev.js --watch",
|
9
|
-
"build": "
|
10
|
-
"clean": "rimraf dist",
|
8
|
+
"build": "tsc & vite build",
|
11
9
|
"test": "npx jest",
|
12
10
|
"style": "prettier --write \"src/**/*.{ts,tsx}\""
|
13
11
|
},
|
@@ -17,42 +15,60 @@
|
|
17
15
|
"type": "git",
|
18
16
|
"url": "https://github.com/dht/redux-connected-devtools.git"
|
19
17
|
},
|
18
|
+
"files": [
|
19
|
+
"dist"
|
20
|
+
],
|
20
21
|
"dependencies": {
|
21
22
|
"@redux-devtools/extension": "^3.2.2",
|
22
23
|
"bytes": "^3.1.2",
|
24
|
+
"classnames": "^2.3.2",
|
23
25
|
"dotenv-flow": "^3.2.0",
|
24
|
-
"react": "^17.0.1",
|
25
|
-
"react-dom": "^17.0.2",
|
26
26
|
"react-redux": "^7.2.6",
|
27
|
-
"react-window": "^1.8.
|
28
|
-
"redux-connected": "^0.0.
|
29
|
-
"redux-store-generator": "^0.9.
|
27
|
+
"react-window": "^1.8.8",
|
28
|
+
"redux-connected": "^0.0.103",
|
29
|
+
"redux-store-generator": "^0.9.89",
|
30
30
|
"reselect": "^4.1.5",
|
31
|
+
"rollup-plugin-analyzer": "^4.0.0",
|
32
|
+
"shared-base": "^0.0.27",
|
31
33
|
"styled-components": "^5.3.3",
|
32
34
|
"tslib": "^2.3.1"
|
33
35
|
},
|
36
|
+
"peerDependencies": {
|
37
|
+
"react": "^18.2.0",
|
38
|
+
"react-dom": "^18.2.0"
|
39
|
+
},
|
34
40
|
"devDependencies": {
|
35
|
-
"@types/bytes": "^3.1.1",
|
36
41
|
"@types/chrome": "0.0.158",
|
37
42
|
"@types/jest": "^27.0.2",
|
38
43
|
"@types/react": "^17.0.0",
|
39
44
|
"@types/react-dom": "^17.0.0",
|
40
|
-
"@types/react-window": "^1.8.5",
|
41
45
|
"@types/styled-components": "^5.1.24",
|
42
46
|
"@vitejs/plugin-react": "^1.2.0",
|
43
47
|
"copy-webpack-plugin": "^9.0.1",
|
44
48
|
"glob": "^7.1.6",
|
45
49
|
"jest": "^27.2.1",
|
46
50
|
"prettier": "^2.2.1",
|
51
|
+
"react": "^18.2.0",
|
52
|
+
"react-dom": "^18.2.0",
|
47
53
|
"rimraf": "^3.0.2 ",
|
48
54
|
"ts-jest": "^27.0.5",
|
49
55
|
"ts-loader": "^8.0.0",
|
50
|
-
"typescript": "^4.
|
56
|
+
"typescript": "^4.5.5",
|
51
57
|
"vite": "^2.6.4",
|
52
|
-
"vite-plugin-
|
58
|
+
"vite-plugin-dts": "^1.7.1",
|
59
|
+
"vite-plugin-react-svg": "^0.1.0",
|
53
60
|
"vite-tsconfig-paths": "^3.3.13",
|
54
61
|
"webpack": "^5.0.0",
|
55
62
|
"webpack-cli": "^4.0.0",
|
56
63
|
"webpack-merge": "^5.0.0"
|
64
|
+
},
|
65
|
+
"main": "./dist/redux-connected-devtools.umd.js",
|
66
|
+
"module": "./dist/redux-connected-devtools.es.js",
|
67
|
+
"types": "./dist/dts/index.d.ts",
|
68
|
+
"exports": {
|
69
|
+
".": {
|
70
|
+
"import": "./dist/redux-connected-devtools.es.js",
|
71
|
+
"require": "./dist/redux-connected-devtools.umd.js"
|
72
|
+
}
|
57
73
|
}
|
58
74
|
}
|
package/.env
DELETED
package/.prettierrc.js
DELETED
package/.vscode/settings.json
DELETED
package/.vscode/tasks.json
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
{
|
2
|
-
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
3
|
-
// for the documentation about the tasks.json format
|
4
|
-
"version": "2.0.0",
|
5
|
-
"command": "npm",
|
6
|
-
"tasks": [
|
7
|
-
{
|
8
|
-
"label": "install",
|
9
|
-
"type": "shell",
|
10
|
-
"command": "npm",
|
11
|
-
"args": ["install"]
|
12
|
-
},
|
13
|
-
{
|
14
|
-
"label": "update",
|
15
|
-
"type": "shell",
|
16
|
-
"command": "npm",
|
17
|
-
"args": ["update"]
|
18
|
-
},
|
19
|
-
{
|
20
|
-
"label": "test",
|
21
|
-
"type": "shell",
|
22
|
-
"command": "npm",
|
23
|
-
"args": ["run", "test"]
|
24
|
-
},
|
25
|
-
{
|
26
|
-
"label": "build",
|
27
|
-
"type": "shell",
|
28
|
-
"group": "build",
|
29
|
-
"command": "npm",
|
30
|
-
"args": ["run", "watch"]
|
31
|
-
}
|
32
|
-
]
|
33
|
-
}
|
package/index.html
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html lang="en">
|
3
|
-
<head>
|
4
|
-
<meta charset="UTF-8" />
|
5
|
-
<link rel="icon" type="image/svg+xml" href="/src/favicon.svg" />
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
7
|
-
<link
|
8
|
-
rel="stylesheet"
|
9
|
-
href="https://fonts.googleapis.com/icon?family=Material+Icons"
|
10
|
-
/>
|
11
|
-
<link
|
12
|
-
rel="stylesheet"
|
13
|
-
href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap"
|
14
|
-
/>
|
15
|
-
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
16
|
-
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
17
|
-
<link
|
18
|
-
href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&family=Roboto:wght@100;400;500;700&display=swap"
|
19
|
-
rel="stylesheet"
|
20
|
-
/>
|
21
|
-
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
22
|
-
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
23
|
-
<link
|
24
|
-
href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap"
|
25
|
-
rel="stylesheet"
|
26
|
-
/>
|
27
|
-
|
28
|
-
<title>redux-connected-chrome-extension</title>
|
29
|
-
<style>
|
30
|
-
body {
|
31
|
-
padding: 0;
|
32
|
-
margin: 0;
|
33
|
-
min-height: 100vh;
|
34
|
-
font-family: 'Inter', sans-serif;
|
35
|
-
}
|
36
|
-
|
37
|
-
body,
|
38
|
-
#root {
|
39
|
-
display: flex;
|
40
|
-
flex: 1;
|
41
|
-
}
|
42
|
-
|
43
|
-
input,
|
44
|
-
h1,
|
45
|
-
h2,
|
46
|
-
h3,
|
47
|
-
select,
|
48
|
-
textarea {
|
49
|
-
font-family: 'Inter', sans-serif;
|
50
|
-
}
|
51
|
-
</style>
|
52
|
-
</head>
|
53
|
-
<body>
|
54
|
-
<div id="root"></div>
|
55
|
-
<div id="modal-root"></div>
|
56
|
-
<script type="module" src="/src/panel.tsx"></script>
|
57
|
-
</body>
|
58
|
-
</html>
|
package/jest.config.js
DELETED
package/public/devtools.html
DELETED
package/public/icon.png
DELETED
Binary file
|
package/public/manifest.json
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"manifest_version": 3,
|
3
|
-
"name": "redux-connected devtools",
|
4
|
-
"description": "Inspect the lifecycle of a redux-connected request",
|
5
|
-
"version": "1.0",
|
6
|
-
"options_ui": {
|
7
|
-
"page": "options.html"
|
8
|
-
},
|
9
|
-
"action": {
|
10
|
-
"default_icon": "icon.png",
|
11
|
-
"default_popup": "popup.html"
|
12
|
-
},
|
13
|
-
"background": {
|
14
|
-
"service_worker": "js/background.js"
|
15
|
-
},
|
16
|
-
"content_scripts": [
|
17
|
-
{
|
18
|
-
"matches": ["<all_urls>"],
|
19
|
-
"js": [
|
20
|
-
"js/vendor.js",
|
21
|
-
"js/content_script.js",
|
22
|
-
"js/injected_script.js"
|
23
|
-
]
|
24
|
-
}
|
25
|
-
],
|
26
|
-
"devtools_page": "devtools.html",
|
27
|
-
"permissions": ["storage"],
|
28
|
-
"host_permissions": ["<all_urls>"]
|
29
|
-
}
|
package/public/options.html
DELETED
package/public/panel.html
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>Redux-connected devtools</title>
|
5
|
-
<script src="js/vendor.js"></script>
|
6
|
-
<link
|
7
|
-
href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap"
|
8
|
-
rel="stylesheet"
|
9
|
-
/>
|
10
|
-
<style>
|
11
|
-
body {
|
12
|
-
padding: 0;
|
13
|
-
margin: 0;
|
14
|
-
min-height: 100vh;
|
15
|
-
}
|
16
|
-
|
17
|
-
body,
|
18
|
-
#root {
|
19
|
-
display: flex;
|
20
|
-
flex: 1;
|
21
|
-
font-family: 'Inter', sans-serif;
|
22
|
-
}
|
23
|
-
|
24
|
-
input,
|
25
|
-
h1,
|
26
|
-
h2,
|
27
|
-
h3,
|
28
|
-
select,
|
29
|
-
textarea {
|
30
|
-
font-family: 'Inter', sans-serif;
|
31
|
-
}
|
32
|
-
</style>
|
33
|
-
</head>
|
34
|
-
|
35
|
-
<body>
|
36
|
-
<div id="root"></div>
|
37
|
-
<script src="js/panel.js"></script>
|
38
|
-
</body>
|
39
|
-
</html>
|
package/public/popup.html
DELETED
package/src/__tests__/sum.ts
DELETED
package/src/background.ts
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
// background.js
|
2
|
-
|
3
|
-
let connections: Record<number | string, chrome.runtime.Port> = {};
|
4
|
-
|
5
|
-
chrome.runtime.onConnect.addListener(function (port) {
|
6
|
-
var extensionListener = function (message: any) {
|
7
|
-
// The original connection event doesn't include the tab ID of the
|
8
|
-
// DevTools page, so we need to send it explicitly.
|
9
|
-
if (message.name == 'init') {
|
10
|
-
connections[message.tabId] = port;
|
11
|
-
return;
|
12
|
-
}
|
13
|
-
|
14
|
-
// other message handling
|
15
|
-
};
|
16
|
-
|
17
|
-
// Listen to messages sent from the DevTools page
|
18
|
-
port.onMessage.addListener(extensionListener);
|
19
|
-
|
20
|
-
port.onDisconnect.addListener(function (port) {
|
21
|
-
port.onMessage.removeListener(extensionListener);
|
22
|
-
|
23
|
-
const tabs = Object.keys(connections);
|
24
|
-
for (var i = 0, len = tabs.length; i < len; i++) {
|
25
|
-
if (connections[tabs[i]] == port) {
|
26
|
-
delete connections[tabs[i]];
|
27
|
-
break;
|
28
|
-
}
|
29
|
-
}
|
30
|
-
});
|
31
|
-
});
|
32
|
-
|
33
|
-
// Receive message from content script and relay to the devTools page for the
|
34
|
-
// current tab
|
35
|
-
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
|
36
|
-
// Messages from content scripts should have sender.tab set
|
37
|
-
if (sender.tab) {
|
38
|
-
var tabId = sender.tab.id;
|
39
|
-
|
40
|
-
if (tabId && connections[tabId]) {
|
41
|
-
connections[tabId].postMessage(request);
|
42
|
-
} else {
|
43
|
-
console.log('Tab not found in connection list.');
|
44
|
-
}
|
45
|
-
} else {
|
46
|
-
console.log('sender.tab not defined.');
|
47
|
-
}
|
48
|
-
return true;
|
49
|
-
});
|
@@ -1,34 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { Container } from './DevInspector.style';
|
3
|
-
import { ApiRequest } from 'redux-connected';
|
4
|
-
import RequestJourney from '../RequestJourney/RequestJourney';
|
5
|
-
import RequestDetails from '../RequestDetails/RequestDetails';
|
6
|
-
|
7
|
-
export type DevInspectorProps = {
|
8
|
-
item?: ApiRequest;
|
9
|
-
};
|
10
|
-
|
11
|
-
export function DevInspector(props: DevInspectorProps) {
|
12
|
-
const { item } = props;
|
13
|
-
|
14
|
-
if (!item) {
|
15
|
-
return (
|
16
|
-
<Container
|
17
|
-
className='DevInspector-container'
|
18
|
-
data-testid='DevInspector-container'
|
19
|
-
></Container>
|
20
|
-
);
|
21
|
-
}
|
22
|
-
|
23
|
-
return (
|
24
|
-
<Container
|
25
|
-
className='DevInspector-container'
|
26
|
-
data-testid='DevInspector-container'
|
27
|
-
>
|
28
|
-
<RequestDetails item={item} />
|
29
|
-
<RequestJourney item={item} />
|
30
|
-
</Container>
|
31
|
-
);
|
32
|
-
}
|
33
|
-
|
34
|
-
export default DevInspector;
|
@@ -1,62 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { Container, Empty } from './DevList.style';
|
3
|
-
import { FixedSizeList as List } from 'react-window';
|
4
|
-
import { Json } from '../../types';
|
5
|
-
|
6
|
-
export type DevListProps = {
|
7
|
-
items: Json[];
|
8
|
-
row: React.FC<any>;
|
9
|
-
onClick: (item: any) => void;
|
10
|
-
};
|
11
|
-
|
12
|
-
export function DevList(props: DevListProps) {
|
13
|
-
const { row: Cmp, items } = props;
|
14
|
-
|
15
|
-
const Item = (rowInfo: any) => {
|
16
|
-
const { index, style } = rowInfo;
|
17
|
-
|
18
|
-
const item = items[index];
|
19
|
-
|
20
|
-
return (
|
21
|
-
<Cmp
|
22
|
-
onClick={props.onClick}
|
23
|
-
index={index}
|
24
|
-
style={style}
|
25
|
-
item={item}
|
26
|
-
/>
|
27
|
-
);
|
28
|
-
};
|
29
|
-
|
30
|
-
function renderEmpty() {
|
31
|
-
return <Empty>Empty list</Empty>;
|
32
|
-
}
|
33
|
-
|
34
|
-
function renderList() {
|
35
|
-
if (items.length === 0) {
|
36
|
-
return renderEmpty();
|
37
|
-
}
|
38
|
-
|
39
|
-
return (
|
40
|
-
<List
|
41
|
-
height={850}
|
42
|
-
itemCount={items.length}
|
43
|
-
itemSize={68}
|
44
|
-
width={350}
|
45
|
-
className='list'
|
46
|
-
>
|
47
|
-
{Item}
|
48
|
-
</List>
|
49
|
-
);
|
50
|
-
}
|
51
|
-
|
52
|
-
return (
|
53
|
-
<Container
|
54
|
-
className='DevList-container'
|
55
|
-
data-testid='DevList-container'
|
56
|
-
>
|
57
|
-
{renderList()}
|
58
|
-
</Container>
|
59
|
-
);
|
60
|
-
}
|
61
|
-
|
62
|
-
export default DevList;
|