@@ -65,20 +65,38 @@ export class PackageJsonToMarkdown extends CommandBase {
65
65
Promise . all ( peerDependenciesRequests ) . then ( responses => {
66
66
peerDependenciesMarkdown = this . updateMarkdownRow ( responses , localPackages ) ;
67
67
} ) . then ( ( ) => {
68
+ if ( dependenciesMarkdown === '' ) {
69
+ dependenciesMarkdown = 'No dependencies specified.' ;
70
+ } else {
71
+ dependenciesMarkdown =
72
+ '| Name | Local version | Latest Version | License | Description|\n' +
73
+ '| ---- | ---- | ---- | ---- |:-----------|\n' +
74
+ dependenciesMarkdown ;
75
+ }
76
+ if ( devDependenciesMarkdown === '' ) {
77
+ devDependenciesMarkdown = 'No dev dependencies specified.' ;
78
+ } else {
79
+ devDependenciesMarkdown =
80
+ '| Name | Local version | Latest Version | License | Description|\n' +
81
+ '| ---- | ---- | ---- | ---- |:-----------|\n' +
82
+ devDependenciesMarkdown ;
83
+ }
84
+ if ( peerDependenciesMarkdown === '' ) {
85
+ peerDependenciesMarkdown = 'No peer dependencies specified.' ;
86
+ } else {
87
+ peerDependenciesMarkdown =
88
+ '| Name | Local version | Latest Version | License | Description|\n' +
89
+ '| ---- | ---- | ---- | ---- |:-----------|\n' +
90
+ peerDependenciesMarkdown ;
91
+ }
68
92
const markdownContent =
69
93
'# Package.json\n\n' +
70
94
'## Dependencies\n\n' +
71
- '| Name | Local version | Latest Version | License | Description|\n' +
72
- '| ---- | ---- | ---- | ---- |:-----------|\n' +
73
95
dependenciesMarkdown + '\n' +
74
96
'## Dev dependencies\n\n' +
75
- '| Name | Local version | Latest Version | License | Description|\n' +
76
- '| ---- | ---- | ---- | ---- |:-----------|\n' +
77
97
devDependenciesMarkdown + '\n' +
78
98
'## Peer dependencies\n\n' +
79
- '| Name | Local version | Latest Version | License | Description|\n' +
80
- '| ---- | ---- | ---- | ---- |:-----------|\n' +
81
- peerDependenciesMarkdown ;
99
+ peerDependenciesMarkdown + '\n' ;
82
100
const fsUtils = new FileSystemUtils ( ) ;
83
101
fsUtils . writeFileAndOpen ( path . join ( workspaceDirectory , this . config . packageJsonMarkdownFilename ) , markdownContent ) ;
84
102
} ) ;
@@ -88,7 +106,7 @@ export class PackageJsonToMarkdown extends CommandBase {
88
106
89
107
private updateMarkdownRow ( responses : { name : string ; version : string ; description : string ; license : string } [ ] , localPackages : { [ pkgName : string ] : string ; } ) : string {
90
108
let markdownStr : string = '' ;
91
- responses . sort ( ( first , second ) => ( first . name . replace ( '@' , '' ) < second . name . replace ( '@' , '' ) ? - 1 : 1 ) ) . forEach ( response => {
109
+ responses . sort ( ( first , second ) => ( first . name . replace ( '@' , '' ) < second . name . replace ( '@' , '' ) ? - 1 : 1 ) ) . forEach ( response => {
92
110
if ( response ) {
93
111
const localVersion = localPackages [ response . name ] ;
94
112
markdownStr += `| ${ response . name } | ${ localVersion } | ${ response . version } | ${ response . license } | ${ response . description } |\n` ;
@@ -100,13 +118,13 @@ export class PackageJsonToMarkdown extends CommandBase {
100
118
private updateLocalPackagesDictionary ( dict : { [ pkgName : string ] : string ; } , localPackages : { [ pkgName : string ] : string ; } ) {
101
119
Object . entries ( dict ) . forEach ( ( [ pkgName , version ] ) => {
102
120
if ( localPackages [ pkgName ] !== undefined ) {
103
- if ( ! localPackages [ pkgName ] . includes ( String ( version ) ) ) {
121
+ if ( ! localPackages [ pkgName ] . includes ( String ( version ) ) ) {
104
122
localPackages [ pkgName ] += ', ' + String ( version ) ;
105
123
}
106
124
} else {
107
125
localPackages [ pkgName ] = String ( version ) ;
108
126
}
109
- } ) ;
127
+ } ) ;
110
128
}
111
129
112
130
private fetchPackageInformation ( pckName : string , workspaceDirectory : string ) : Promise < { name : string , version : string , description : string , license : string } > {
@@ -131,11 +149,17 @@ export class PackageJsonToMarkdown extends CommandBase {
131
149
private getLicenseInformationFromNodeModulesFolder ( workspaceDirectory : string , pckName : string ) : string {
132
150
const pckFolder = path . join ( workspaceDirectory , 'node_modules' , pckName ) ;
133
151
const packageJsonFile = path . join ( pckFolder , 'package.json' ) ;
134
- const contents = fs . readFileSync ( packageJsonFile ) . toString ( 'utf8' ) ;
135
- const packageJson = JSON . parse ( contents ) ;
136
- if ( packageJson . license ) {
152
+ let packageJson = undefined ;
153
+ try {
154
+ const contents = fs . readFileSync ( packageJsonFile ) . toString ( 'utf8' ) ;
155
+ packageJson = JSON . parse ( contents ) ;
156
+ }
157
+ catch {
158
+ packageJson = undefined ;
159
+ }
160
+ if ( packageJson !== undefined && packageJson . license ) {
137
161
return packageJson . license ;
138
- } else {
162
+ } else {
139
163
return 'N/A' ;
140
164
}
141
165
}
0 commit comments