Skip to content

Commit aabf746

Browse files
committed
WIP: simplify steps like prettification etc.
1 parent 3cbd214 commit aabf746

12 files changed

+270
-496
lines changed

src/css-tree.d.ts

Lines changed: 0 additions & 61 deletions
This file was deleted.

src/decuplicate.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import type { Coverage, Range } from './parse-coverage.ts'
66
* - if a duplicate stylesheet enters the room, we add it's ranges to the existing stylesheet's ranges
77
* - only bytes of deduplicated stylesheets are counted
88
*/
9-
export function deduplicate_entries(entries: Coverage[]): Map<NonNullable<Coverage['text']>, Pick<Coverage, 'ranges' | 'url'>> {
9+
export function deduplicate_entries(entries: Coverage[]): Coverage[] {
1010
let checked_stylesheets = new Map<string, { url: string; ranges: Range[] }>()
1111

1212
for (let entry of entries) {
13-
let text = entry.text || ''
13+
let text = entry.text
1414
if (checked_stylesheets.has(text)) {
1515
let sheet = checked_stylesheets.get(text)!
1616
let ranges = sheet.ranges
@@ -36,5 +36,5 @@ export function deduplicate_entries(entries: Coverage[]): Map<NonNullable<Covera
3636
}
3737
}
3838

39-
return checked_stylesheets
39+
return Array.from(checked_stylesheets, ([text, { url, ranges }]) => ({ text, url, ranges }))
4040
}

src/deduplicate.test.ts

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@ test('handles a single entry', () => {
77
ranges: [{ start: 0, end: 4 }],
88
url: 'example.com',
99
}
10-
expect(deduplicate_entries([entry])).toEqual(new Map([[entry.text, { url: entry.url, ranges: entry.ranges }]]))
10+
expect(deduplicate_entries([entry])).toEqual([entry])
1111
})
1212

13-
test('deduplicats a simple duplicate entry', () => {
13+
test('deduplicates a simple duplicate entry', () => {
1414
let entry = {
1515
text: 'a {}',
1616
ranges: [{ start: 0, end: 4 }],
1717
url: 'example.com',
1818
}
19-
expect(deduplicate_entries([entry, entry])).toEqual(new Map([[entry.text, { url: entry.url, ranges: entry.ranges }]]))
19+
expect(deduplicate_entries([entry, entry])).toEqual([entry])
2020
})
2121

2222
test('merges two identical texts with different URLs and identical ranges', () => {
@@ -33,7 +33,7 @@ test('merges two identical texts with different URLs and identical ranges', () =
3333
},
3434
]
3535
let first = entries.at(0)!
36-
expect(deduplicate_entries(entries)).toEqual(new Map([[first.text, { url: first.url, ranges: first.ranges }]]))
36+
expect(deduplicate_entries(entries)).toEqual([{ text: first.text, url: first.url, ranges: first.ranges }])
3737
})
3838

3939
test('merges different ranges on identical CSS, different URLs', () => {
@@ -50,9 +50,7 @@ test('merges different ranges on identical CSS, different URLs', () => {
5050
},
5151
]
5252
let first = entries.at(0)!
53-
expect(deduplicate_entries(entries)).toEqual(
54-
new Map([[first.text, { url: first.url, ranges: [first.ranges[0], entries[1]!.ranges[0]] }]]),
55-
)
53+
expect(deduplicate_entries(entries)).toEqual([{ text: first.text, url: first.url, ranges: [first.ranges[0], entries[1]!.ranges[0]] }])
5654
})
5755

5856
test('merges different ranges on identical CSS, identical URLs', () => {
@@ -68,9 +66,9 @@ test('merges different ranges on identical CSS, identical URLs', () => {
6866
url: 'example.com',
6967
},
7068
]
71-
expect(deduplicate_entries(entries)).toEqual(
72-
new Map([[entries[0]!.text, { url: entries[0]!.url, ranges: [entries[0]!.ranges[0], entries[1]!.ranges[0]] }]]),
73-
)
69+
expect(deduplicate_entries(entries)).toEqual([
70+
{ text: entries[0]!.text, url: entries[0]!.url, ranges: [entries[0]!.ranges[0], entries[1]!.ranges[0]] },
71+
])
7472
})
7573

7674
test('does not merge different CSS with different URLs and identical ranges', () => {
@@ -86,12 +84,10 @@ test('does not merge different CSS with different URLs and identical ranges', ()
8684
url: 'example.com/b',
8785
},
8886
]
89-
expect(deduplicate_entries(entries)).toEqual(
90-
new Map([
91-
[entries[0]!.text, { url: entries[0]!.url, ranges: entries[0]!.ranges }],
92-
[entries[1]!.text, { url: entries[1]!.url, ranges: entries[1]!.ranges }],
93-
]),
94-
)
87+
expect(deduplicate_entries(entries)).toEqual([
88+
{ text: entries[0]!.text, url: entries[0]!.url, ranges: entries[0]!.ranges },
89+
{ text: entries[1]!.text, url: entries[1]!.url, ranges: entries[1]!.ranges },
90+
])
9591
})
9692

9793
test('does not merge different CSS with same URLs and identical ranges', () => {
@@ -107,10 +103,8 @@ test('does not merge different CSS with same URLs and identical ranges', () => {
107103
url: 'example.com',
108104
},
109105
]
110-
expect(deduplicate_entries(entries)).toEqual(
111-
new Map([
112-
[entries[0]!.text, { url: entries[0]!.url, ranges: entries[0]!.ranges }],
113-
[entries[1]!.text, { url: entries[1]!.url, ranges: entries[1]!.ranges }],
114-
]),
115-
)
106+
expect(deduplicate_entries(entries)).toEqual([
107+
{ text: entries[0]!.text, url: entries[0]!.url, ranges: entries[0]!.ranges },
108+
{ text: entries[1]!.text, url: entries[1]!.url, ranges: entries[1]!.ranges },
109+
])
116110
})

src/filter-entries.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ export function filter_coverage(coverage: Coverage[], parse_html?: Parser): Cove
1111
let result = []
1212

1313
for (let entry of coverage) {
14-
if (!entry.text) continue
1514
let extension = ext(entry.url).toLowerCase()
1615
if (extension === 'js') continue
1716

0 commit comments

Comments
 (0)