Source: index.js

/*! util-web-test/modules/index */
/*jslint
    browser, long
*/
/*global
*/
/**
 * index for test web application.
 *
 * @module util-web-test/index
 */
import config from "./config";
import ext from "util-web/modules/ext";
import i18n from "./i18n";
import ko from "knockout";
import Logger from "js-logger";
import sandbox from "./component/sandbox";
import ui from "util-web/modules/ui";

const LOG = Logger.get("util-web-test/index");
const vm = {};

vm.hasLoaded = ko.observable(false);
vm.isNewVersionAvailable = ko.observable(true);

vm.reload = () => window.location.reload();

ext.loadConfig(config).then(function (loadedConfig) {
    vm.config = loadedConfig;
    document.title = vm.config.title;
    Logger.useDefaults({
        defaultLevel: (
            vm.config.debug
            ? Logger.DEBUG
            : Logger.INFO
        )
    });
    return Promise.all([
        ui.bind({
            components: [
                {module: sandbox, name: "sandbox"}
            ],
            i18NextOptions: {
                debug: vm.config.debug,
                resources: i18n
            },
            viewmodel: vm
        }),
        ext.registerServiceWorker(() => vm.isNewVersionAvailable(true))
    ]);
}).then(function () {
    vm.hasLoaded(true);
    LOG.info(`loaded, version=${__version}`);
});