Skip to content

Commit a41347c

Browse files
committed
fix: make scripts accessible at nuxtApp.$scripts
1 parent 436981f commit a41347c

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/runtime/composables/useScript.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import type { UseScriptOptions } from '@unhead/schema'
33
import { hashCode } from '@unhead/shared'
44
import { defu } from 'defu'
55
import { useScript as _useScript } from '@unhead/vue'
6-
import { injectHead, onNuxtReady, useNuxtApp, useRuntimeConfig } from '#imports'
6+
import { injectHead, onNuxtReady, useNuxtApp, useRuntimeConfig, reactive } from '#imports'
77
import type { NuxtAppScript, NuxtUseScriptOptions } from '#nuxt-scripts'
88

99
function useNuxtScriptRuntimeConfig() {
@@ -20,6 +20,11 @@ export function useScript<T extends Record<string | symbol, any>>(input: UseScri
2020
options.trigger = onNuxtReady
2121
const nuxtApp = useNuxtApp()
2222
const id = (input.key || input.src || hashCode((typeof input.innerHTML === 'string' ? input.innerHTML : ''))) as keyof typeof nuxtApp._scripts
23+
nuxtApp.$scripts = nuxtApp.$scripts! || reactive({})
24+
// return early
25+
if (nuxtApp.$scripts[id]) {
26+
return nuxtApp.$scripts[id]
27+
}
2328
if (import.meta.client) {
2429
// only validate if we're initializing the script
2530
if (!nuxtApp._scripts?.[id]) {
@@ -31,6 +36,7 @@ export function useScript<T extends Record<string | symbol, any>>(input: UseScri
3136
}
3237
}
3338
const instance = _useScript<T>(input, options as any as UseScriptOptions<T>)
39+
nuxtApp.$scripts[id] = instance
3440
// used for devtools integration
3541
if (import.meta.dev && import.meta.client) {
3642
// sync scripts to nuxtApp with debug details

0 commit comments

Comments
 (0)