Ori.livneh has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/89608


Change subject: List dependency relationships in mw.loader.inspect()
......................................................................

List dependency relationships in mw.loader.inspect()

This patch adds two additional columns to the tabular view generated by
mw.loader.inspect: 'requires' & 'requires by'. This data is provided by
a new method of mw.inspect called 'getDependencyGraph'.

Change-Id: Ib234c2c8bbbf8f34860b04e8d299b6923f4775ef
---
M resources/mediawiki/mediawiki.inspect.js
1 file changed, 33 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/08/89608/1

diff --git a/resources/mediawiki/mediawiki.inspect.js 
b/resources/mediawiki/mediawiki.inspect.js
index 5cecc16..ca0b99c 100644
--- a/resources/mediawiki/mediawiki.inspect.js
+++ b/resources/mediawiki/mediawiki.inspect.js
@@ -13,6 +13,29 @@
        var inspect = {
 
                /**
+                * Return a map of all dependency relationships between loaded 
modules.
+                *
+                * @return {Object} Maps module names to objects. Each 
sub-object has
+                *  two properties, 'requires' and 'requiredBy'.
+                */
+               getDependencyGraph: function () {
+                       var modules = inspect.getLoadedModules(), graph = {};
+
+                       $.each( modules, function ( _, moduleName ) {
+                               var dependencies = 
mw.loader.moduleRegistry[moduleName].dependencies;
+
+                               graph[moduleName] = graph[moduleName] || { 
requiredBy: [] };
+                               graph[moduleName].requires = dependencies || [];
+
+                               $.each( dependencies, function ( _, 
dependencyName ) {
+                                       graph[dependencyName] = 
graph[dependencyName] || { requiredBy: [] };
+                                       graph[dependencyName].requiredBy.push( 
moduleName );
+                               } );
+                       } );
+                       return graph;
+               },
+
+               /**
                 * Calculate the byte size of a ResourceLoader module.
                 *
                 * @param {string} moduleName The name of the module
@@ -64,11 +87,17 @@
                        var console = window.console;
 
                        $( function () {
+                               var graph, modules;
+
+                               graph = inspect.getDependencyGraph();
+
                                // Map each module to a descriptor object.
-                               var modules = $.map( 
inspect.getLoadedModules(), function ( module ) {
+                               modules = $.map( graph, function ( 
relationships, moduleName ) {
                                        return {
-                                               name: module,
-                                               size: inspect.getModuleSize( 
module )
+                                               name: moduleName,
+                                               size: inspect.getModuleSize( 
moduleName ),
+                                               requires: 
relationships.requires.join(', '),
+                                               requiredBy: 
relationships.requiredBy.join(', ')
                                        };
                                } );
 
@@ -88,9 +117,7 @@
                                        if ( console.table ) {
                                                console.table( modules );
                                        } else {
-                                               $.each( modules, function ( i, 
module ) {
-                                                       console.log( [ 
module.name, module.size ].join( '\t' ) );
-                                               } );
+                                               console.log( JSON.stringify( 
modules, null, 2 ).replace( /[{}"],?/g, '' ) );
                                        }
                                }
                        } );

-- 
To view, visit https://gerrit.wikimedia.org/r/89608
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib234c2c8bbbf8f34860b04e8d299b6923f4775ef
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Ori.livneh <[email protected]>
Gerrit-Reviewer: Bartosz DziewoƄski <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to