1
1
const { join} = require ( 'path' ) ;
2
+ const { writeFileSync} = require ( 'fs' ) ;
2
3
const { spawn, spawnSync} = require ( 'child_process' ) ;
3
- const packageJson = require ( join ( __dirname , '../../package.json' ) ) ;
4
+ const packageJsonPath = join ( __dirname , '../../package.json' ) ;
5
+ const packageJson = require ( packageJsonPath ) ;
4
6
const versionsProcess = spawnSync ( 'yarn' , [
5
7
'info' , 'material-components-web' , 'dist-tags.canary' , '--json'
6
8
] , { shell : true } ) ;
@@ -13,18 +15,18 @@ try {
13
15
throw e ;
14
16
}
15
17
16
- const pattern = / ^ m a t e r i a l - c o m p o n e n t s - w e b $ | ^ @ m a t e r i a l \/ / ;
17
- const params = Object . keys ( packageJson . devDependencies )
18
- . filter ( dependency => pattern . test ( dependency ) )
19
- . reduce ( ( mdcDependencies , dependency ) =>
20
- [ ...mdcDependencies , `${ dependency } @${ latestCanaryVersion } ` ] , [ ] ) ;
18
+ [ 'devDependencies' , 'dependencies' ] . forEach ( field => {
19
+ Object . keys ( packageJson [ field ] ) . forEach ( key => {
20
+ if ( / ^ m a t e r i a l - c o m p o n e n t s - w e b $ | ^ @ m a t e r i a l \/ / . test ( key ) ) {
21
+ packageJson [ field ] [ key ] = latestCanaryVersion ;
22
+ }
23
+ } ) ;
24
+ } ) ;
21
25
22
- if ( ! params . length ) {
23
- throw Error ( `Could not find MDC dependencies in package.json` ) ;
24
- }
26
+ writeFileSync ( packageJsonPath , JSON . stringify ( packageJson , null , 2 ) ) ;
25
27
26
28
console . log ( `Updating all MDC dependencies to version ${ latestCanaryVersion } ` ) ;
27
- const childProcess = spawn ( 'yarn' , [ 'add ' , ... params , '-D '] , { shell : true } ) ;
29
+ const childProcess = spawn ( 'yarn' , [ 'install ' , '--non-interactive '] , { shell : true } ) ;
28
30
childProcess . stdout . on ( 'data' , data => console . log ( data + '' ) ) ;
29
31
childProcess . stderr . on ( 'data' , data => console . error ( data + '' ) ) ;
30
32
childProcess . on ( 'exit' , code => process . exit ( code ) ) ;
0 commit comments