54 lines
1.7 KiB
JavaScript
54 lines
1.7 KiB
JavaScript
// @ts-check
|
||
const path = require("path");
|
||
const glob = require("glob");
|
||
const { forStrictNullCheckEligibleFiles, forEachFileInSrc } = require("./src/getStrictNullCheckEligibleFiles");
|
||
const { getImportsForFile } = require("./src/tsHelper");
|
||
|
||
const projectRoot = path.join(process.cwd());
|
||
const srcRoot = path.join(projectRoot, "src");
|
||
|
||
let sort = true;
|
||
let filter;
|
||
let printDependedOnCount = true;
|
||
let includeTests = false;
|
||
|
||
// if (false) {
|
||
// // Generate test files listing
|
||
// sort = false;
|
||
// filter = x => x.endsWith(".test.ts");
|
||
// printDependedOnCount = false;
|
||
// includeTests = true;
|
||
// }
|
||
|
||
forStrictNullCheckEligibleFiles(projectRoot, () => {}, { includeTests }).then(async eligibleFiles => {
|
||
console.log(eligibleFiles);
|
||
// const eligibleSet = new Set(eligibleFiles);
|
||
// const dependedOnCount = new Map(eligibleFiles.map(file => [file, 0]));
|
||
// for (const file of await forEachFileInSrc(srcRoot)) {
|
||
// if (eligibleSet.has(file)) {
|
||
// // Already added
|
||
// continue;
|
||
// }
|
||
// for (const imp of getImportsForFile(file, srcRoot)) {
|
||
// if (dependedOnCount.has(imp)) {
|
||
// dependedOnCount.set(imp, dependedOnCount.get(imp) + 1);
|
||
// }
|
||
// }
|
||
// }
|
||
// let out = Array.from(dependedOnCount.entries());
|
||
// if (filter) {
|
||
// out = out.filter(x => filter(x[0]));
|
||
// }
|
||
// if (sort) {
|
||
// out = out.sort((a, b) => b[1] - a[1]);
|
||
// }
|
||
// for (const pair of out) {
|
||
// console.log(toFormattedFilePath(pair[0]) + (printDependedOnCount ? ` — Depended on by **${pair[1]}** files` : ""));
|
||
// }
|
||
});
|
||
|
||
// function toFormattedFilePath(file) {
|
||
// // return `"./${path.relative(srcRoot, file)}",`;
|
||
// return `- [ ] \`"./${path.relative(srcRoot, file)}"\``;
|
||
// }
|