11import * as fs from "fs" ;
2- import * as async from "async" ;
3- import * as glob from "glob" ;
2+ import * as fsPromises from "fs/promises" ;
3+ import * as _glob from "glob" ;
4+ import * as util from "util" ;
45
5- fs . readFile ( "src/compiler/diagnosticMessages.json" , "utf-8" , ( err , data ) => {
6- if ( err ) {
7- throw err ;
8- }
6+ const glob = util . promisify ( _glob ) ;
97
8+ async function checkErrorBaselines ( ) {
9+ const data = await fsPromises . readFile ( "src/compiler/diagnosticMessages.json" , "utf-8" ) ;
1010 const messages = JSON . parse ( data ) ;
1111 const keys = Object . keys ( messages ) ;
1212 console . log ( "Loaded " + keys . length + " errors" ) ;
@@ -18,39 +18,35 @@ fs.readFile("src/compiler/diagnosticMessages.json", "utf-8", (err, data) => {
1818 const errRegex = / \( \d + , \d + \) : e r r o r T S ( [ ^ : ] + ) : / g;
1919 const baseDir = "tests/baselines/reference/" ;
2020
21- fs . readdir ( baseDir , ( err , files ) => {
22- files = files . filter ( f => f . indexOf ( ".errors.txt" ) > 0 ) ;
23- const tasks : ( ( callback : ( ) => void ) => void ) [ ] = [ ] ;
24- files . forEach ( f => tasks . push ( done => {
25- fs . readFile ( baseDir + f , "utf-8" , ( err , baseline ) => {
26- if ( err ) throw err ;
27-
28- let g : RegExpExecArray | null ;
29- while ( g = errRegex . exec ( baseline ) ) {
30- const errCode = + g [ 1 ] ;
31- const msg = keys . filter ( k => messages [ k ] . code === errCode ) [ 0 ] ;
32- messages [ msg ] . seen = true ;
33- }
34-
35- done ( ) ;
36- } ) ;
37- } ) ) ;
38-
39- async . parallelLimit ( tasks , 25 , done => {
40- console . log ( "== List of errors not present in baselines ==" ) ;
41- let count = 0 ;
42- for ( const k of keys ) {
43- if ( messages [ k ] . seen !== true ) {
44- console . log ( k ) ;
45- count ++ ;
46- }
21+ const files = ( await fsPromises . readdir ( baseDir ) ) . filter ( f => f . endsWith ( ".errors.txt" ) ) ;
22+
23+ files . forEach ( f => {
24+ fs . readFile ( baseDir + f , "utf-8" , ( err , baseline ) => {
25+ if ( err ) throw err ;
26+
27+ let g : RegExpExecArray | null ;
28+ while ( g = errRegex . exec ( baseline ) ) {
29+ const errCode = + g [ 1 ] ;
30+ const msg = keys . filter ( k => messages [ k ] . code === errCode ) [ 0 ] ;
31+ messages [ msg ] . seen = true ;
4732 }
48- console . log ( count + " of " + keys . length + " errors are not in baselines" ) ;
4933 } ) ;
5034 } ) ;
51- } ) ;
5235
53- fs . readFile ( "src/compiler/diagnosticInformationMap.generated.ts" , "utf-8" , ( err , data ) => {
36+ console . log ( "== List of errors not present in baselines ==" ) ;
37+ let count = 0 ;
38+ for ( const k of keys ) {
39+ if ( messages [ k ] . seen !== true ) {
40+ console . log ( k ) ;
41+ count ++ ;
42+ }
43+ }
44+ console . log ( count + " of " + keys . length + " errors are not in baselines" ) ;
45+ }
46+
47+ async function checkSourceFiles ( ) {
48+ const data = await fsPromises . readFile ( "src/compiler/diagnosticInformationMap.generated.ts" , "utf-8" ) ;
49+
5450 const errorRegexp = / \s ( \w + ) : \{ c o d e / g;
5551 const errorNames : string [ ] = [ ] ;
5652 let errMatch : RegExpExecArray | null ;
@@ -59,27 +55,33 @@ fs.readFile("src/compiler/diagnosticInformationMap.generated.ts", "utf-8", (err,
5955 }
6056
6157 let allSrc = "" ;
62- glob ( "./src/**/*.ts" , { } , ( err , files ) => {
63- console . log ( "Reading " + files . length + " source files" ) ;
64- for ( const file of files ) {
65- if ( file . indexOf ( "diagnosticInformationMap.generated.ts" ) > 0 ) {
66- continue ;
67- }
68-
69- const src = fs . readFileSync ( file , "utf-8" ) ;
70- allSrc = allSrc + src ;
58+ const files = await glob ( "./src/**/*.ts" ) ;
59+ console . log ( "Reading " + files . length + " source files" ) ;
60+ for ( const file of files ) {
61+ if ( file . indexOf ( "diagnosticInformationMap.generated.ts" ) > 0 ) {
62+ continue ;
7163 }
7264
73- console . log ( "Consumed " + allSrc . length + " characters of source" ) ;
65+ const src = fs . readFileSync ( file , "utf-8" ) ;
66+ allSrc = allSrc + src ;
67+ }
68+
69+ console . log ( "Consumed " + allSrc . length + " characters of source" ) ;
7470
75- let count = 0 ;
76- console . log ( "== List of errors not used in source ==" ) ;
77- for ( const errName of errorNames ) {
78- if ( allSrc . indexOf ( errName ) < 0 ) {
79- console . log ( errName ) ;
80- count ++ ;
81- }
71+ let count = 0 ;
72+ console . log ( "== List of errors not used in source ==" ) ;
73+ for ( const errName of errorNames ) {
74+ if ( allSrc . indexOf ( errName ) < 0 ) {
75+ console . log ( errName ) ;
76+ count ++ ;
8277 }
83- console . log ( count + " of " + errorNames . length + " errors are not used in source" ) ;
84- } ) ;
85- } ) ;
78+ }
79+ console . log ( count + " of " + errorNames . length + " errors are not used in source" ) ;
80+ }
81+
82+ async function main ( ) {
83+ await checkErrorBaselines ( ) ;
84+ await checkSourceFiles ( ) ;
85+ }
86+
87+ main ( ) ;
0 commit comments