From 439545b4f858f5d2b57abb269dd88116c9b4e4ca Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 28 May 2016 18:32:42 -0700 Subject: [PATCH] Optimize loading core --- bower.json | 2 +- package.json | 2 +- script/sw-precache.js | 10 ++++++---- src/app-core.js | 24 ++++++++++++++++++------ src/home-assistant.html | 20 ++------------------ src/home-assistant.js | 4 ++++ src/layouts/login-form.html | 2 +- webpack.config.js | 4 ++-- 8 files changed, 35 insertions(+), 33 deletions(-) diff --git a/bower.json b/bower.json index c54b5b695f..40f929aa78 100644 --- a/bower.json +++ b/bower.json @@ -1,5 +1,5 @@ { - "name": "Home Assistant", + "name": "home-assistant", "version": "0.1.0", "authors": [ "Paulus Schoutsen " diff --git a/package.json b/package.json index f0e33cfe41..bfe82413a1 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "author": "Paulus Schoutsen (http://paulusschoutsen.nl)", "license": "MIT", "dependencies": { - "home-assistant-js": "git+https://github.com/home-assistant/home-assistant-js.git#ff2bd7efd23bb731d1bcc88996154c5d573395ed", + "home-assistant-js": "git+https://github.com/home-assistant/home-assistant-js.git#9e1399526ae3542259a596f462cfac7c5f559ecd", "moment": "^2.13.0" }, "devDependencies": { diff --git a/script/sw-precache.js b/script/sw-precache.js index e3aa17b11d..ba24ea8bfa 100644 --- a/script/sw-precache.js +++ b/script/sw-precache.js @@ -21,7 +21,7 @@ function md5(filename) { var appPaths = ['/', '/states', '/logbook', '/history', '/map', '/devService', '/devState', '/devEvent', '/devInfo', '/devTemplate']; -var fingerprinted = ['frontend', 'mdi']; +var fingerprinted = ['frontend.html', 'mdi.html', 'core.js']; var dynamicUrlToDependencies = {}; @@ -30,9 +30,11 @@ appPaths.forEach(ap => { }); fingerprinted.forEach(fn => { - var hash = md5(rootDir + '/' + fn + '.html'); - var url = '/static/' + fn + '-' + hash + '.html'; - var fpath = rootDir + '/' + fn + '.html'; + var parts = path.parse(fn); + + var hash = md5(rootDir + '/' + parts.name + parts.ext); + var url = '/static/' + parts.name + '-' + hash + parts.ext; + var fpath = rootDir + '/' + parts.name + parts.ext; dynamicUrlToDependencies[url] = [fpath]; }); diff --git a/src/app-core.js b/src/app-core.js index a4fbd6c17f..e83ba6b949 100644 --- a/src/app-core.js +++ b/src/app-core.js @@ -1,13 +1,9 @@ -import moment from 'moment'; - import HomeAssistant from 'home-assistant-js'; -window.moment = moment; - // While we figure out how ha-entity-marker can keep it's references -window.hass = new HomeAssistant(); +const hass = new HomeAssistant(); -window.validateAuth = function validateAuth(hass, authToken, rememberAuth) { +window.validateAuth = function validateAuth(authToken, rememberAuth) { hass.authActions.validate(authToken, { rememberAuth, useStreaming: hass.localStoragePreferences.useStreaming, @@ -21,3 +17,19 @@ window.removeInitMsg = function removeInitMessage() { initMsg.parentElement.removeChild(initMsg); } }; + +hass.reactor.batch(function () { + hass.navigationActions.showSidebar( + hass.localStoragePreferences.showSidebar); + + // if auth was given, tell the backend + if (window.noAuth) { + window.validateAuth('', false); + } else if (hass.localStoragePreferences.authToken) { + window.validateAuth(hass.localStoragePreferences.authToken, true); + } +}); + +setTimeout(hass.startLocalStoragePreferencesSync, 5000); + +window.hass = hass; diff --git a/src/home-assistant.html b/src/home-assistant.html index ca567c2061..60b5327e32 100644 --- a/src/home-assistant.html +++ b/src/home-assistant.html @@ -1,11 +1,8 @@ - - - - + @@ -104,22 +101,9 @@ Polymer({ }, ready: function () { - var hass = this.hass; - hass.reactor.batch(function () { - // if auth was given, tell the backend - if (this.auth) { - window.validateAuth(this.hass, this.auth, false); - } else if (hass.localStoragePreferences.authToken) { - window.validateAuth(this.hass, hass.localStoragePreferences.authToken, true); - } - hass.navigationActions.showSidebar(hass.localStoragePreferences.showSidebar); - }); - - hass.startLocalStoragePreferencesSync(); - this.loadIcons(); }, }); - + diff --git a/src/home-assistant.js b/src/home-assistant.js index 58819cbc3b..4bd9631cec 100644 --- a/src/home-assistant.js +++ b/src/home-assistant.js @@ -1 +1,5 @@ +import moment from 'moment'; + require('./layouts/home-assistant-main'); + +window.moment = moment; diff --git a/src/layouts/login-form.html b/src/layouts/login-form.html index 50a2124db3..cbfc806728 100644 --- a/src/layouts/login-form.html +++ b/src/layouts/login-form.html @@ -152,7 +152,7 @@ Polymer({ validatePassword: function () { this.$.hideKeyboardOnFocus.focus(); - window.validateAuth(this.hass, this.$.passwordInput.value, + window.validateAuth(this.$.passwordInput.value, this.$.rememberLogin.checked); }, }); diff --git a/webpack.config.js b/webpack.config.js index 0cdee2a711..275bdaa53a 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -8,8 +8,8 @@ var definePlugin = new webpack.DefinePlugin({ module.exports = { entry: { - _app_compiled: './src/home-assistant.js', - _app_core_compiled: './src/app-core.js', + _ui_compiled: './src/home-assistant.js', + _core_compiled: './src/app-core.js', }, output: { path: 'build',