1
1
/* eslint-disable no-console,complexity */
2
2
3
- import fs from 'fs'
3
+ import fs from 'fs-extra '
4
4
import path from 'path'
5
5
import { execa } from 'execa'
6
6
import prompt from 'prompt'
@@ -106,10 +106,7 @@ async function processMonorepo (projectDir, manifest, branchName, repoUrl) {
106
106
cwd : projectDir ,
107
107
absolute : true
108
108
} ) ) {
109
- const pkg = JSON . parse ( fs . readFileSync ( path . join ( subProjectDir , 'package.json' ) , {
110
- encoding : 'utf-8'
111
- } ) )
112
-
109
+ const pkg = fs . readJSONSync ( path . join ( subProjectDir , 'package.json' ) )
113
110
const homePage = `${ repoUrl } /tree/master${ subProjectDir . substring ( projectDir . length ) } `
114
111
115
112
console . info ( 'Found monorepo project' , pkg . name )
@@ -152,10 +149,7 @@ async function alignMonorepoProjectDependencies (projectDirs) {
152
149
153
150
// first loop over every project and choose the most recent version of a given dep
154
151
for ( const projectDir of projectDirs ) {
155
- const pkg = JSON . parse ( fs . readFileSync ( path . join ( projectDir , 'package.json' ) , {
156
- encoding : 'utf-8'
157
- } ) )
158
-
152
+ const pkg = fs . readJSONSync ( path . join ( projectDir , 'package.json' ) )
159
153
siblingVersions [ pkg . name ] = calculateSiblingVersion ( pkg . version )
160
154
161
155
chooseVersions ( pkg . dependencies || { } , deps )
@@ -166,9 +160,7 @@ async function alignMonorepoProjectDependencies (projectDirs) {
166
160
167
161
// now propose the most recent version of a dep for all projects
168
162
for ( const projectDir of projectDirs ) {
169
- const pkg = JSON . parse ( fs . readFileSync ( path . join ( projectDir , 'package.json' ) , {
170
- encoding : 'utf-8'
171
- } ) )
163
+ const pkg = fs . readJSONSync ( path . join ( projectDir , 'package.json' ) )
172
164
173
165
selectVersions ( pkg . dependencies || { } , deps , siblingVersions )
174
166
selectVersions ( pkg . devDependencies || { } , devDeps , siblingVersions )
@@ -233,9 +225,7 @@ async function configureMonorepoProjectReferences (projectDirs) {
233
225
234
226
// first loop over every project and choose the most recent version of a given dep
235
227
for ( const projectDir of projectDirs ) {
236
- const pkg = JSON . parse ( fs . readFileSync ( path . join ( projectDir , 'package.json' ) , {
237
- encoding : 'utf-8'
238
- } ) )
228
+ const pkg = fs . readJSONSync ( path . join ( projectDir , 'package.json' ) )
239
229
240
230
references [ pkg . name ] = projectDir
241
231
}
@@ -247,14 +237,8 @@ async function configureMonorepoProjectReferences (projectDirs) {
247
237
continue
248
238
}
249
239
250
- const pkg = JSON . parse ( fs . readFileSync ( path . join ( projectDir , 'package.json' ) , {
251
- encoding : 'utf-8'
252
- } ) )
253
-
254
- const tsconfig = JSON . parse ( fs . readFileSync ( path . join ( projectDir , 'tsconfig.json' ) , {
255
- encoding : 'utf-8'
256
- } ) )
257
-
240
+ const pkg = fs . readJSONSync ( path . join ( projectDir , 'package.json' ) )
241
+ const tsconfig = fs . readJSONSync ( path . join ( projectDir , 'tsconfig.json' ) )
258
242
const refs = new Set ( )
259
243
260
244
addReferences ( pkg . dependencies || { } , references , refs )
@@ -406,11 +390,7 @@ export default new Listr([
406
390
task : async ( ) => {
407
391
const projectDir = process . argv [ 3 ] || process . cwd ( )
408
392
const { branchName, repoUrl } = await getConfig ( projectDir )
409
-
410
- const manifest = JSON . parse ( fs . readFileSync ( path . join ( projectDir , 'package.json' ) , {
411
- encoding : 'utf-8'
412
- } ) )
413
-
393
+ const manifest = fs . readJSONSync ( path . join ( projectDir , 'package.json' ) )
414
394
const monorepo = manifest . workspaces != null
415
395
416
396
if ( monorepo ) {
0 commit comments