diff --git a/packages/example/composables/dog.ts b/packages/example/composables/dog.ts
new file mode 100644
index 00000000..2c8c6c1c
--- /dev/null
+++ b/packages/example/composables/dog.ts
@@ -0,0 +1,32 @@
+type Dog = {
+ breed: string;
+ name: string;
+ age: number;
+};
+
+export const useDog = async () => {
+ const app = useNuxtApp();
+
+ // fetch Dog data
+ await new Promise((res) => setTimeout(res, 100));
+ const dog: Dog = {
+ breed: 'Golden Retriever',
+ name: 'Buddy',
+ age: 5,
+ };
+
+ // Note: This jsonld will not disappear even after page transition.
+ // If you want to link it to the page, use useJsonld in the component side.
+ app.runWithContext(() => {
+ useJsonld(() => ({
+ '@context': 'https://schema.org',
+ '@type': 'Thing',
+ name: dog.name,
+ description: `A ${dog.breed} dog: not linked to the page`,
+ }));
+ });
+
+ return {
+ dog,
+ };
+};
diff --git a/packages/example/nuxt.config.ts b/packages/example/nuxt.config.ts
index 576f3c87..ad0f5011 100644
--- a/packages/example/nuxt.config.ts
+++ b/packages/example/nuxt.config.ts
@@ -1,7 +1,5 @@
-import NuxtJsonld from 'nuxt-jsonld';
-
export default defineNuxtConfig({
- modules: [NuxtJsonld],
+ modules: ['nuxt-jsonld'],
css: ['@/css/index.css'],
- devtools: true,
+ compatibilityDate: '2024-12-11',
});
diff --git a/packages/example/package.json b/packages/example/package.json
index 22f6c3d8..84c2b7cf 100644
--- a/packages/example/package.json
+++ b/packages/example/package.json
@@ -9,7 +9,7 @@
"start": "node ./.output/server/index.mjs"
},
"dependencies": {
- "nuxt": "^3.11.2"
+ "nuxt": "^3.12.4"
},
"devDependencies": {
"@nuxt/devtools": "^0.8.5"
diff --git a/packages/example/pages/composable-options.vue b/packages/example/pages/composable-options.vue
index 6b18f187..389f06ae 100644
--- a/packages/example/pages/composable-options.vue
+++ b/packages/example/pages/composable-options.vue
@@ -1,24 +1,21 @@
Composable Options
+ Back to list
-
diff --git a/packages/example/pages/context.vue b/packages/example/pages/context.vue
new file mode 100644
index 00000000..c7149411
--- /dev/null
+++ b/packages/example/pages/context.vue
@@ -0,0 +1,32 @@
+
+
+
Context example
+
+
{{ JSON.stringify(dog, null, 4) }}
+
Back to list
+
+
+
+
+
+
+
diff --git a/packages/example/pages/index.vue b/packages/example/pages/index.vue
index f7649465..3c066fa8 100644
--- a/packages/example/pages/index.vue
+++ b/packages/example/pages/index.vue
@@ -8,43 +8,34 @@
{{ p.name }}
- Static JSON
Options API
Composable API Options
+ Context
-
diff --git a/packages/example/pages/products/[id].vue b/packages/example/pages/products/[id].vue
index 2bc22233..be7c1d21 100644
--- a/packages/example/pages/products/[id].vue
+++ b/packages/example/pages/products/[id].vue
@@ -10,39 +10,30 @@
-
diff --git a/packages/example/pages/static.vue b/packages/example/pages/static.vue
deleted file mode 100644
index acb9c403..00000000
--- a/packages/example/pages/static.vue
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
Static JSON-LD example
-
-
- Back to list
-
-
-
-
-
-
-
diff --git a/packages/nuxt-jsonld/src/module.ts b/packages/nuxt-jsonld/src/module.ts
index 2cb741c6..dfdd70ed 100644
--- a/packages/nuxt-jsonld/src/module.ts
+++ b/packages/nuxt-jsonld/src/module.ts
@@ -2,6 +2,7 @@ import { resolve } from 'pathe';
import { defineNuxtModule, addPlugin, addImports } from '@nuxt/kit';
import type { Nuxt } from '@nuxt/schema';
import type { JsonLDFunc } from './types';
+export type { JsonLD, JsonLDFunc } from './types';
export type { UseJsonldOptions } from './runtime/composable';
diff --git a/packages/nuxt-jsonld/src/runtime/composable.ts b/packages/nuxt-jsonld/src/runtime/composable.ts
index 1c98ac59..4b174835 100644
--- a/packages/nuxt-jsonld/src/runtime/composable.ts
+++ b/packages/nuxt-jsonld/src/runtime/composable.ts
@@ -4,6 +4,7 @@ import { useHead, type UseHeadOptions } from '@unhead/vue';
const isFunc = (json: JsonLD | JsonLDFunc): json is JsonLDFunc => typeof json === 'function';
export type UseJsonldOptions = Pick;
+export type { JsonLD, JsonLDFunc } from '../types';
export const useJsonld = (json: JsonLD | JsonLDFunc, options?: UseJsonldOptions) => {
if (!json) {
diff --git a/packages/nuxt-jsonld/src/types/index.d.ts b/packages/nuxt-jsonld/src/types/index.ts
similarity index 100%
rename from packages/nuxt-jsonld/src/types/index.d.ts
rename to packages/nuxt-jsonld/src/types/index.ts
diff --git a/yarn.lock b/yarn.lock
index 5109e978..066010a3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7553,7 +7553,7 @@ nuxi@^3.15.0:
resolved "https://registry.yarnpkg.com/nuxi/-/nuxi-3.15.0.tgz#ed54923ca46727c6e7df10495143db340d9791c9"
integrity sha512-ZVu45nuDrdb7nzKW2kLGY/N1vvFYLLbUVX6gUYw4BApKGGu4+GktTR5o48dGVgMYX9A8chaugl7TL9ZYmwC9Mg==
-nuxt@^3.11.2:
+nuxt@^3.11.2, nuxt@^3.12.4:
version "3.14.1592"
resolved "https://registry.yarnpkg.com/nuxt/-/nuxt-3.14.1592.tgz#0f94132b7e0ffe9087b37392f295e2c7d5d05ee3"
integrity sha512-roWAQH4Mb6WY72cNos+YVw0DgTCNAhNygiAMCedM7hbX6ESTR2n3VH7tU0yIWDPe/hfFdii4M4wWTTNHOtS44g==