From 5745e9ed0cfeb745046fc8788dccf012334b6b3a Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Wed, 12 Sep 2018 18:36:02 +0200 Subject: [PATCH] move Logger and LogBuffer to own module --- src/logbuffer.js | 30 +++++++++++++++++++++++ src/logger.js | 62 ++++++++++++++++++++++++++++++++++++++++++++++ src/session.js | 64 ++---------------------------------------------- 3 files changed, 94 insertions(+), 62 deletions(-) create mode 100644 src/logbuffer.js create mode 100644 src/logger.js diff --git a/src/logbuffer.js b/src/logbuffer.js new file mode 100644 index 0000000000..8bf6285e25 --- /dev/null +++ b/src/logbuffer.js @@ -0,0 +1,30 @@ +/* +Copyright 2018 New Vector Ltd + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +module.exports = 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; + } + }); + } +} diff --git a/src/logger.js b/src/logger.js new file mode 100644 index 0000000000..be3ebde75b --- /dev/null +++ b/src/logger.js @@ -0,0 +1,62 @@ +/* +Copyright 2018 New Vector Ltd + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +module.exports = 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; + } +} diff --git a/src/session.js b/src/session.js index 0bfe781e61..86cdd05e95 100644 --- a/src/session.js +++ b/src/session.js @@ -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) {