Skip to content

Commit 14fa4f3

Browse files
committed
tweaks
1 parent 2c42d42 commit 14fa4f3

File tree

3 files changed

+16
-25
lines changed

3 files changed

+16
-25
lines changed

src/decuplicate.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ 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[]): Map<Coverage['text'], Pick<Coverage, 'ranges' | 'url'>> {
1010
let checked_stylesheets = new Map<string, { url: string; ranges: Range[] }>()
1111

1212
for (let entry of entries) {

src/index.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ test.describe('from <style> tag', () => {
2929
</body>
3030
</html>
3131
`
32-
coverage = await generate_coverage(html)
32+
coverage = (await generate_coverage(html)) as Coverage[]
3333
})
3434

3535
test('counts totals', () => {
@@ -86,7 +86,7 @@ test.describe('from <link rel="stylesheet">', () => {
8686
</body>
8787
</html>
8888
`
89-
coverage = await generate_coverage(html, { link_css: css })
89+
coverage = (await generate_coverage(html, { link_css: css })) as Coverage[]
9090
})
9191

9292
test('counts totals', () => {

src/parse-coverage.ts

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,22 @@
11
import * as v from 'valibot'
22

3-
export type Range = {
4-
start: number
5-
end: number
6-
}
3+
let RangeSchema = v.object({
4+
start: v.number(),
5+
end: v.number(),
6+
})
77

8-
export type Coverage = {
9-
url: string
10-
text: string
11-
ranges: Range[]
12-
}
8+
export type Range = v.InferInput<typeof RangeSchema>
9+
10+
let CoverageSchema = v.object({
11+
text: v.string(),
12+
url: v.string(),
13+
ranges: v.array(RangeSchema),
14+
})
1315

14-
let CoverageSchema = v.array(
15-
v.object({
16-
text: v.string(),
17-
url: v.string(),
18-
ranges: v.array(
19-
v.object({
20-
start: v.number(),
21-
end: v.number(),
22-
}),
23-
),
24-
}),
25-
)
16+
export type Coverage = v.InferInput<typeof CoverageSchema>
2617

2718
export function is_valid_coverage(input: unknown): boolean {
28-
let result = v.safeParse(CoverageSchema, input)
19+
let result = v.safeParse(v.array(CoverageSchema), input)
2920
return result.success
3021
}
3122

0 commit comments

Comments
 (0)