All files / games/console/src renderer.ts

100% Statements 22/22
100% Branches 10/10
100% Functions 2/2
100% Lines 22/22

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    2x   3x   3x 3x   3x 3x   3x 3x 3x   3x 2x 1x   1x     2x     1x       3x 3x 3x   3x 3x 3x   3x      
import { ConsoleRendererInterface } from "./interface";
 
export class HTMLConsoleRenderer implements ConsoleRendererInterface {
    public write(message: string): boolean {
        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);
            }
 
            return true;
        }
 
        return false;
    }
 
    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}`;
    }
}