All files / games/console/src renderer.ts

100% Statements 20/20
70% Branches 7/10
100% Functions 2/2
100% Lines 20/20

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43    2x   3x   3x 3x   3x 3x   3x 3x 3x   3x 2x 1x   1x           3x   3x     3x     3x   3x 3x   3x      
import { ConsoleRendererInterface } from "./interface";
 
export class HTMLConsoleRenderer implements ConsoleRendererInterface {
    public write(message: string): void {
        const element = document.getElementsByClassName("console")[0];
 
        const whenNode = document.createElement("span");
        whenNode.textContent = this.getCurrentTime();
 
        const msgNode = document.createElement("span");
        msgNode.textContent = ` - ${message}`;
 
        const log = document.createElement("p");
        log.appendChild(whenNode);
        log.appendChild(msgNode);
 
        if (null != element) {
            if (element.firstChild) {
                element.insertBefore(log, element.firstChild);
            } else {
                element.appendChild(log);
            }
        }
    }
 
    private getCurrentTime(): string {
        const now = new Date(Date.now());
        const month =
            now.getMonth() + 1 < 10
                ? `0${now.getMonth() + 1}`
                : `${now.getMonth() + 1}`;
        const today = `${now.getFullYear()}-${month}-${now.getDate()}`;
 
        const hours =
            now.getHours() < 10 ? `0${now.getHours()}` : now.getHours();
        const seconds =
            now.getSeconds() < 10 ? `0${now.getSeconds()}` : now.getSeconds();
        const time = `${hours}:${now.getMinutes()}:${seconds}`;
 
        return `${today} ${time}`;
    }
}