diff --git a/bin/update-readmes.js b/bin/update-readmes.js index 1aca8699f9c07b..63d041e7ab5098 100755 --- a/bin/update-readmes.js +++ b/bin/update-readmes.js @@ -1,8 +1,7 @@ #!/usr/bin/env node const { join } = require( 'path' ); -const { promisify } = require( 'util' ); -const spawn = promisify( require( 'child_process' ).spawn ); +const spawnSync = require( 'child_process' ).spawnSync; const packages = [ 'a11y', @@ -39,15 +38,17 @@ const packages = [ 'wordcount', ]; -Promise.all( packages.map( ( entry ) => { +packages.forEach( ( entry ) => { if ( ! Array.isArray( entry ) ) { entry = [ entry, { 'Autogenerated API docs': 'src/index.js' } ]; } const [ packageName, targets ] = entry; - return Promise.all( Object.entries( targets ).map( async ( [ token, path ] ) => { - const { status, stderr } = await spawn( + Object.entries( targets ).forEach( ( [ token, path ] ) => { + // Each target operates over the same file, so it needs to be processed synchronously, + // as to make sure the processes don't overwrite each other. + const { status, stderr } = spawnSync( join( __dirname, '..', 'node_modules', '.bin', 'docgen' ), [ join( 'packages', packageName, path ), @@ -60,10 +61,8 @@ Promise.all( packages.map( ( entry ) => { ); if ( status !== 0 ) { - throw stderr.toString(); + process.stderr.write( `${ packageName } ${ stderr.toString() }\n` ); + process.exit( 1 ); } - } ) ); -} ) ).catch( ( error ) => { - process.stderr.write( `${ error }\n` ); - process.exit( 1 ); + } ); } ); diff --git a/package-lock.json b/package-lock.json index 7211447a4e733c..5f830dff76a576 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3673,20 +3673,12 @@ } }, "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz", + "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", "dev": true, "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - } + "acorn": "^5.0.3" } }, "agent-base": { @@ -8770,13 +8762,13 @@ "dev": true }, "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz", + "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", "dev": true, "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "^5.6.0", + "acorn-jsx": "^4.1.1" } }, "esprima": { diff --git a/package.json b/package.json index f2eaee420b4dfe..7986263f49cfe0 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "doctrine": "2.1.0", "enzyme": "3.9.0", "eslint-plugin-jest": "21.5.0", - "espree": "3.5.4", + "espree": "4.0.0", "fbjs": "0.8.17", "glob": "7.1.2", "husky": "0.14.3",