knip
Version:
Find and fix unused files, dependencies and exports in your TypeScript and JavaScript projects
24 lines (23 loc) • 852 B
JavaScript
export const fencedCodeBlockMatcher = /```[\s\S]*?```/g;
const scriptExtractor = /<script\b[^>]*>([\s\S]*?)<\/script>/gm;
export const importMatcher = /import[^'"]+['"]([^'"]+)['"]/g;
export const importsWithinScripts = (text) => {
const scripts = [];
let scriptMatch;
while ((scriptMatch = scriptExtractor.exec(text))) {
for (const importMatch of scriptMatch[1].matchAll(importMatcher)) {
scripts.push(importMatch);
}
}
return scripts.join(';\n');
};
const scriptBodyExtractor = /<script\b[^>]*>(?<body>[\s\S]*?)<\/script>/gm;
export const scriptBodies = (text) => {
const scripts = [];
let scriptMatch;
while ((scriptMatch = scriptBodyExtractor.exec(text))) {
if (scriptMatch.groups?.body)
scripts.push(scriptMatch.groups.body);
}
return scripts.join(';\n');
};