mirror of https://github.com/sveltejs/svelte
parent
daec25604f
commit
b93c815191
@ -0,0 +1 @@
|
|||||||
|
observed-errors-*.log
|
@ -0,0 +1,59 @@
|
|||||||
|
const dirToCheck = [
|
||||||
|
'compiler',
|
||||||
|
'runtime',
|
||||||
|
]
|
||||||
|
const tsErrorsThreshold = [
|
||||||
|
883, /* 'compiler' */
|
||||||
|
362, /* 'runtime' */
|
||||||
|
];
|
||||||
|
|
||||||
|
import { promisify } from 'util';
|
||||||
|
import { exec as execCallback } from 'child_process';
|
||||||
|
const exec = promisify(execCallback);
|
||||||
|
|
||||||
|
const identity = i => i;
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
const errors = await Promise.all(dirToCheck.map(dir => getTsErrors(dir)));
|
||||||
|
const errorsCount = errors.map(countTsErrors);
|
||||||
|
const noop = () => void 0;
|
||||||
|
|
||||||
|
let conditionallyPrintError = [noop, noop];
|
||||||
|
let conditionallyExplainError = noop;
|
||||||
|
let printErrorCount = [noop, noop];
|
||||||
|
let conditionallyAskForFix = noop;
|
||||||
|
let conditionallyExitWithNonZeroCode = noop;
|
||||||
|
|
||||||
|
for (let i = 0; i < tsErrorsThreshold.length; i++) {
|
||||||
|
if(errorsCount[i] > tsErrorsThreshold[i]) {
|
||||||
|
conditionallyPrintError[i] = () => console.log(errors[i]);
|
||||||
|
conditionallyExplainError = () => console.log(`This project is in the processing of enforcing TypeScript's "strict": true`);
|
||||||
|
printErrorCount[i] = () => printErrorFromCompileCount(dirToCheck[i], errorsCount[i], tsErrorsThreshold[i], 'higher than')
|
||||||
|
conditionallyAskForFix = () => console.log(`Please fix the some of the above mentioned errors to bring the number of errors below the allowed threshold`);
|
||||||
|
conditionallyExitWithNonZeroCode = () => process.exit(42);
|
||||||
|
} else {
|
||||||
|
printErrorCount[i] = () => printErrorFromCompileCount(dirToCheck[i], errorsCount[i], tsErrorsThreshold[i], 'less than or equal to')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
conditionallyPrintError.forEach(f => f());
|
||||||
|
conditionallyExplainError();
|
||||||
|
printErrorCount.forEach(f => f());
|
||||||
|
conditionallyAskForFix()
|
||||||
|
conditionallyExitWithNonZeroCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
main();
|
||||||
|
|
||||||
|
async function getTsErrors(dir) {
|
||||||
|
const { stdout } = await exec(`npx tsc -p src/${dir} --noEmit`).then(identity, identity);
|
||||||
|
return stdout
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function countTsErrors(stdout) {
|
||||||
|
return (stdout.match(/error TS/g) || []).length
|
||||||
|
}
|
||||||
|
|
||||||
|
function printErrorFromCompileCount (dir, count, allowed, operator ) {
|
||||||
|
console.log(`in src/${dir}: The number of errors resulting from TypeScript's "strict": true is, ${count}, ${operator} allowed ${allowed}`);
|
||||||
|
}
|
Loading…
Reference in new issue