mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-19 15:26:36 +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));
|
() => 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() {
|
ready() {
|
||||||
reactor.batch(() => {
|
reactor.batch(() => {
|
||||||
// if auth was given, tell the backend
|
// if auth was given, tell the backend
|
||||||
@ -78,9 +88,15 @@ export default new Polymer({
|
|||||||
this.loadIcons();
|
this.loadIcons();
|
||||||
},
|
},
|
||||||
|
|
||||||
attached() {
|
registerServiceWorker() {
|
||||||
// remove the HTML init message
|
if (!('serviceWorker' in navigator)) {
|
||||||
const initMsg = document.getElementById('init');
|
return;
|
||||||
initMsg.parentElement.removeChild(initMsg);
|
}
|
||||||
|
|
||||||
|
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 webpack = require("webpack");
|
||||||
|
|
||||||
var definePlugin = new webpack.DefinePlugin({
|
var definePlugin = new webpack.DefinePlugin({
|
||||||
@ -8,22 +6,25 @@ var definePlugin = new webpack.DefinePlugin({
|
|||||||
});
|
});
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
entry: "./src/home-assistant.js",
|
entry: {
|
||||||
|
_app_compiled: './src/home-assistant.js',
|
||||||
|
service_worker: './src/service-worker/index.js',
|
||||||
|
},
|
||||||
output: {
|
output: {
|
||||||
path: 'build',
|
path: 'build',
|
||||||
filename: "_app_compiled.js"
|
filename: '[name].js',
|
||||||
},
|
},
|
||||||
module: {
|
module: {
|
||||||
loaders: [
|
loaders: [
|
||||||
{
|
{
|
||||||
loader: "babel-loader",
|
loader: 'babel-loader',
|
||||||
test: /.js$/,
|
test: /.js$/,
|
||||||
exclude: /node_modules\/(^home-assistant-js)/
|
exclude: /node_modules\/(^home-assistant-js)/,
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
definePlugin,
|
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