move Logger and LogBuffer to own module

This commit is contained in:
Bruno Windels 2018-09-12 18:36:02 +02:00
parent e843d532eb
commit 5745e9ed0c
3 changed files with 94 additions and 62 deletions

View file

@ -15,68 +15,8 @@ limitations under the License.
*/
const puppeteer = require('puppeteer');
class LogBuffer {
constructor(page, eventName, eventMapper, reduceAsync=false, initialValue = "") {
this.buffer = initialValue;
page.on(eventName, (arg) => {
const result = eventMapper(arg);
if (reduceAsync) {
result.then((r) => this.buffer += r);
}
else {
this.buffer += result;
}
});
}
}
class Logger {
constructor(username) {
this.indent = 0;
this.username = username;
this.muted = false;
}
startGroup(description) {
if (!this.muted) {
const indent = " ".repeat(this.indent * 2);
console.log(`${indent} * ${this.username} ${description}:`);
}
this.indent += 1;
return this;
}
endGroup() {
this.indent -= 1;
return this;
}
step(description) {
if (!this.muted) {
const indent = " ".repeat(this.indent * 2);
process.stdout.write(`${indent} * ${this.username} ${description} ... `);
}
return this;
}
done(status = "done") {
if (!this.muted) {
process.stdout.write(status + "\n");
}
return this;
}
mute() {
this.muted = true;
return this;
}
unmute() {
this.muted = false;
return this;
}
}
const Logger = require('./logger');
const LogBuffer = require('./logbuffer');
module.exports = class RiotSession {
constructor(browser, page, username, riotserver, hsUrl) {