UNPKG

@docus/admin

Version:
29 lines (28 loc) 973 B
import { useConfig } from "@docus/app"; import { withBase } from "./utils.mjs"; import { defineNuxtPlugin } from "#app"; export default defineNuxtPlugin(async () => { const $config = useConfig(); if (!$config.value.preview) { return; } const [baseId, branch, userId] = $config.value.preview.split("/"); const ref = branch + "/" + userId; const [base, id] = baseId.includes("_") ? baseId.split("_") : ["prod", baseId]; const _io = await import("socket.io-client"); const socket = _io.connect(withBase(`/preview-${id}-${decodeURIComponent(ref)}`, base), { transports: ["websocket", "polling"] }); socket.on("files", (files) => { console.log("[SOCKET] file changed"); for (const file of files) { window.$nuxt.$emit("docus:content:preview", { key: file.key }); } }); socket.on("connect", () => { console.log("[SOCKET] connected"); }); socket.on("disconnect", () => { console.log("[SOCKET] disconnected"); }); });