mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-18 23:06:40 +00:00
Add basic service worker architecture
This commit is contained in:
parent
044a6d9810
commit
4219380146
@ -62,6 +62,16 @@ export default new Polymer({
|
||||
() => this.importHref(`/static/mdi.html`, success, success));
|
||||
},
|
||||
|
||||
created() {
|
||||
this.registerServiceWorker();
|
||||
},
|
||||
|
||||
attached() {
|
||||
// remove the HTML init message
|
||||
const initMsg = document.getElementById('init');
|
||||
initMsg.parentElement.removeChild(initMsg);
|
||||
},
|
||||
|
||||
ready() {
|
||||
reactor.batch(() => {
|
||||
// if auth was given, tell the backend
|
||||
@ -78,9 +88,15 @@ export default new Polymer({
|
||||
this.loadIcons();
|
||||
},
|
||||
|
||||
attached() {
|
||||
// remove the HTML init message
|
||||
const initMsg = document.getElementById('init');
|
||||
initMsg.parentElement.removeChild(initMsg);
|
||||
registerServiceWorker() {
|
||||
if (!('serviceWorker' in navigator)) {
|
||||
return;
|
||||
}
|
||||
|
||||
navigator.serviceWorker.register('./service_worker.js').then(reg => {
|
||||
console.log('Service Worker registration succeeded.');
|
||||
}).catch(error => {
|
||||
console.log(`Service Worker registration failed: ${error}`);
|
||||
});
|
||||
},
|
||||
});
|
||||
|
23
src/service-worker/index.js
Normal file
23
src/service-worker/index.js
Normal file
@ -0,0 +1,23 @@
|
||||
if (__DEV__) {
|
||||
console.log('Service Worker initialized.');
|
||||
}
|
||||
|
||||
self.addEventListener('install', event => {
|
||||
if (__DEV__) {
|
||||
console.log('Service Worker installed.');
|
||||
}
|
||||
});
|
||||
|
||||
self.addEventListener('activate', event => {
|
||||
if (__DEV__) {
|
||||
console.log('Service Worker activated.');
|
||||
// Force refresh service worker
|
||||
event.waitUntil(global.clients.claim());
|
||||
}
|
||||
});
|
||||
|
||||
self.addEventListener('onmessage', message => {
|
||||
if (__DEV__) {
|
||||
console.log('Message received', message);
|
||||
}
|
||||
});
|
@ -1,5 +1,3 @@
|
||||
'use strict';
|
||||
|
||||
var webpack = require("webpack");
|
||||
|
||||
var definePlugin = new webpack.DefinePlugin({
|
||||
@ -8,22 +6,25 @@ var definePlugin = new webpack.DefinePlugin({
|
||||
});
|
||||
|
||||
module.exports = {
|
||||
entry: "./src/home-assistant.js",
|
||||
entry: {
|
||||
_app_compiled: './src/home-assistant.js',
|
||||
service_worker: './src/service-worker/index.js',
|
||||
},
|
||||
output: {
|
||||
path: 'build',
|
||||
filename: "_app_compiled.js"
|
||||
path: 'build',
|
||||
filename: '[name].js',
|
||||
},
|
||||
module: {
|
||||
loaders: [
|
||||
{
|
||||
loader: "babel-loader",
|
||||
loader: 'babel-loader',
|
||||
test: /.js$/,
|
||||
exclude: /node_modules\/(^home-assistant-js)/
|
||||
}
|
||||
]
|
||||
exclude: /node_modules\/(^home-assistant-js)/,
|
||||
},
|
||||
],
|
||||
},
|
||||
plugins: [
|
||||
definePlugin,
|
||||
new webpack.ContextReplacementPlugin(/moment[\/\\]locale$/, /no-other-locales-for-now/)
|
||||
]
|
||||
new webpack.ContextReplacementPlugin(/moment[\/\\]locale$/, /no-other-locales-for-now/),
|
||||
],
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user