Files
reverse-engineering-anything/scripts/verify/completeness-enum-guard.mjs
T
morluto 1c90a0fcdb refactor(coverage): give the complete/partial/unknown status one owner and ratchet local completeness enums (#11134)
* refactor(coverage): give the complete/partial/unknown status one owner and ratchet local completeness enums

* fix(verify): count chained local completeness enums and exclude detail levels

* fix(javascript): keep source-to-bundle coverage unknown when an input's coverage is unknown (#11162)
2026-11-15 21:34:58 +08:00

17 lines
758 B
JavaScript

// Counts local zod enums that spell a completeness vocabulary: their literal
// list contains "complete". A detail level (`"complete" | "summary"`) chooses
// how much to return, not what was examined, so a list with "summary" is not
// counted. Whitespace, including line breaks, may separate `z`, `.enum(` and
// `[`, so a formatter's chained layout (`z\n .enum([...])`) is counted like
// the inline one.
const zodEnumLiterals = /\bz\s*\.\s*enum\s*\(\s*\[([^\]]*)\]/gu;
/** @param {string} content */
export const localCompletenessEnumCount = (content) => {
let count = 0;
for (const [, literals] of content.matchAll(zodEnumLiterals))
if (literals.includes('"complete"') && !literals.includes('"summary"'))
count += 1;
return count;
};