Reduce in metrics reducer
Summary: Actually reduce in the reducer step instead of using mutable state. Reviewed By: jknoxville Differential Revision: D15603095 fbshipit-source-id: f603ca548bb760db5423a4c1871d94284ece9521
This commit is contained in:
committed by
Facebook Github Bot
parent
befaecbf7c
commit
023135ad74
@@ -130,26 +130,28 @@ export default class extends FlipperPlugin<PluginState, *, PersistedState> {
|
|||||||
persistedState: PersistedState,
|
persistedState: PersistedState,
|
||||||
): Promise<MetricType> => {
|
): Promise<MetricType> => {
|
||||||
const {events, imagesMap} = persistedState;
|
const {events, imagesMap} = persistedState;
|
||||||
let wastedBytes = 0;
|
let wastedBytes = events.reduce((acc, event) => {
|
||||||
events.forEach(event => {
|
|
||||||
const {viewport, imageIds} = event;
|
const {viewport, imageIds} = event;
|
||||||
if (!viewport) {
|
if (!viewport) {
|
||||||
return;
|
return acc;
|
||||||
}
|
}
|
||||||
imageIds.forEach(imageID => {
|
return (
|
||||||
const imageData: ImageData = imagesMap[imageID];
|
acc +
|
||||||
if (!imageData) {
|
imageIds.reduce((innerAcc, imageID) => {
|
||||||
return;
|
const imageData: ImageData = imagesMap[imageID];
|
||||||
}
|
if (!imageData) {
|
||||||
const imageWidth: number = imageData.width;
|
return innerAcc;
|
||||||
const imageHeight: number = imageData.height;
|
}
|
||||||
const viewPortWidth: number = viewport.width;
|
const imageWidth: number = imageData.width;
|
||||||
const viewPortHeight: number = viewport.height;
|
const imageHeight: number = imageData.height;
|
||||||
const viewPortArea = viewPortWidth * viewPortHeight;
|
const viewPortWidth: number = viewport.width;
|
||||||
const imageArea = imageWidth * imageHeight;
|
const viewPortHeight: number = viewport.height;
|
||||||
wastedBytes += Math.max(0, imageArea - viewPortArea);
|
const viewPortArea = viewPortWidth * viewPortHeight;
|
||||||
});
|
const imageArea = imageWidth * imageHeight;
|
||||||
});
|
return innerAcc + Math.max(0, imageArea - viewPortArea);
|
||||||
|
}, acc)
|
||||||
|
);
|
||||||
|
}, 0);
|
||||||
return Promise.resolve({WASTED_BYTES: wastedBytes});
|
return Promise.resolve({WASTED_BYTES: wastedBytes});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user