|
import io from 'socket.io-client' |
|
import { initBackend } from '@back' |
|
import { installToast } from '@back/toast' |
|
import { Bridge, chunk, target } from '@vue-devtools/shared-utils' |
|
|
|
const host = target.__VUE_DEVTOOLS_HOST__ || 'http://localhost' |
|
const port = target.__VUE_DEVTOOLS_PORT__ !== undefined ? target.__VUE_DEVTOOLS_PORT__ : 8098 |
|
const fullHost = port ? `${host}:${port}` : host |
|
const createSocket = target.__VUE_DEVTOOLS_SOCKET__ || io |
|
const socket = createSocket(fullHost) |
|
const MAX_DATA_CHUNK = 2000 |
|
|
|
function connectedMessage() { |
|
if (target.__VUE_DEVTOOLS_TOAST__) { |
|
target.__VUE_DEVTOOLS_TOAST__('Remote Devtools Connected', 'normal') |
|
} |
|
} |
|
|
|
function disconnectedMessage() { |
|
if (target.__VUE_DEVTOOLS_TOAST__) { |
|
target.__VUE_DEVTOOLS_TOAST__('Remote Devtools Disconnected', 'error') |
|
} |
|
} |
|
|
|
socket.on('connect', () => { |
|
connectedMessage() |
|
|
|
initBackend(bridge) |
|
socket.emit('vue-devtools-init') |
|
}) |
|
|
|
|
|
|
|
|
|
socket.on('disconnect', () => { |
|
socket.disconnect() |
|
disconnectedMessage() |
|
}) |
|
|
|
|
|
socket.on('vue-devtools-disconnect-backend', () => { |
|
socket.disconnect() |
|
}) |
|
|
|
const bridge = new Bridge({ |
|
listen(fn) { |
|
socket.on('vue-message', data => fn(data)) |
|
}, |
|
send(data) { |
|
const chunks = chunk(data, MAX_DATA_CHUNK) |
|
|
|
for (const chunk of chunks) { |
|
socket.emit('vue-message', chunk) |
|
} |
|
}, |
|
}) |
|
|
|
bridge.on('shutdown', () => { |
|
socket.disconnect() |
|
disconnectedMessage() |
|
}) |
|
|
|
installToast(target) |
|
|