nuxt-disqus
Version:
Disqus for Nuxt 3
51 lines (47 loc) • 1.31 kB
JavaScript
import { defu } from 'defu';
import { defineNuxtModule, createResolver, isNuxt2, addPlugin, addComponent } from '@nuxt/kit';
const name = "nuxt-disqus";
const version = "1.2.0";
const module = defineNuxtModule({
meta: {
name,
version,
configKey: "disqus",
compatibility: {
nuxt: ">=3.0.0"
}
},
// Default configuration options of the Nuxt module
defaults: {
shortname: ""
},
setup(options, nuxt) {
const { resolve } = createResolver(import.meta.url);
nuxt.options.runtimeConfig.disqus = defu(
nuxt.options.runtimeConfig.disqus,
options
);
nuxt.options.runtimeConfig.public.disqus = defu(
nuxt.options.runtimeConfig.public.disqus,
options
);
nuxt.hook("modules:done", () => {
if (isNuxt2(nuxt)) {
throw new Error("Vue3 Snackbar is not compatible with Nuxt2");
} else {
addPlugin(resolve("./runtime/plugin"));
addComponent({
name: "DisqusComments",
filePath: resolve("./runtime/components/DisqusComments.vue"),
mode: "client"
});
addComponent({
name: "DisqusCount",
filePath: resolve("./runtime/components/DisqusCount.vue"),
mode: "client"
});
}
});
}
});
export { module as default };