Packages
fermo
0.12.1
0.20.1
0.20.0
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.17.1
0.17.0
0.16.7
0.16.6
0.16.5
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.0
0.14.9
0.14.8
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.9
0.13.8
0.13.7
0.13.6
0.13.5
0.13.4
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.1
0.11.0
0.10.0
0.9.1
0.9.0
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.1
0.7.0
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.1
0.5.0
0.4.0
0.3.0
0.2.4
0.2.2
0.2.1
0.2.0
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
A static site generator
Current section
Files
Jump to
Current section
Files
priv/static/fermo-live.js
const FERMO_LIVE = {
socketPath: 'ws://' + window.location.host + '/__fermo/ws/live-reload',
pingTimer: null
}
FERMO_LIVE.socket = new window.WebSocket(FERMO_LIVE.socketPath)
const reloadPage = () => {
window.location.reload()
}
FERMO_LIVE.socket.onopen = e => {
FERMO_LIVE.socket.send('subscribe:live-reload:' + window.location.pathname)
FERMO_LIVE.pingTimer = window.setInterval(() => {
FERMO_LIVE.socket.send(JSON.stringify({event: 'ping'}))
}, 10000)
}
FERMO_LIVE.socket.onmessage = (event) => {
console.log('onmessage: ', event)
if (event.data === 'reload') {
reloadPage()
}
}
FERMO_LIVE.socket.onclose = event => {
// Clean up ping timer
if(FERMO_LIVE.pingTimer) {
window.clearInterval(FERMO_LIVE.pingTimer)
FERMO_LIVE.pingTimer = null
}
if (event.wasClean) {
console.log('onclose clean event:', event)
} else {
// TODO: Poll to try to reconnect
console.log('onclose died event:', event)
}
}
FERMO_LIVE.socket.onerror = error => {
console.log('onerror error:', error)
}