node-hue-api
Version:
Philips Hue API Library for Node.js
43 lines (42 loc) • 1.41 kB
JavaScript
//TODO this is a different debug item otherwise we turn on the standar logging too
const DEBUG = /node-hue-rate-limits/.test(process.env['NODE_DEBUG'] || '');
export class HueApiRateLimitLogger {
constructor(name) {
this.name = name;
}
static install(name, bottleneck) {
if (HueApiRateLimitLogger.isDebug()) {
const logger = new HueApiRateLimitLogger(name);
bottleneck.on('error', (err) => {
logger.log('error', err);
});
bottleneck.on('failed', (err) => {
logger.log('failed', err);
});
bottleneck.on('received', (err) => {
logger.log('received', err);
});
bottleneck.on('queued', (err) => {
logger.log('queued', err);
});
bottleneck.on('executing', (err) => {
logger.log('executing', err);
});
bottleneck.on('done', (err) => {
logger.log('done', err);
});
}
}
static isDebug() {
return DEBUG;
}
log(event, payload) {
if (HueApiRateLimitLogger.isDebug()) {
let detail = `${event}`;
if (payload) {
detail += `\n${JSON.stringify(payload)}`;
}
console.log(`HueApiRateLimiter [${this.name}] :: ${detail}`);
}
}
}