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