// https://stackoverflow.com/a/36978360
class Singleton {
  private static _instance: Singleton;

  private constructor() {
    console.log("Instantiated");
  }

  public static getInstance(): Singleton {
    console.log("getInstance()");
    return this._instance || (this._instance = new this());
  }
}

const i1 = Singleton.getInstance();
const i2 = Singleton.getInstance();
const i3 = Singleton.getInstance();

console.log(i1 === i2);
console.log(i2 === i3);
console.log(i1 === i3);