Adjust code to airbnb style guide, including eslint rules and prettier configuration for code base

This commit is contained in:
Victor Hagelbäck 2021-01-22 15:49:02 +01:00
parent 1b55cabf63
commit 281acd6ad8
23 changed files with 919 additions and 2225 deletions

View file

@ -1,115 +1,116 @@
const winston = require("winston");
const { colorize, combine, label, printf, timestamp } = winston.format;
const winston = require('winston');
const Configuration = require("./Configuration");
const {
colorize, combine, label, printf, timestamp,
} = winston.format;
const LEVELS = ["error", "warn", "info", "debug", "verbose", "silly"];
const Configuration = require('./Configuration');
const logFormat = printf(info => {
if(info.stack) {
return `${info.timestamp} ${info.level} [${info.label}] ${info.message}\n${info.stack}`;
}
return `${info.timestamp} ${info.level} [${info.label}] ${info.message}`;
const LEVELS = ['error', 'warn', 'info', 'debug', 'verbose', 'silly'];
const logFormat = printf((info) => {
if (info.stack) {
return `${info.timestamp} ${info.level} [${info.label}] ${info.message}\n${info.stack}`;
}
return `${info.timestamp} ${info.level} [${info.label}] ${info.message}`;
});
/** Winston-based logger */
class Logger {
constructor () {
throw new Error("Please call createLogger instead");
}
constructor() {
throw new Error('Please call createLogger instead');
}
/** Created logger will follow Winston createLogger, but
* - add module name to logger
* - swap debug/verbose levels and omit http to mimic HA standard
* Levels (in order): error, warn, info, debug, verbose, silly
* */
static getLogger(moduleName) {
const config = Configuration.getConfiguration();
const level = (config.logLevel && LEVELS.find(l => l.startsWith(config.logLevel[0].toLowerCase()))) || "info";
/** Created logger will follow Winston createLogger, but
* - add module name to logger
* - swap debug/verbose levels and omit http to mimic HA standard
* Levels (in order): error, warn, info, debug, verbose, silly
* */
static getLogger(moduleName) {
const config = Configuration.getConfiguration();
// eslint-disable-next-line max-len
const level = (config.logLevel && LEVELS.find((l) => l.startsWith(config.logLevel[0].toLowerCase())))
|| 'info';
const logger = winston.createLogger({
format: combine(
winston.format(info => {
switch (info.level) {
case "warning":
info.level = "WRN";
break;
case "verbose":
info.level = "VRB";
break;
case "debug":
info.level = "DBG";
break;
default:
info.level = info.level.substring(0,3).toUpperCase()
}
return info;
})(),
timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
label({ label: moduleName}),
colorize(),
logFormat,
),
level: level,
levels: Logger.logLevels().levels,
transports: [
new winston.transports.Console(),
]
});
winston.addColors(Logger.logLevels().colors);
if (moduleName === "plejd-main") {
logger.log(level, `Log level set to ${level}`);
}
return logger;
}
static logLevels() {
// Default (npm) levels
// levels = {
// error: 0,
// warn: 1,
// info: 2,
// http: 3,
// verbose: 4,
// debug: 5,
// silly: 6
// }
// colors = {
// error: 'red',
// warn: 'yellow',
// info: 'green',
// http: 'green',
// verbose: 'cyan',
// debug: 'blue',
// silly: 'magenta'
// };
// Mimic HA standard below
// Debug/verbose swapped compared to npm levels, http omitted
return {
levels: {
error: 0,
warn: 1,
info: 2,
debug: 3,
verbose: 4,
silly: 6
},
colors: {
error: 'red',
warn: 'yellow',
info: 'green',
debug: 'cyan',
verbose: 'blue',
silly: 'magenta'
const logger = winston.createLogger({
format: combine(
winston.format((info) => {
switch (info.level) {
case 'warning':
info.level = 'WRN';
break;
case 'verbose':
info.level = 'VRB';
break;
case 'debug':
info.level = 'DBG';
break;
default:
info.level = info.level.substring(0, 3).toUpperCase();
}
};
return info;
})(),
timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
label({ label: moduleName }),
colorize(),
logFormat,
),
level,
levels: Logger.logLevels().levels,
transports: [new winston.transports.Console()],
});
winston.addColors(Logger.logLevels().colors);
if (moduleName === 'plejd-main') {
logger.log(level, `Log level set to ${level}`);
}
return logger;
}
static logLevels() {
// Default (npm) levels
// levels = {
// error: 0,
// warn: 1,
// info: 2,
// http: 3,
// verbose: 4,
// debug: 5,
// silly: 6
// }
// colors = {
// error: 'red',
// warn: 'yellow',
// info: 'green',
// http: 'green',
// verbose: 'cyan',
// debug: 'blue',
// silly: 'magenta'
// };
// Mimic HA standard below
// Debug/verbose swapped compared to npm levels, http omitted
return {
levels: {
error: 0,
warn: 1,
info: 2,
debug: 3,
verbose: 4,
silly: 6,
},
colors: {
error: 'red',
warn: 'yellow',
info: 'green',
debug: 'cyan',
verbose: 'blue',
silly: 'magenta',
},
};
}
}
module.exports = Logger;