@docus/admin
Version:
The Docus admin module.
33 lines (29 loc) • 1.11 kB
JavaScript
import { resolveModule, defineNuxtModule, addPlugin } from '@nuxt/kit';
import { fileURLToPath } from 'url';
import { resolve } from 'pathe';
const distDir = resolve(typeof __dirname === "undefined" ? fileURLToPath(import.meta.url) : __dirname);
const runtimeDir = resolve(distDir, "runtime");
const templateDir = resolve(distDir, "templates");
const newRoute = {
name: "components___en",
path: "/_components/:component",
chunkName: "components",
component: resolveModule("./components.vue", { paths: templateDir })
};
const index = defineNuxtModule({
setup(_options, nuxt) {
addPlugin(resolveModule("./socketio.client", { paths: runtimeDir }), { append: true });
addPlugin(resolveModule("./iframe.client", { paths: runtimeDir }), { append: true });
nuxt.hook("nitro:context", (ctx) => {
ctx.storage.mounts.preview = {
driver: resolveModule("./cloudDriver", { paths: runtimeDir })
};
});
nuxt.hook("modules:done", (nuxt2) => {
nuxt2.extendRoutes((routes) => {
routes.unshift(newRoute);
});
});
}
});
export { index as default };