This app provides monitoring and information features for the common freifunk user and the technical stuff of a freifunk community.
Code base is taken from a TUM Practical Course project and added here to see if Freifunk Altdorf can use it.
https://www.freifunk-altdorf.de
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.7 KiB
63 lines
1.7 KiB
/** |
|
* Copyright (c) 2015-present, Facebook, Inc. |
|
* |
|
* This source code is licensed under the MIT license found in the |
|
* LICENSE file in the root directory of this source tree. |
|
* |
|
* @providesModule UIManagerStatTracker |
|
* @flow |
|
* @format |
|
*/ |
|
'use strict'; |
|
|
|
var UIManager = require('UIManager'); |
|
|
|
var installed = false; |
|
var UIManagerStatTracker = { |
|
install: function() { |
|
if (installed) { |
|
return; |
|
} |
|
installed = true; |
|
var statLogHandle; |
|
var stats = {}; |
|
function printStats() { |
|
console.log({UIManagerStatTracker: stats}); |
|
statLogHandle = null; |
|
} |
|
function incStat(key: string, increment: number) { |
|
stats[key] = (stats[key] || 0) + increment; |
|
if (!statLogHandle) { |
|
statLogHandle = setImmediate(printStats); |
|
} |
|
} |
|
var createViewOrig = UIManager.createView; |
|
UIManager.createView = function(tag, className, rootTag, props) { |
|
incStat('createView', 1); |
|
incStat('setProp', Object.keys(props || []).length); |
|
createViewOrig(tag, className, rootTag, props); |
|
}; |
|
var updateViewOrig = UIManager.updateView; |
|
UIManager.updateView = function(tag, className, props) { |
|
incStat('updateView', 1); |
|
incStat('setProp', Object.keys(props || []).length); |
|
updateViewOrig(tag, className, props); |
|
}; |
|
var manageChildrenOrig = UIManager.manageChildren; |
|
UIManager.manageChildren = function( |
|
tag, |
|
moveFrom, |
|
moveTo, |
|
addTags, |
|
addIndices, |
|
remove, |
|
) { |
|
incStat('manageChildren', 1); |
|
incStat('move', Object.keys(moveFrom || []).length); |
|
incStat('remove', Object.keys(remove || []).length); |
|
manageChildrenOrig(tag, moveFrom, moveTo, addTags, addIndices, remove); |
|
}; |
|
}, |
|
}; |
|
|
|
module.exports = UIManagerStatTracker;
|
|
|