"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.changeMainView = changeMainView;
exports.runCredentialsManager = runCredentialsManager;

function _log() {
  const data = _interopRequireDefault(require("../log"));

  _log = function () {
    return data;
  };

  return data;
}

function _Select() {
  const data = require("./views/Select");

  _Select = function () {
    return data;
  };

  return data;
}

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

let mainView = new (_Select().SelectPlatform)();

function changeMainView(view) {
  mainView = view;
}

async function runCredentialsManager(ctx, startView) {
  mainView = startView;
  let currentView = (await startView.open(ctx)) || (await (0, _Select().askQuit)(mainView));

  while (true) {
    try {
      currentView = (await currentView.open(ctx)) || (await (0, _Select().askQuit)(mainView));
    } catch (error) {
      (0, _log().default)(error);
      await new Promise(res => setTimeout(res, 1000));
      currentView = await (0, _Select().askQuit)(mainView);
    }
  }
}
//# sourceMappingURL=../__sourcemaps__/credentials/route.js.map