From f6c2c6fb0db999852fe6c9765a659dbf6f2f861a Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Fri, 6 Mar 2026 14:13:27 +1100 Subject: [PATCH 1/2] fix: allow custom script keys in `ScriptRegistry` type Adds a string index signature to `ScriptRegistry` so custom scripts registered via `scripts:registry` hook are accepted in nuxt.config. Closes #581 --- src/runtime/types.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/runtime/types.ts b/src/runtime/types.ts index a46b57b65..c17614c1b 100644 --- a/src/runtime/types.ts +++ b/src/runtime/types.ts @@ -192,6 +192,7 @@ export interface ScriptRegistry { umamiAnalytics?: UmamiAnalyticsInput gravatar?: GravatarInput [key: `${string}-npm`]: NpmInput + [key: string]: any } export type NuxtConfigScriptRegistryEntry = true | 'mock' | T | [T, NuxtUseScriptOptionsSerializable] From 101da2febfa940c7eb07d6a27cf84baef8919807 Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Fri, 6 Mar 2026 14:56:01 +1100 Subject: [PATCH 2/2] fix: move index signature to NuxtConfigScriptRegistry The index signature on ScriptRegistry broke `keyof ScriptRegistry` (returns `string | number` instead of `string`). Instead, add the `Record` intersection to NuxtConfigScriptRegistry which is used for nuxt.config validation only. --- src/runtime/types.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/runtime/types.ts b/src/runtime/types.ts index c17614c1b..d9f2d558c 100644 --- a/src/runtime/types.ts +++ b/src/runtime/types.ts @@ -192,13 +192,12 @@ export interface ScriptRegistry { umamiAnalytics?: UmamiAnalyticsInput gravatar?: GravatarInput [key: `${string}-npm`]: NpmInput - [key: string]: any } export type NuxtConfigScriptRegistryEntry = true | 'mock' | T | [T, NuxtUseScriptOptionsSerializable] export type NuxtConfigScriptRegistry = Partial<{ [key in T]: NuxtConfigScriptRegistryEntry -}> +}> & Record> export type UseFunctionType = T extends { use: infer V