nuxt-alt-generator
Version:
Nuxt module that generates alt text for images using AI
49 lines (46 loc) • 1.38 kB
JavaScript
import { defineNuxtModule, createResolver, addServerHandler, addImports, addServerPlugin } from '@nuxt/kit';
import { defu } from 'defu';
const module = defineNuxtModule({
meta: {
name: "nuxt-alt-generator",
configKey: "altGenerator"
},
// Default configuration options of the Nuxt module
defaults: {
auto: false,
ai: {
apiKey: "",
baseUrl: ""
}
},
setup(options, nuxt) {
nuxt.options.runtimeConfig.altGenerator = defu(
nuxt.options.runtimeConfig.altGenerator || {},
{
enabled: options.enabled ?? !nuxt.options.dev,
// Disable by default in dev mode
allowedSrcPatterns: options.allowedSrcPatterns,
ai: {
context: options.ai?.context,
apiKey: options.ai?.apiKey,
baseUrl: options.ai?.baseUrl
}
}
);
const resolver = createResolver(import.meta.url);
addServerHandler({
route: "/api/__alt__/generate",
handler: resolver.resolve("./runtime/server/api/__alt__/generate.post"),
method: "post"
});
addImports({
name: "useGenerateAltText",
as: "useGenerateAltText",
from: resolver.resolve("runtime/composables/useGenerateAltText")
});
if (options.auto) {
addServerPlugin(resolver.resolve("./runtime/server/plugins/addAltToImages"));
}
}
});
export { module as default };