1
1
const { sep } = require ( 'path' ) ;
2
2
const { execSync } = require ( 'child_process' ) ;
3
3
const { readFileSync, writeFileSync } = require ( 'fs' ) ;
4
+ const { exit } = require ( 'process' ) ;
4
5
5
- const packages = JSON . parse ( execSync ( 'lerna ls --json' ) . toString ( 'utf-8' ) ) ;
6
+ const packages = JSON . parse ( execSync ( 'npx lerna ls --json' ) . toString ( 'utf-8' ) ) ;
7
+
8
+ const firebaseAppPackageName = '@react-native-firebase/app' ;
9
+ const lernaVersion = JSON . parse ( readFileSync ( 'lerna.json' ) ) . version ;
10
+ console . log ( `Found lerna version: ${ lernaVersion } ` ) ;
6
11
7
12
packages . forEach ( package => {
8
13
const { location } = package ;
@@ -24,5 +29,45 @@ packages.forEach(package => {
24
29
// ---------------------------
25
30
// Format Changelog
26
31
// ---------------------------
27
- execSync ( `prettier --write ${ changelogPath } ` ) ;
32
+ execSync ( `npx prettier --write ${ changelogPath } ` ) ;
33
+
34
+ // ---------------------------
35
+ // Update Peer Dependencies
36
+ // ---------------------------
37
+ const packageJsonPath = `${ location } ${ sep } /package.json` ;
38
+ const packageJsonContents = JSON . parse ( readFileSync ( packageJsonPath ) . toString ( 'utf-8' ) ) ;
39
+
40
+ // Make sure that the app package has the correct version, it has been failing periodically
41
+ if ( ! packageJsonContents . version === lernaVersion ) {
42
+ console . log (
43
+ `app package version ${ packageJsonContents . version } but should be ${ lernaVersion } ? Exiting.` ,
44
+ ) ;
45
+ exit ( 1 ) ;
46
+ }
47
+ // console.log(`Examining package ${package.name} for local peerDepencenies...`);
48
+
49
+ if ( ! packageJsonContents . peerDependencies ) {
50
+ return ;
51
+ }
52
+
53
+ packages . forEach ( possiblePeerDependency => {
54
+ // console.log(` checking for cross-dependency on ${possiblePeerDependency.name}`);
55
+ if ( ! packageJsonContents . peerDependencies [ possiblePeerDependency . name ] ) {
56
+ return ;
57
+ }
58
+ if ( packageJsonContents . peerDependencies [ possiblePeerDependency . name ] === lernaVersion ) {
59
+ return ;
60
+ }
61
+
62
+ packageJsonContents . peerDependencies [ possiblePeerDependency . name ] = lernaVersion ;
63
+
64
+ writeFileSync ( packageJsonPath , JSON . stringify ( packageJsonContents , null , 2 ) + '\n' ) ;
65
+
66
+ console . log (
67
+ `Updated '${ possiblePeerDependency . name } ' peer dependency on package` ,
68
+ packageJsonContents . name ,
69
+ 'to' ,
70
+ packageJsonContents . peerDependencies [ possiblePeerDependency . name ] ,
71
+ ) ;
72
+ } ) ;
28
73
} ) ;
0 commit comments