const express = require('express')
const { braidify } = require('../../reference/braid-http/braid-http-server.js')
const app = express()
const port = 3009
app.use(braidify)
let state = {
version: 'v0',
data: 'initial state'
}
app.get('/test', (req, res) => {
console.log('Request received: ' + req.method + ' ' + req.url + ' subscribe=' + req.subscribe)
if (req.subscribe) {
console.log('Starting subscription...')
res.startSubscription({
version: [state.version],
buffer: true
})
res.sendUpdate({
version: [state.version],
data: JSON.stringify(state.data)
})
setTimeout(() => {
console.log('Sending second update...')
state.version = 'v1'
state.data = 'updated state'
res.sendUpdate({
version: [state.version],
data: JSON.stringify(state.data)
})
}, 1000)
setTimeout(() => {
console.log('Ending subscription.')
res.end()
}, 3000)
} else {
res.sendUpdate({
version: [state.version],
data: JSON.stringify(state.data)
})
}
})
app.listen(port, () => {
console.log(`Interop JS server listening on port ${port}`)
})