domotz-remote-pawn
Version:
Domotz Agent
43 lines (33 loc) • 1.36 kB
JavaScript
var DEFAULT_SHUTDOWN_ERRORS_CODE = ['EMFILE'];
var DEFAULT_IGNORED_ERRORS_CODE = ['ENOSPC', 'EROFS', 'EACCES', 'EPERM', 'ECONNRESET'];
var errorCounterManager = function (resourceLocator) {
var settingsManager = resourceLocator.settingsManager;
var lodash = resourceLocator.lodash;
var ignoredCounters = {};
lodash.forEach(getIgnoredErrorsCode(), function (value) {
ignoredCounters[value] = 0;
});
function addToIgnoredErrorsCounter(errorCode) {
ignoredCounters[errorCode] += 1;
}
function getAll() {
var retIgnoredCounters = [];
lodash.forOwn(ignoredCounters, function (value, key) {
retIgnoredCounters.push({ code: key, count: value });
});
return retIgnoredCounters;
}
function getShutdownErrorsCode() {
return settingsManager.getSetting('configuration.settings.shutdown_errors_code', DEFAULT_SHUTDOWN_ERRORS_CODE);
}
function getIgnoredErrorsCode() {
return settingsManager.getSetting('configuration.settings.ignored_errors_code', DEFAULT_IGNORED_ERRORS_CODE);
}
return {
addToIgnoredErrorsCounter: addToIgnoredErrorsCounter,
getAll: getAll,
getShutdownErrorsCode: getShutdownErrorsCode,
getIgnoredErrorsCode: getIgnoredErrorsCode,
};
};
module.exports.factory = errorCounterManager;