-
Notifications
You must be signed in to change notification settings - Fork 49
Expand file tree
/
Copy pathhttp-webview.js
More file actions
39 lines (30 loc) · 866 Bytes
/
http-webview.js
File metadata and controls
39 lines (30 loc) · 866 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
const http = require("http")
const webview = require("./webview")
exports.create = connectionListener => {
let port = 8444
// PROBLEM: localStorage will not be shared between different ports
const server = http.createServer(connectionListener)
server.on("listening", () => {
let { address, port } = server.address()
if (address == "::") address = "localhost"
const window = webview.open(`http://${address}:${port}`)
window.on("exit", () => process.exit(0))
})
server.on("error", error => {
if (error.code == "EADDRINUSE") {
port++
server.listen(port)
return
}
throw error
})
server.listen(port)
server.on("close", () => webview.close())
return server
}
if (require.main === module) {
exports.create((request, response) => {
response.write("Hello from Node!")
response.end()
})
}