nuxt-schema-org
Version:
The quickest and easiest way to build Schema.org graphs for Nuxt.
32 lines (31 loc) • 815 B
JavaScript
import { useHead } from "#imports";
import { useNuxtApp } from "nuxt/app";
import { computed, isRef } from "vue";
import { useSchemaOrgConfig } from "../utils/config.js";
export function useSchemaOrg(input) {
const config = useSchemaOrgConfig();
const nuxtApp = useNuxtApp();
const nodes = isRef(input) ? computed(() => nuxtApp.runWithContext(() => input.value)) : input;
const script = {
type: "application/ld+json",
key: "schema-org-graph",
// @ts-expect-error untyped
nodes,
tagPriority: "high",
...config.scriptAttributes
};
if (import.meta.dev) {
return useHead({
script: [script]
});
}
if (import.meta.server) {
return useHead({
script: [script]
});
} else if (config?.reactive) {
return useHead({
script: [script]
});
}
}