8000 3.17 breaks Nitro Types · Issue #31995 · nuxt/nuxt · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
3.17 breaks Nitro Types #31995
Open
Open
@kaaax0815

Description

@kaaax0815

Environment

  • Operating System: Darwin
  • Node Version: v22.13.1
  • Nuxt Version: 3.17.0
  • CLI Version: 3.25.0
  • Nitro Version: 2.11.11
  • Package Manager: pnpm@10.10.0
  • Builder: -
  • User Config: future, compatibilityDate, devtools, modules, colorMode, i18n, nitro, alias
  • Runtime Modules: @nuxtjs/i18n@9.5.4, @nuxtjs/tailwindcss@6.14.0, @pinia/nuxt@0.11.0, @eschricht/nuxt-color-mode@1.1.5, radix-vue/nuxt@1.9.17, @nuxt/eslint@1.3.0
  • Build Modules: -

Reproduction

https://github.com/kaaax0815/nuxt-repro

Describe the bug

When using Nuxt 3.16.2 everything works fine.
When updating to Nuxt 3.17.0 or 3.17.1 it stops working.

I want to use use the return type of the api routes dynamically for a composable (useSubmit), but for whatever reason updating nuxt breaks the types to nitropack and i get a Excessive stack depth comparing types

Additional context

No response

Logs

> nuxt typecheck

ℹ Using default Tailwind CSS file                                                                                                                                                                                                                                                                                                                nuxt:tailwindcss 11:00:10 AM
ℹ Running with compatibility version 4                                                                                                                                                                                                                                                                                                                       nuxt 11:00:10 AM
app/composables/useSubmit.ts:16:7 - error TS2321: Excessive stack depth comparing types 'Exclude<R extends "/api/admin/general" ? { key: "/api/admin/general"; exact: true; score: []; catchAll: false; } : { key: "/api/admin/general"; exact: false; score: `${R}/` extends `${infer RouteSeg}/${infer RouteRest}` ? `${RouteSeg}?` extends `${infer RouteSegWithoutQuery}?${string}` ? RouteSegWithoutQuery extends...' and '{ score: MaxTuple<((R extends "/api/admin/general" ? { key: "/api/admin/general"; exact: true; score: []; catchAll: false; } : { key: "/api/admin/general"; exact: false; score: `${R}/` extends `${infer RouteSeg}/${infer RouteRest}` ? `${RouteSeg}?` extends `${infer RouteSegWithoutQuery}?${string}` ? RouteSegWithoutQ...'.

 16     | TypedInternalResponse<
          ~~~~~~~~~~~~~~~~~~~~~~
 17         R,
    ~~~~~~~~~~
... 
 19         NitroFetchOptions<R> extends O ? 'get' : ExtractedRouteMethod<R, O>
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 20       >
    ~~~~~~~

app/composables/useSubmit.ts:16:7 - error TS2321: Excessive stack depth comparing types 'Exclude<{ key: "/__nuxt_error"; exact: false; score: `${R}/` extends `${infer RouteSeg}/${infer RouteRest}` ? `${RouteSeg}?` extends `${infer RouteSegWithoutQuery}?${string}` ? RouteSegWithoutQuery extends "" ? `${RouteRest}/` extends `${infer RouteSeg}/${infer RouteRest}` ? `${RouteSeg}?` extends `${infer RouteSegW...' and '{ score: MaxTuple<((R extends "/api/admin/general" ? { key: "/api/admin/general"; exact: true; score: []; catchAll: false; } : { key: "/api/admin/general"; exact: false; score: `${R}/` extends `${infer RouteSeg}/${infer RouteRest}` ? `${RouteSeg}?` extends `${infer RouteSegWithoutQuery}?${string}` ? RouteSegWithoutQ...'.

 16     | TypedInternalResponse<
          ~~~~~~~~~~~~~~~~~~~~~~
 17         R,
    ~~~~~~~~~~
... 
 19         NitroFetchOptions<R> extends O ? 'get' : ExtractedRouteMethod<R, O>
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 20       >
    ~~~~~~~

app/pages/login.vue:83:17 - error TS2321: Excessive stack depth comparing types 'Exclude<R extends "/api/admin/general" ? { key: "/api/admin/general"; exact: true; score: []; catchAll: false; } : { key: "/api/admin/general"; exact: false; score: `${R}/` extends `${infer RouteSeg}/${infer RouteRest}` ? `${RouteSeg}?` extends `${infer RouteSegWithoutQuery}?${string}` ? RouteSegWithoutQuery extends...' and '{ score: MaxTuple<((R extends "/api/admin/general" ? { key: "/api/admin/general"; exact: true; score: []; catchAll: false; } : { key: "/api/admin/general"; exact: false; score: `${R}/` extends `${infer RouteSeg}/${infer RouteRest}` ? `${RouteSeg}?` extends `${infer RouteSegWithoutQuery}?${string}` ? RouteSegWithoutQ...'.

 83 const _submit = useSubmit(
                    ~~~~~~~~~~
 84   '/api/session',
    ~~~~~~~~~~~~~~~~~
... 
117   }
    ~~~
118 );
    ~

app/pages/login.vue:83:17 - error TS2321: Excessive stack depth comparing types 'Exclude<{ key: "/__nuxt_error"; exact: false; score: `${R}/` extends `${infer RouteSeg}/${infer RouteRest}` ? `${RouteSeg}?` extends `${infer RouteSegWithoutQuery}?${string}` ? RouteSegWithoutQuery extends "" ? `${RouteRest}/` extends `${infer RouteSeg}/${infer RouteRest}` ? `${RouteSeg}?` extends `${infer RouteSegW...' and '{ score: MaxTuple<((R extends "/api/admin/general" ? { key: "/api/admin/general"; exact: true; score: []; catchAll: false; } : { key: "/api/admin/general"; exact: false; score: `${R}/` extends `${infer RouteSeg}/${infer RouteRest}` ? `${RouteSeg}?` extends `${infer RouteSegWithoutQuery}?${string}` ? RouteSegWithoutQ...'.

 83 const _submit = useSubmit(
                    ~~~~~~~~~~
 84   '/api/session',
    ~~~~~~~~~~~~~~~~~
... 
117   }
    ~~~
118 );
    ~


Found 4 errors in 2 files.

Errors  Files
     2  app/composables/useSubmit.ts:16
     2  app/pages/login.vue:83

 ERROR  Process exited with non-zero status (2)                                                                                                                                                                                                                                                                                                                    11:00:16 AM

    at R._waitForOutput (node_modules/.pnpm/tinyexec@1.0.1/node_modules/tinyexec/dist/main.js:530:13)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async Object.run (node_modules/.pnpm/@nuxt+cli@3.25.0_magicast@0.3.5/node_modules/@nuxt/cli/dist/chunks/typecheck.mjs:45:7)
    at async runCommand (node_modules/.pnpm/citty@0.1.6/node_modules/citty/dist/index.mjs:316:16)
    at async runCommand (node_modules/.pnpm/citty@0.1.6/node_modules/citty/dist/index.mjs:307:11)
    at async runMain (node_modules/.pnpm/citty@0.1.6/node_modules/citty/dist/index.mjs:445:7)

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0