UNPKG

@projectwallace/css-code-coverage

Version:

Generate useful CSS Code Coverage report from browser-reported coverage

68 lines (67 loc) 1.91 kB
import * as v from "valibot"; //#region src/lib/parse-coverage.d.ts declare let RangeSchema: v.ObjectSchema<{ readonly start: v.NumberSchema<undefined>; readonly end: v.NumberSchema<undefined>; }, undefined>; type Range = v.InferInput<typeof RangeSchema>; declare let CoverageSchema: v.ObjectSchema<{ readonly text: v.StringSchema<undefined>; readonly url: v.StringSchema<undefined>; readonly ranges: v.ArraySchema<v.ObjectSchema<{ readonly start: v.NumberSchema<undefined>; readonly end: v.NumberSchema<undefined>; }, undefined>, undefined>; }, undefined>; type Coverage = v.InferInput<typeof CoverageSchema>; declare function parse_coverage(input: string): { text: string; url: string; ranges: { start: number; end: number; }[]; }[]; //#endregion //#region src/lib/chunkify.d.ts type Chunk = { start_offset: number; end_offset: number; is_covered: boolean; }; type ChunkedCoverage = Omit<Coverage, 'ranges'> & { chunks: Chunk[]; }; //#endregion //#region src/lib/prettify.d.ts type PrettifiedChunk = ChunkedCoverage['chunks'][number] & { start_line: number; end_line: number; total_lines: number; css: string; }; //#endregion //#region src/lib/index.d.ts type CoverageData = { uncovered_bytes: number; covered_bytes: number; total_bytes: number; line_coverage_ratio: number; byte_coverage_ratio: number; total_lines: number; covered_lines: number; uncovered_lines: number; }; type StylesheetCoverage = CoverageData & { url: string; text: string; chunks: PrettifiedChunk[]; }; type CoverageResult = CoverageData & { total_files_found: number; total_stylesheets: number; coverage_per_stylesheet: StylesheetCoverage[]; }; declare function calculate_coverage(coverage: Coverage[]): CoverageResult; //#endregion export { type Coverage, CoverageData, CoverageResult, type Range, StylesheetCoverage, calculate_coverage, parse_coverage };