c9-core/node_modules/c9/available.js

31 wiersze
674 B
JavaScript
Czysty Zwykły widok Historia

"use strict";
var _ = require("lodash");
/**
* Substract all values of used from quota + extra
* This is the so-called "uncountedQuota" logic.
*/
function available(quota, used, extra) {
var keys = _.union(_.keys(quota), _.keys(used));
extra = extra || {};
return keys.reduce(function(available, key) {
available[key] = quota[key] || 0;
extra[key] = extra[key] || 0;
if (!used[key])
return available;
var needed = used[key] - extra[key];
if (!needed)
return available;
available[key] = available[key] - needed;
return available;
}, {});
}
module.exports = available;