diff --git a/README.md b/README.md index a617b91..3466a70 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,7 @@ gamja settings can be overridden using URL query parameters: - `nick`: nickname - `channels`: comma-separated list of channels to join (`#` needs to be escaped) - `open`: [IRC URL] to open +- `debug`: if set to 1, debug mode is enabled Alternatively, the channels can be set with the URL fragment (ie, by just appending the channel name to the gamja URL). diff --git a/components/app.js b/components/app.js index fd16f6c..9d665e5 100644 --- a/components/app.js +++ b/components/app.js @@ -48,6 +48,15 @@ const configPromise = fetch("./config.json") const CHATHISTORY_MAX_SIZE = 4000; +function isProduction() { + // NODE_ENV is set by the Parcel build system + try { + return process.env.NODE_ENV === "production"; + } catch (err) { + return false; + } +} + function parseQueryString() { let query = window.location.search.substring(1); let params = {}; @@ -162,6 +171,7 @@ export default class App extends Component { memberList: false, }, }; + debug = !isProduction(); config = { ...baseConfig }; clients = new Map(); endOfHistory = new Map(); @@ -279,6 +289,9 @@ export default class App extends Component { if (typeof queryParams.open === "string") { this.autoOpenURL = irc.parseURL(queryParams.open); } + if (queryParams.debug === "1") { + this.debug = true; + } if (window.location.hash) { autojoin = window.location.hash.split(","); @@ -579,6 +592,8 @@ export default class App extends Component { this.setState({ connectParams: params }); let client = new Client(fillConnectParams(params)); + client.debug = this.debug; + this.clients.set(serverID, client); this.setServerState(serverID, { status: client.status }); diff --git a/lib/client.js b/lib/client.js index c4f1beb..5b471a5 100644 --- a/lib/client.js +++ b/lib/client.js @@ -76,6 +76,7 @@ export default class Client extends EventTarget { saslExternal: false, bouncerNetwork: null, }; + debug = false; batches = new Map(); autoReconnect = true; reconnectTimeoutID = null; @@ -225,7 +226,9 @@ export default class Client extends EventTarget { } let msg = irc.parseMessage(event.data); - console.debug("Received:", msg); + if (this.debug) { + console.debug("Received:", msg); + } // If the prefix is missing, assume it's coming from the server on the // other end of the connection @@ -653,7 +656,9 @@ export default class Client extends EventTarget { throw new Error("Failed to send IRC message " + msg.command + ": socket is closed"); } this.ws.send(irc.formatMessage(msg)); - console.debug("Sent:", msg); + if (this.debug) { + console.debug("Sent:", msg); + } } setCaseMapping(name) {