@@ -3,65 +3,43 @@ const path = require("path");
3
3
4
4
const chalk = require ( "chalk" ) ;
5
5
6
- const { Range } = require ( "semver" ) ;
7
-
8
6
const debug = require ( "debug" ) ( "check-package-versions" ) ;
9
7
10
8
function main ( ) {
11
9
const packages = readPackages ( ) ;
12
10
const errors = [ ] ;
13
- const warnings = [ ] ;
14
11
15
12
for ( const candidateName in packages ) {
16
13
for ( const dependencyName in packages ) {
17
- try {
18
- checkDependencyVersion (
14
+ errors . push (
15
+ ... checkDependencyVersionRange (
19
16
packages [ candidateName ] ,
20
17
packages [ dependencyName ]
21
- ) ;
22
- } catch ( err ) {
23
- errors . push ( err . message ) ;
24
- }
25
- try {
26
- checkDependencyVersionRange (
27
- packages [ candidateName ] ,
28
- packages [ dependencyName ]
29
- ) ;
30
- } catch ( err ) {
31
- warnings . push ( err . message ) ;
32
- }
18
+ )
19
+ ) ;
33
20
}
34
21
}
35
22
36
23
for ( const error of errors ) {
37
24
console . error ( chalk . red ( "Error:" ) , error ) ;
38
25
}
39
- for ( const warning of warnings ) {
40
- console . error ( chalk . yellow ( "Warning:" ) , warning ) ;
41
- }
42
-
43
- const doneColor =
44
- errors . length > 0
45
- ? chalk . red
46
- : warnings . length > 0
47
- ? chalk . yellow
48
- : chalk . green ;
26
+ const doneColor = errors . length > 0 ? chalk . red : chalk . green ;
49
27
console . error (
50
28
doneColor ( "Done." ) ,
51
- `${ errors . length } errors, ${ warnings . length } warnings found for @truffle namespace version dependencies.`
29
+ `Found ${ errors . length } errors for @truffle namespace version dependencies.`
52
30
) ;
53
31
54
32
if ( errors . length > 0 ) {
55
33
process . exit ( 1 ) ;
56
34
}
57
35
}
58
36
59
- function getPackageNames ( ) {
37
+ function getPackageDirectoryNames ( ) {
60
38
return fs . readdirSync ( path . join ( __dirname , ".." , "packages" ) ) ;
61
39
}
62
40
63
41
function readPackages ( ) {
64
- const packages = getPackageNames ( ) ;
42
+ const packages = getPackageDirectoryNames ( ) ;
65
43
const packageSpecs = { } ;
66
44
for ( const packageName of packages ) {
67
45
const packageFilePath = path . join (
@@ -75,51 +53,25 @@ function readPackages() {
75
53
return packageSpecs ;
76
54
}
77
55
78
- function checkDependencyVersion ( candidate , dependency ) {
79
- const name = dependency . name ;
80
- const version = dependency . version ;
81
-
82
- for ( const depType of [
83
- "dependencies" ,
84
- "devDependencies" ,
85
- "peerDependencies"
86
- ] ) {
87
- const deps = candidate [ depType ] ;
88
- if ( deps && deps [ name ] ) {
89
- const rawRange = deps [ name ] ;
90
- const range = new Range ( rawRange ) ;
91
- if ( ! range . test ( version ) ) {
92
- throw new Error (
93
- `Package "${ candidate . name } " depends on "${ name } @${ rawRange } ", but local "${ name } " has version ${ version } , which is not in range ${ rawRange } `
94
- ) ;
95
- } else {
96
- debug (
97
- `${ candidate . name } requires ${ name } @${ version } (${ version } in range ${ deps [ name ] } )`
98
- ) ;
99
- }
100
- } else {
101
- debug ( `${ candidate . name } does not require ${ name } ` ) ;
102
- }
103
- }
104
- }
56
+ const depTypes = [
57
+ "dependencies" ,
58
+ "devDependencies" ,
59
+ "peerDependencies" ,
60
+ "optionalDependencies" ,
61
+ "bundleDependencies"
62
+ ] ;
105
63
106
- function checkDependencyVersionRange ( candidate , dependency ) {
64
+ function * checkDependencyVersionRange ( candidate , dependency ) {
107
65
const name = dependency . name ;
108
66
const version = dependency . version ;
109
67
110
- for ( const depType of [
111
- "dependencies" ,
112
- "devDependencies" ,
113
- "peerDependencies"
114
- ] ) {
68
+ for ( const depType of depTypes ) {
115
69
const deps = candidate [ depType ] ;
116
70
if ( deps && deps [ name ] ) {
117
71
const rawRange = deps [ name ] ;
118
72
119
73
if ( rawRange !== `^${ version } ` ) {
120
- throw new Error (
121
- `Package "${ candidate . name } " depends on "${ name } @${ rawRange } ", but range has not been updated for version ${ version } `
122
- ) ;
74
+ yield `Package "${ candidate . name } " depends on "${ name } @${ rawRange } ", but range has not been updated for version ${ version } ` ;
123
75
} else {
124
76
debug (
125
77
`${ candidate . name } requires ${ name } @${ version } (${ rawRange } is up-to-date for version ${ version } )`
0 commit comments