@@ -16,6 +16,9 @@ const packageNameRE = /^@sourceacademy\/(.+?)-(.+)$/u;
1616export async function getRawPackages ( gitRoot : string , maxDepth ?: number ) {
1717 const output : Record < string , RawPackageRecord > = { } ;
1818
19+ /**
20+ * Search the given directory for package.json files
21+ */
1922 async function recurser ( currentDir : string , currentDepth : number ) {
2023 const items = await fs . readdir ( currentDir , { withFileTypes : true } ) ;
2124 await Promise . all ( items . map ( async item => {
@@ -93,16 +96,18 @@ export function processRawPackages(topoOrder: string[], packages: Record<string,
9396 if ( ! packageInfo . hasChanges ) {
9497 if ( packageInfo . package . dependencies ) {
9598 for ( const name of Object . keys ( packageInfo . package . dependencies ) ) {
96- if ( packages [ name ] . hasChanges ) {
99+ if ( packages [ name ] ? .hasChanges ) {
97100 packageInfo . hasChanges = true ;
98101 break ;
99102 }
100103 }
101104 }
102105
106+ // If hasChanges still hasn't been set yet, we can proceed to iterate
107+ // through devDependencies as well
103108 if ( ! packageInfo . hasChanges && packageInfo . package . devDependencies ) {
104109 for ( const name of Object . keys ( packageInfo . package . devDependencies ) ) {
105- if ( packages [ name ] . hasChanges ) {
110+ if ( packages [ name ] ? .hasChanges ) {
106111 packageInfo . hasChanges = true ;
107112 break ;
108113 }
@@ -269,6 +274,6 @@ if (process.env.GITHUB_ACTIONS) {
269274 try {
270275 await main ( ) ;
271276 } catch ( error : any ) {
272- core . setFailed ( error . message ) ;
277+ core . setFailed ( error ) ;
273278 }
274279}
0 commit comments