1
1
import * 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" ;
4
5
5
- fs . readFile ( "src/compiler/diagnosticMessages.json" , "utf-8" , ( err , data ) => {
6
- if ( err ) {
7
- throw err ;
8
- }
6
+ const glob = util . promisify ( _glob ) ;
9
7
8
+ async function checkErrorBaselines ( ) {
9
+ const data = await fsPromises . readFile ( "src/compiler/diagnosticMessages.json" , "utf-8" ) ;
10
10
const messages = JSON . parse ( data ) ;
11
11
const keys = Object . keys ( messages ) ;
12
12
console . log ( "Loaded " + keys . length + " errors" ) ;
@@ -18,39 +18,35 @@ fs.readFile("src/compiler/diagnosticMessages.json", "utf-8", (err, data) => {
18
18
const errRegex = / \( \d + , \d + \) : e r r o r T S ( [ ^ : ] + ) : / g;
19
19
const baseDir = "tests/baselines/reference/" ;
20
20
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 ;
47
32
}
48
- console . log ( count + " of " + keys . length + " errors are not in baselines" ) ;
49
33
} ) ;
50
34
} ) ;
51
- } ) ;
52
35
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
+
54
50
const errorRegexp = / \s ( \w + ) : \{ c o d e / g;
55
51
const errorNames : string [ ] = [ ] ;
56
52
let errMatch : RegExpExecArray | null ;
@@ -59,27 +55,33 @@ fs.readFile("src/compiler/diagnosticInformationMap.generated.ts", "utf-8", (err,
59
55
}
60
56
61
57
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 ;
71
63
}
72
64
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" ) ;
74
70
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 ++ ;
82
77
}
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