Skip to content

Commit 2b7eb9f

Browse files
committed
Eslint fix
1 parent a3ca719 commit 2b7eb9f

6 files changed

Lines changed: 243 additions & 83 deletions

File tree

packages/app/src/components/workbench.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ import { customElement, query, state } from 'lit/decorators.js'
44
import { consume } from '@lit/context'
55

66
import { DragController, Direction } from '../utils/DragController.js'
7-
import { consoleLogContext, networkRequestContext } from '../controller/DataManager.js'
7+
import {
8+
consoleLogContext,
9+
networkRequestContext
10+
} from '../controller/DataManager.js'
811

912
import '~icons/mdi/arrow-collapse-down.js'
1013
import '~icons/mdi/arrow-collapse-up.js'

packages/app/src/components/workbench/network.ts

Lines changed: 84 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -9,50 +9,96 @@ import '../placeholder.js'
99
const COMPONENT = 'wdio-devtools-network'
1010

1111
function formatBytes(bytes?: number): string {
12-
if (!bytes || bytes === 0) return '-'
12+
if (!bytes || bytes === 0) {
13+
return '-'
14+
}
1315
const k = 1024
1416
const sizes = ['B', 'KB', 'MB', 'GB']
1517
const i = Math.floor(Math.log(bytes) / Math.log(k))
1618
const size = bytes / Math.pow(k, i)
17-
return size >= 10 ? `${size.toFixed(0)}${sizes[i]}` : `${size.toFixed(1)}${sizes[i]}`
19+
return size >= 10
20+
? `${size.toFixed(0)}${sizes[i]}`
21+
: `${size.toFixed(1)}${sizes[i]}`
1822
}
1923

2024
function formatTime(ms?: number): string {
21-
if (!ms) return '-'
22-
if (ms < 1) return `${(ms * 1000).toFixed(0)}μs`
23-
if (ms < 1000) return `${ms.toFixed(0)}ms`
25+
if (ms === undefined || ms === null) {
26+
return '-'
27+
}
28+
if (ms < 1) {
29+
return `${ms.toFixed(2)}ms`
30+
}
31+
if (ms < 1000) {
32+
return `${ms.toFixed(0)}ms`
33+
}
2434
return `${(ms / 1000).toFixed(1)}s`
2535
}
2636

2737
function getStatusClass(status?: number): string {
28-
if (!status) return 'text-gray-500'
29-
if (status >= 200 && status < 300) return 'text-green-500'
30-
if (status >= 300 && status < 400) return 'text-yellow-500'
31-
if (status >= 400) return 'text-red-500'
38+
if (!status) {
39+
return 'text-gray-500'
40+
}
41+
if (status >= 200 && status < 300) {
42+
return 'text-green-500'
43+
}
44+
if (status >= 300 && status < 400) {
45+
return 'text-yellow-500'
46+
}
47+
if (status >= 400) {
48+
return 'text-red-500'
49+
}
3250
return 'text-gray-500'
3351
}
3452

3553
function getResourceType(request: NetworkRequest): string {
3654
const url = request.url.toLowerCase()
37-
const contentType = request.responseHeaders?.['content-type']?.toLowerCase() || ''
55+
const contentType =
56+
request.responseHeaders?.['content-type']?.toLowerCase() || ''
3857

3958
// Check by content-type first
40-
if (contentType.includes('text/html')) return 'HTML'
41-
if (contentType.includes('text/css')) return 'CSS'
42-
if (contentType.includes('javascript') || contentType.includes('ecmascript')) return 'JS'
43-
if (contentType.includes('image/')) return 'Image'
44-
if (contentType.includes('font/') || contentType.includes('woff')) return 'Font'
45-
if (contentType.includes('application/json')) return 'Fetch'
59+
if (contentType.includes('text/html')) {
60+
return 'HTML'
61+
}
62+
if (contentType.includes('text/css')) {
63+
return 'CSS'
64+
}
65+
if (
66+
contentType.includes('javascript') ||
67+
contentType.includes('ecmascript')
68+
) {
69+
return 'JS'
70+
}
71+
if (contentType.includes('image/')) {
72+
return 'Image'
73+
}
74+
if (contentType.includes('font/') || contentType.includes('woff')) {
75+
return 'Font'
76+
}
77+
if (contentType.includes('application/json')) {
78+
return 'Fetch'
79+
}
4680

4781
// Fallback to URL extension
48-
if (url.endsWith('.html') || url.endsWith('.htm')) return 'HTML'
49-
if (url.endsWith('.css')) return 'CSS'
50-
if (url.endsWith('.js') || url.endsWith('.mjs')) return 'JS'
51-
if (url.match(/\.(png|jpg|jpeg|gif|svg|webp|ico)$/)) return 'Image'
52-
if (url.match(/\.(woff|woff2|ttf|eot|otf)$/)) return 'Font'
82+
if (url.endsWith('.html') || url.endsWith('.htm')) {
83+
return 'HTML'
84+
}
85+
if (url.endsWith('.css')) {
86+
return 'CSS'
87+
}
88+
if (url.endsWith('.js') || url.endsWith('.mjs')) {
89+
return 'JS'
90+
}
91+
if (url.match(/\.(png|jpg|jpeg|gif|svg|webp|ico)$/)) {
92+
return 'Image'
93+
}
94+
if (url.match(/\.(woff|woff2|ttf|eot|otf)$/)) {
95+
return 'Font'
96+
}
5397

5498
// Check by request type
55-
if (request.type === 'fetch' || request.method !== 'GET') return 'Fetch'
99+
if (request.type === 'fetch' || request.method !== 'GET') {
100+
return 'Fetch'
101+
}
56102

57103
return 'Other'
58104
}
@@ -105,7 +151,10 @@ export class DevtoolsNetwork extends Element {
105151
if (parentTab) {
106152
const observer = new MutationObserver((mutations) => {
107153
mutations.forEach((mutation) => {
108-
if (mutation.type === 'attributes' && mutation.attributeName === 'active') {
154+
if (
155+
mutation.type === 'attributes' &&
156+
mutation.attributeName === 'active'
157+
) {
109158
// Tab became inactive, clear selection
110159
if (!parentTab.hasAttribute('active')) {
111160
this.selectedRequest = undefined
@@ -332,7 +381,9 @@ export class DevtoolsNetwork extends Element {
332381

333382
// Filter by resource type
334383
if (this.filterType !== 'All') {
335-
filtered = filtered.filter((req) => getResourceType(req) === this.filterType)
384+
filtered = filtered.filter(
385+
(req) => getResourceType(req) === this.filterType
386+
)
336387
}
337388

338389
// Filter by search query
@@ -424,12 +475,16 @@ export class DevtoolsNetwork extends Element {
424475
>${request.status || (request.error ? 'ERR' : '-')}</span
425476
>
426477
<span class="truncate text-muted"
427-
>${request.responseHeaders?.['content-type']?.split(';')[0] || '-'}</span
478+
>${request.responseHeaders?.['content-type']?.split(
479+
';'
480+
)[0] || '-'}</span
428481
>
429482
<span>${formatTime(request.time)}</span>
430483
<span>${formatBytes(request.size)}</span>
431484
<span class="text-muted"
432-
>${request.startTime ? `${request.startTime.toFixed(1)}s` : '-'}</span
485+
>${request.startTime
486+
? `${request.startTime.toFixed(1)}s`
487+
: '-'}</span
433488
>
434489
</div>
435490
`
@@ -486,17 +541,14 @@ export class DevtoolsNetwork extends Element {
486541
? html`
487542
<div class="header-row">
488543
<span class="header-key">Error:</span>
489-
<span class="header-value text-red-500"
490-
>${req.error}</span
491-
>
544+
<span class="header-value text-red-500">${req.error}</span>
492545
</div>
493546
`
494547
: nothing}
495548
</div>
496549
</div>
497550
498-
${req.requestHeaders &&
499-
Object.keys(req.requestHeaders).length > 0
551+
${req.requestHeaders && Object.keys(req.requestHeaders).length > 0
500552
? html`
501553
<div class="detail-section">
502554
<div class="detail-title">Request Headers</div>
@@ -523,8 +575,7 @@ export class DevtoolsNetwork extends Element {
523575
</div>
524576
`
525577
: nothing}
526-
${req.responseHeaders &&
527-
Object.keys(req.responseHeaders).length > 0
578+
${req.responseHeaders && Object.keys(req.responseHeaders).length > 0
528579
? html`
529580
<div class="detail-section">
530581
<div class="detail-title">Response Headers</div>

packages/app/src/controller/DataManager.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -580,7 +580,9 @@ export class DataManagerController implements ReactiveController {
580580
this.mutationsContextProvider.setValue(traceFile.mutations)
581581
this.logsContextProvider.setValue(traceFile.logs)
582582
this.consoleLogsContextProvider.setValue(traceFile.consoleLogs)
583-
this.networkRequestsContextProvider.setValue(traceFile.networkRequests || [])
583+
this.networkRequestsContextProvider.setValue(
584+
traceFile.networkRequests || []
585+
)
584586
this.metadataContextProvider.setValue(traceFile.metadata)
585587
this.commandsContextProvider.setValue(traceFile.commands)
586588
this.sourcesContextProvider.setValue(traceFile.sources)

packages/script/src/collectors/networkRequests.ts

Lines changed: 51 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -47,23 +47,41 @@ export class NetworkRequestCollector implements Collector<NetworkRequest> {
4747

4848
#shouldIgnoreRequest(url: string): boolean {
4949
// Filter out internal URLs, data URLs, blob URLs, chrome extensions, etc.
50-
if (!url) return true
50+
if (!url) {
51+
return true
52+
}
5153

5254
const urlLower = url.toLowerCase()
5355

5456
// Ignore non-HTTP protocols
55-
if (urlLower.startsWith('data:')) return true
56-
if (urlLower.startsWith('blob:')) return true
57-
if (urlLower.startsWith('chrome:')) return true
58-
if (urlLower.startsWith('chrome-extension:')) return true
59-
if (urlLower.startsWith('about:')) return true
57+
if (urlLower.startsWith('data:')) {
58+
return true
59+
}
60+
if (urlLower.startsWith('blob:')) {
61+
return true
62+
}
63+
if (urlLower.startsWith('chrome:')) {
64+
return true
65+
}
66+
if (urlLower.startsWith('chrome-extension:')) {
67+
return true
68+
}
69+
if (urlLower.startsWith('about:')) {
70+
return true
71+
}
6072

6173
// Ignore WebSocket connections
62-
if (urlLower.startsWith('ws:') || urlLower.startsWith('wss:')) return true
74+
if (urlLower.startsWith('ws:') || urlLower.startsWith('wss:')) {
75+
return true
76+
}
6377

6478
// Ignore browser internal requests
65-
if (urlLower.includes('/.well-known/')) return true
66-
if (urlLower.includes('/favicon.ico')) return true
79+
if (urlLower.includes('/.well-known/')) {
80+
return true
81+
}
82+
if (urlLower.includes('/favicon.ico')) {
83+
return true
84+
}
6785

6886
return false
6987
}
@@ -81,7 +99,12 @@ export class NetworkRequestCollector implements Collector<NetworkRequest> {
8199
init?: RequestInit
82100
): Promise<Response> {
83101
const id = self.#generateId()
84-
const url = typeof input === 'string' ? input : input instanceof URL ? input.href : input.url
102+
const url =
103+
typeof input === 'string'
104+
? input
105+
: input instanceof URL
106+
? input.href
107+
: input.url
85108
const method = init?.method?.toUpperCase() || 'GET'
86109

87110
// Skip internal/non-HTTP requests
@@ -120,10 +143,13 @@ export class NetworkRequestCollector implements Collector<NetworkRequest> {
120143

121144
let responseBody: string | undefined
122145
try {
123-
if (contentType.includes('application/json') || contentType.includes('text/')) {
146+
if (
147+
contentType.includes('application/json') ||
148+
contentType.includes('text/')
149+
) {
124150
responseBody = await response.clone().text()
125151
}
126-
} catch (e) {
152+
} catch {
127153
// Ignore body read errors
128154
}
129155

@@ -208,8 +234,11 @@ export class NetworkRequestCollector implements Collector<NetworkRequest> {
208234
)
209235
}
210236

211-
XMLHttpRequest.prototype.send = function (body?: Document | XMLHttpRequestBodyInit | null) {
212-
const requestData = (this as any)._networkRequestData as Partial<NetworkRequest>
237+
XMLHttpRequest.prototype.send = function (
238+
body?: Document | XMLHttpRequestBodyInit | null
239+
) {
240+
const requestData = (this as any)
241+
._networkRequestData as Partial<NetworkRequest>
213242

214243
// If no request data, this request was filtered out - just send it
215244
if (!requestData) {
@@ -235,10 +264,13 @@ export class NetworkRequestCollector implements Collector<NetworkRequest> {
235264

236265
let responseBody: string | undefined
237266
try {
238-
if (contentType.includes('application/json') || contentType.includes('text/')) {
267+
if (
268+
contentType.includes('application/json') ||
269+
contentType.includes('text/')
270+
) {
239271
responseBody = this.responseText
240272
}
241-
} catch (e) {
273+
} catch {
242274
// Ignore
243275
}
244276

@@ -314,7 +346,9 @@ export class NetworkRequestCollector implements Collector<NetworkRequest> {
314346
}
315347

316348
#estimateSize(body?: string): number {
317-
if (!body) return 0
349+
if (!body) {
350+
return 0
351+
}
318352
return new Blob([body]).size
319353
}
320354
}

packages/service/src/index.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,12 +217,10 @@ export default class DevToolsHookService implements Services.ServiceInstance {
217217

218218
// Listen for network events
219219
this.#browser.on('network.beforeRequestSent', (event: any) => {
220-
log.info(`>>> BiDi beforeRequestSent - keys: ${Object.keys(event).join(', ')}`)
221220
this.#sessionCapturer.handleNetworkRequestStarted(event)
222221
})
223222

224223
this.#browser.on('network.responseCompleted', (event: any) => {
225-
log.info(`>>> BiDi responseCompleted - keys: ${Object.keys(event).join(', ')}`)
226224
this.#sessionCapturer.handleNetworkResponseCompleted(event)
227225
})
228226

0 commit comments

Comments
 (0)