server/devdocs/bin/generate-components-usage-stats.js
function getModulesWithDependencies( root, fileList ) {
	const filePromises = fileList.map( async fileWithPath => {
		const fileSource = await readFileAsync( fspath.join( root, fileWithPath ), 'utf8' );
		const deps = getDependencies( fileSource );

		return [ fileWithPath, deps ];
	} );

	return Promise.all( filePromises ).then( _.fromPairs );
}
function getModulesWithDependencies( root, fileList ) {
	const filePromises = fileList.map( async fileWithPath => {
		const fileSource = await readFileAsync( fspath.join( root, fileWithPath ), 'utf8' );
		const deps = getDependencies( fileSource );

		return [ fileWithPath, deps ];
	} );

	return Promise.all( filePromises ).then( _.fromPairs );
}
Calculate the modules dependencies.
Produces an object that has the following structure:
{
'A': [dep1, dep2, dep3, ...],
'B': [dep1, dep2, dep3, ...]
}
@param {string} root BasePath to resolve the files' path
@param {Array} fileList A list of file names
@returns {Promise}