Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

better documentation for extending rich JSON payloads #21832

Closed
sharifzadesina opened this issue Jun 28, 2023 · 12 comments
Closed

better documentation for extending rich JSON payloads #21832

sharifzadesina opened this issue Jun 28, 2023 · 12 comments

Comments

@sharifzadesina
Copy link

sharifzadesina commented Jun 28, 2023

Environment

  • Operating System: Linux
  • Node Version: v16.20.0
  • Nuxt Version: 3.6.1
  • Nitro Version: 2.5.1
  • Package Manager: npm@8.19.4
  • Builder: vite
  • User Config: css, postcss, modules, experimental, runtimeConfig
  • Runtime Modules: @pinia/nuxt@0.4.11
  • Build Modules: -

Reproduction

Without enabling experimental renderJsonPayloads, the code below was working fine:

useAsyncData<object>(async () => {
  return new class {
    whatever = 'whatever';
    toJSON() {
      return { whatever: this.whatever };
    }
  }
});

or this one threw just a warning:

useAsyncData<object>(async () => {
  return new class {
    whatever = 'whatever';
  }
});

But now with renderJsonPayloads enabled, I always get Cannot stringify arbitrary non-POJOs error, even with a toJSON method!

Describe the bug

No response

Additional context

No response

Logs

No response

@danielroe
Copy link
Member

You can add this plugin:

export default definePayloadPlugin((nuxtApp) => {
  definePayloadReducer('JSONifiable', data => 'toJSON' in data && JSON.stringify(data.toJSON()))
  definePayloadReviver('JSONifiable', data => JSON.parse(data))
})

The issue is of course that the data will (as before the change) not be the actual class but a normal JS object. You can add additional handlers that actually revive the original classes.

@danielroe danielroe changed the title Cannot stringify arbitrary non-POJOs since 3.5 better documentation for extending rich JSON payloads Jun 28, 2023
@sharifzadesina
Copy link
Author

sharifzadesina commented Jun 28, 2023

@danielroe But what is the point to write a plugin for every class that we have while it was working perfectly fine before?!

I am getting raw data from API and then converting them to model classes, by this experimental default you added, I need to write a custom plugin for every model class that I have, while I had absolutely no problem before.

It is a common approach to convert the raw data of API to model classes.

@danielroe
Copy link
Member

The plugin I provided should work for any class with a toJSON method.

It is possible to disable this behaviour as specified in the PR, but you should provide a reviver/reducer for any custom classes like this rather than have a difference between server/client behaviour of the data.

@CernyMatej
Copy link
Contributor

@danielroe Is the reason why this example doesn't work related to the way I used definePayloadPlugin ? Or does that not apply to the error returned by useFetch ?
https://stackblitz.com/edit/nuxt-starter-kkmozm?file=app.vue

When I set server to false in the useFetch, the methods of ApiError can be accessed in the template, however, an error still appears in the console - and when the request is made on the server, it only shows an error message $setup.error.getValidationErrors is not a function and doesn't render the page.

@mmclofe
Copy link

mmclofe commented Aug 26, 2023

@danielroe i hanve add the plugin,but i got a new error
image

@danielroe
Copy link
Member

Could you share your code?

@mmclofe
Copy link

mmclofe commented Aug 26, 2023

Could you share your code?
// plugins
image
// api intercept
image
I can't share the code right now. Can you help me see where the problem is through the pictures? thanks

@danielroe
Copy link
Member

ah, you should probably add something like:

export default definePayloadPlugin((nuxtApp) => {
  definePayloadReducer('JSONifiable', data => data && typeof data === 'object' && 'toJSON' in data && JSON.stringify(data.toJSON()))
  definePayloadReviver('JSONifiable', data => JSON.parse(data))
})

@mmclofe
Copy link

mmclofe commented Aug 26, 2023

ah, you should probably add something like:

export default definePayloadPlugin((nuxtApp) => {
  definePayloadReducer('JSONifiable', data => data && typeof data === 'object' && 'toJSON' in data && JSON.stringify(data.toJSON()))
  definePayloadReviver('JSONifiable', data => JSON.parse(data))
})

image
Now back to the original question

@maximkrouk
Copy link

maximkrouk commented Sep 7, 2023

Having the same issue, here is my case: emmanueltouzery/prelude-ts#77

export default definePayloadPlugin(() => {
  definePayloadReducer('Some', data => data && typeof data === 'object' && 'toJSON' in data && JSON.stringify(data.toJSON()))
  definePayloadReviver('Some', data => JSON.parse(data))
})

Couldn't make this work either


Well, I managed to write a plugin for my usecase (see linked issue above), but it solves the problem only for one specific case, in general it feels kinda weired that I spent about 3 hours trying to enable ssr for such a simple wrapper-type like Option...

And for those who came here without any understanding what's going on, here is a quick summary of how I see the reason behind this error:

  • Since ssr sends prerendered webpage to the client it should serialize the data you use on the frontend
  • For some reason you used a class (probably to have some convenient methods, instead of going with an interface + free functions)
  • Nuxt uses devalue.stringify for serialization
  • devalue.stringify doesn't support ts classes, because it doesn't know how to convert methods into json
  • Probably it could serialize them as strings, but I read somewhere that it's a bad practice, plus I'm not sure that it's possible to serialize private methods and how to deserialize the whole thing
  • So without proper serialization nuxt can't send a full object from ssr server to your frontend

A few more thoughts:
I didn't check it, but probably you can create wrappers like

import * as Lib from 'some-lib'
export type SomeType extends Lib.SomeType {
  function toJSON() { ... }
}

and use them in your code instead of the originally unsupported types
looks like devalue.stringify can use this function or at least a simpler plugin from above 🤔 But I'm not sure that you'll get expected class...

@manniL
Copy link
Member

manniL commented Dec 26, 2023

Resolved via #24680

@manniL manniL closed this as completed Dec 26, 2023
@posva
Copy link
Collaborator

posva commented Mar 14, 2024

The added documentation doesn't seem to include enough keywords to be findable.
I would add somewhere in the text the terms payload, plugin, reducer, and reviver. Currently, searching for any of them yields no results or wrong ones, and the page with examples is still hard to find

mustafa60x added a commit to mustafa60x/nuxt that referenced this issue Apr 9, 2024
* docs: document `fallback` prop for `<NuxtLayout>` (nuxt#26091)

* chore(deps): update all non-major dependencies to v2.0.5 (main) (nuxt#26088)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update all non-major dependencies (main) (nuxt#26097)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(nuxt): don't refetch server components in initial html (nuxt#26089)

* fix(nuxt): resolve `defu`/`h3` paths in type templates (nuxt#26085)

* fix(nuxt): use exported `toExports` from `unimport` (nuxt#26086)

* fix(nuxt): cache-bust payloads with build id (nuxt#26068)

* fix(nuxt): export `AsyncDataRequestStatus` type (nuxt#26023)

* docs: add documentation for using layers with private repos (nuxt#26094)

* docs: remove twoslash from code sample

* chore: remove second twoslash prop too 🤔

* chore(deps): update devdependency c12 to v1.10.0 (main) (nuxt#26105)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(nuxt): add space before `<html>` and `<body>` attrs (nuxt#26027)

* fix(kit): resolve module `node_modules` for `modulesDir` (nuxt#25548)

* perf(nuxt): use fallthrough cache for prerender (nuxt#26104)

* feat(nuxt): client-only pages (nuxt#25037)

* chore(deps): update dependency cssnano to ^6.1.0 (main) (nuxt#26107)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(nuxt): allow using `nuxt-client` in all components (nuxt#25479)

* feat(nuxt): add `page:view-transition:start` hook (nuxt#26045)

* feat(nuxt): custom loading reset/hide delay + force `finish()` (nuxt#25932)

* feat(nuxt): emit error if `<NuxtIsland>` can't fetch island (nuxt#25798)

* feat(nuxt): `usePreviewMode` composable (nuxt#21705)

* chore(deps): update all non-major dependencies (main) (nuxt#26112)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update devdependency typescript to v5.4.2 (main) (nuxt#26115)

* docs: update cssnano website url

cssnano/cssnano#1578

* docs: add warning about latest `vue-tsc` (nuxt#26083)

* chore(deps): update dependency unplugin to ^1.8.3 (main) (nuxt#26117)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* docs: improve readme readability (nuxt#26118)

Co-authored-by: Sébastien Chopin <seb@nuxtlabs.com>
Co-authored-by: Sébastien Chopin <seb@nuxt.com>

* fix(nuxt): handle external redirects from `routeRules` (nuxt#26120)

* chore: update .npmrc (nuxt#26135)

* docs: added bridge `macros.pageMeta` and `typescript.esbuild` option (nuxt#26136)

* docs: fix bracket escape on `definePageMeta` page (nuxt#26139)

* fix(nuxt): use flat cache directory for prerender data

* chore(deps): update all non-major dependencies (main) (nuxt#26124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(nuxt): watch custom `cookieRef` values deeply (nuxt#26151)

* fix(nuxt): access prerender cache synchronously (nuxt#26146)

* chore(deps): update devdependency happy-dom to v13.7.0 (main) (nuxt#26148)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(nuxt): support async transforms for data composables (nuxt#26154)

* chore(deps): update dependency unplugin to ^1.9.0 (main) (nuxt#26156)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(nuxt): provide typescript aliases for core packages (nuxt#26158)

* chore(deps): update all non-major dependencies (main) (nuxt#26157)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe <daniel@roe.dev>

* fix(nuxt): handle errors resolving package paths

* fix(kit): handle errors resolving module path

* chore: add back stylistic rules and lint project

* fix(nuxt): clone paths to prevent shared object

* chore(deps): update all non-major dependencies to ^1.8.12 (main) (nuxt#26159)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): pin devdependency eslint-config-standard to 17.1.0 (main) (nuxt#26160)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* perf(nuxt): tree shake island renderer

* fix(nuxt): detect component usage within `ssrRender` (nuxt#26162)

* chore(deps): update all non-major dependencies (main) (nuxt#26166)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* perf(nuxt): skip adding selective-client code if not enabled (nuxt#26176)

* perf(nuxt): use faster approach to check cache exists (nuxt#26172)

* docs: add `app:manifest:update` hook (nuxt#26192)

* feat(nuxt): add dedicated `#teleports` element for ssr teleports (nuxt#25043)

* fix(nuxt): improved plugin annotating warnings (nuxt#26193)

* docs: add cache.varies docs for multi-tenant use case (nuxt#26197)

* refactor(nuxt): simplify `request` computation (nuxt#26191)

* docs: add mentions on Vue School tutorials (nuxt#25997)

* fix(nuxt): generate typed routes after pages are scanned (nuxt#26206)

* fix(nuxt): only strip supported extensions when generating import types (nuxt#26218)

* fix(nuxt): init payload when using islands with `ssr: false`

* feat(nuxt): enable islands if server pages/components present (nuxt#26223)

* docs: update link to `zhead`

* fix(nuxt): register/scan plugins with jsx/tsx extensions (nuxt#26230)

* feat(nuxt): allow generating metadata for nuxt components (nuxt#26204)

* chore(deps): update all non-major dependencies (main) (nuxt#26189)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe <daniel@roe.dev>

* feat(vite): handle multiple/custom public dirs (nuxt#26163)

* docs: added modular architecture use case for Layers (nuxt#26240)

* ci: run lint step after bundle test

* chore(deps): update all non-major dependencies (main) (nuxt#26234)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe <daniel@roe.dev>

* docs: escape 'elements' in jsdoc comments

* perf(nuxt): only update changed templates (nuxt#26250)

* chore(deps): update devdependency happy-dom to v13.8.5 (main) (nuxt#26251)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(nuxt): update auto imports after other templates (nuxt#26249)

* chore: remove trailing slash in issue template (nuxt#26268)

* chore(deps): update all non-major dependencies (main) (nuxt#26254)

* docs: use a more common word (nuxt#26276)

* chore(deps): update vitest to v1.4.0 (main) (nuxt#26265)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(nuxt): respect `baseUrl` within server components (nuxt#25727)

* fix(nuxt): access shared asyncData state with `useNuxtData` (nuxt#22277)

* chore(deps): update dependency ufo to v1.5.0 (main) (nuxt#26280)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe <daniel@roe.dev>

* docs: split a sentence in two to improve readability (nuxt#26279)

* chore(deps): update devdependency nitropack to v2.9.4 (main) (nuxt#26281)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(vite): explicitly import `publicAssetsURL`

* feat(schema): allow configuring type hoists with `typescript.hoist`

* fix(nuxt): don't ignore any files from `buildAssetsDir`

* docs: removed unused composable example (nuxt#26283)

* fix(vite): drop name prefix for client chunk file names (nuxt#26203)

* docs: add more keywords for reducer/reviver docs

nuxt#21832 (comment)

* docs: link to pinceau repo rather than website (nuxt#26286)

* docs: add link to ofetch repo (nuxt#26284)

* feat(nuxt): pass nuxt instance to `getCachedData` (nuxt#26287)

* fix(kit): clone middleware when adding to app

* feat(nuxt): pass server logs to client (nuxt#25936)

Co-authored-by: Sébastien Chopin <seb@nuxt.com>

* fix(nuxt): don't generate separate chunk for stubs (nuxt#26291)

* chore(deps): update dependency ufo to v1.5.1 (main) (nuxt#26290)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe <daniel@roe.dev>

* fix(nuxt): use `joinRelativeURL` for build assets (nuxt#26282)

* fix(schema): allow passing `deep` to `selectiveClient`

* docs: improve section titles in error-handling docs (nuxt#26288)

* ci: release in ci when a v3 tag is pushed

* fix(schema): don't hoist types for `consola` for now

* chore: bump ip and follow-redirects

* fix(nuxt): guard `window` access more carefully

* ci: do not cache Playwright browsers (nuxt#26296)

* test: use retryable assertion for `scrollY` (nuxt#26298)

* chore(deps): update all non-major dependencies to ^1.8.20 (main) (nuxt#26294)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe <daniel@roe.dev>

* test: also run composables test with appManifest off

* chore: remove old code

* feat(nuxt): add `nuxtMiddleware` route rule (nuxt#25841)

* test: remove wait for `networkidle`

* test: use locator assertion for body text

* test: use function assertion for second scrollY test

* chore: temporarily remove codspeed plugin

* chore: tidy dependencies

* chore: update knip schema

* chore: do not export unused type

* refactor(nuxt): rename `nuxtMiddleware` to `appMiddleware`

* test: add type test for appMiddleware route rules

* refactor(nuxt): use addTypeTemplate for page augmentations

* fix(nuxt): provide appMiddleware types with universal router

* chore(deps): update devdependency @nuxt/test-utils to v3.12.0 (main) (nuxt#26299)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(nuxt): use addTypeTemplate in more places

* fix(nuxt): handle nightly releases for hoisted types

* feat(nuxt): add `clear` utility to `useAsyncData`/`useFetch` (nuxt#26259)

* chore(nuxt): ensure type template has const filename

* docs: add example for `clear`

* docs: add docs about playwright runner support

* docs: add some `appMiddleware` docs

* v3.11.0

* ci: configure npm registry in release workflow

* docs: fix code block formatting for `usePreviewMode` (nuxt#26303)

* docs: fix confusing wording (nuxt#26301)

* chore(deps): update devdependency happy-dom to v13.9.0 (main) (nuxt#26313)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(nuxt): ignore console.logs called outside event context

resolves nuxt#26308

* fix(schema): include `ofetch` in `typescript.hoist` defaults (nuxt#26316)

* fix(nuxt): conditionally use `tsx` parser (nuxt#26314)

* docs: add note that `useId` must be used with single root element

* fix(nuxt): correct `finish` types and add to docs

resolves nuxt#26317

* fix(nuxt): ignore failures to access asyncContext in environments without it

* chore(nuxt): remove unused code (nuxt#26319)

* chore(deps): update all non-major dependencies (main) (nuxt#26321)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency ufo to v1.5.2 (main) (nuxt#26339)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(nuxt): handle failure creating BroadcastChannel (nuxt#26340)

* fix(nuxt): don't warn when injecting client-only components (nuxt#26341)

* chore(deps): update github/codeql-action action to v3.24.8 (main) (nuxt#26342)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* docs: mention `<DevOnly>` component in api section (nuxt#26029)

* docs: note that `@nuxt/schema` should be used by module authors (nuxt#26190)

* docs: add `routeNameSplitter` example in migration docs (nuxt#25838)

* chore: revert update github/codeql-action action

This reverts commit 70b2986.

* chore(deps): update dependency nuxi to v3.11.0 (main) (nuxt#26353)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(nuxt): prevent losing pages routes on prerender (nuxt#26354)

* chore(deps): update all non-major dependencies (main) (nuxt#26344)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(nuxt): pass `undefined` name when resolving trailing slash (nuxt#26358)

* fix(vite): use ssr result if it exists (nuxt#26356)

* v3.11.1

* chore(deps): update devdependency happy-dom to v14 (main) (nuxt#26359)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: fix typo in test descriptions (nuxt#26366)

* docs: update information about playwright test runner

* docs: add info about dependencies to install

* docs: add missing end block

* chore: rename to yaml

* fix(nuxt): handle underscores in island names (nuxt#26370)

* docs: migration page typo (nuxt#26389)

* chore(deps): update all non-major dependencies (main) (nuxt#26376)

* fix(nuxt): don't append new route for redirect if one exists (nuxt#26368)

* fix(nuxt): ignore `navigateTo` `open` option on server side (nuxt#26392)

* chore(deps): update all non-major dependencies (main) (nuxt#26399)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency nuxi to v3.11.1 (main) (nuxt#26404)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update actions/dependency-review-action action to v4.2.3 (main) (nuxt#26408)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update all non-major dependencies (main) (nuxt#26413)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(nuxt): print errors when compiling templates (nuxt#26410)

* fix(nuxt): don't warn about `definePageMeta` in server pages (nuxt#26422)

* fix(nuxt): pass `joinRelativeURL` + share paths on server (nuxt#26407)

* perf(nuxt): don't tree-shake `useServerHead` in dev (nuxt#26421)

* fix(nuxt): exclude `<srcDir>/index.html` from import protection (nuxt#26430)

* fix(nuxt): early return from `refreshCookie` on server

* chore(deps): update all non-major dependencies (main) (nuxt#26427)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe <daniel@roe.dev>

* chore(deps): update all non-major dependencies (main) (nuxt#26436)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update all non-major dependencies (main) (nuxt#26448)

* docs: advise installing nuxi for debugging with pnpm (nuxt#26447)

* chore(deps): update all non-major dependencies (main) (nuxt#26460)

* chore(deps): update all non-major dependencies (main) (nuxt#26466)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe <daniel@roe.dev>

* fix(nuxt): move `v-if` to wrapper in islands transform (nuxt#26386)

* docs: warn about single root element for server components (nuxt#26462)

* chore(deps): update all non-major dependencies (main) (nuxt#26478)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe <daniel@roe.dev>

* fix(nuxt): move directives to client component island wrapper (nuxt#26387)

* fix(nuxt): ignore fetch errors in `getLatestManifest` (nuxt#26486)

* fix(nuxt): check island element instead of hydration state (nuxt#26480)

* chore(deps): update all non-major dependencies (main) (nuxt#26492)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* docs: adjust grammar (nuxt#26482)

* chore(deps): update codecov/codecov-action action to v4.1.1 (main) (nuxt#26496)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update devdependency happy-dom to v14.3.9 (main) (nuxt#26500)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(nuxt): add build id to rendered payload url (nuxt#26504)

* chore(deps): update resolutions rollup to ^4.13.1 (main) (nuxt#26506)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(nuxt): support serialising rich server logs (nuxt#26503)

* fix(nuxt): handle errors parsing/stringifying logs

* chore(deps): update all non-major dependencies to ^1.9.2 (main) (nuxt#26518)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe <daniel@roe.dev>

* chore(deps): update all non-major dependencies (main) (nuxt#26530)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update resolutions rollup to ^4.13.2 (main) (nuxt#26537)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* docs: add contents of the layout in examples (nuxt#26532)

* fix(nuxt): augment `GlobalComponents` in multiple vue modules (nuxt#26541)

* refactor(nuxt): remove duplicated check (nuxt#26544)

* refactor(nuxt): simplify check in `navigateTo` for server (nuxt#26546)

* chore(deps): update all non-major dependencies (main) (nuxt#26545)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe <daniel@roe.dev>

* chore(deps): update all non-major dependencies (main) (nuxt#26548)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* docs: add note about `prerenderRoutes` in dynamic routes (nuxt#26547)

* chore(deps): update dependency webpack-dev-middleware to v7.2.0 (main) (nuxt#26559)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: improve pr template (nuxt#26562)

* chore(deps): update dependency cookie-es to ^1.1.0 (main) (nuxt#26568)

* perf(nuxt): reduce nuxt island payload (nuxt#26569)

* docs: clarify app-config merging strategy note (nuxt#26564)

* refactor(nuxt): simplify `runtimeConfig` initialization of client side (nuxt#26558)

* docs: update core modules roadmap (nuxt#26553)

* chore(deps): update devdependency @types/node to v20.12.2 (main) (nuxt#26573)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency knitwork to ^1.1.0 (main) (nuxt#26577)

* chore: enable devtools by default in playground

* chore(deps): update all non-major dependencies (main) (nuxt#26584)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe <daniel@roe.dev>

* docs: replace `process.*` with `import.meta.*` (nuxt#26611)

* fix(nuxt): suppress warning about resolve cache-driver (nuxt#26595)

* perf(nuxt): unsubscribe from watch when scope is disposed (nuxt#26554)

* fix(nuxt): handle auto-importing named components (nuxt#26556)

* fix(schema): update webpack `transformAssetUrls` + pass `hoistStatic` to vite plugin (nuxt#26563)

* fix(schema): document use case for `typescript.shim` (nuxt#26607)

* chore(deps): pin devdependency @vue/compiler-sfc to 3.4.21 (main) (nuxt#26621)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* perf(nuxt): reduce router resolutions (nuxt#26519)

* chore(deps): update all non-major dependencies (main) (nuxt#26613)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe <daniel@roe.dev>

* fix(nuxt): normalise rollup opts in island transform w/o nuxt (nuxt#26589)

* docs: correct grammar in `typescript.shim` JSDoc (nuxt#26626)

* chore(deps): update dependency vite to v5.2.8 (main) (nuxt#26627)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update devdependency eslint-plugin-unicorn to v52 (main) (nuxt#26632)

* chore(deps): update dependency css-loader to ^6.11.0 (main) (nuxt#26631)

* chore: migrate to ESLint flat config (nuxt#26583)

* fix(nuxt): handle missing Nuxt context in `useRoute` (nuxt#26633)

* chore(deps): update all non-major dependencies (main) (nuxt#26636)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency magic-string to ^0.30.9 (main) (nuxt#26641)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* docs: add missing comma (nuxt#26644)

* v3.11.2

* chore: update `moduleResolution` to `Bundler` (nuxt#26658)

* chore: cleanup eslint rules with latest `@nuxt/eslint-config` (nuxt#26653)

* docs: update Nuxt 4 scheduled release date (nuxt#26663)

* chore(deps): update dependency css-loader to v7 (main) (nuxt#26646)

* chore(deps): update devdependency eslint to v9 (main) (nuxt#26671)

* chore(deps): update devdependency @eslint/js to v9 (main) (nuxt#26670)

* chore(deps): pin dependencies (main) (nuxt#26665)

* docs: remove step of installing deps in new nuxt project (nuxt#26676)

* chore(deps): update all non-major dependencies (main) (nuxt#26645)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe <daniel@roe.dev>

* perf(nuxt): don't add client fallback plugin if not enabled (nuxt#26666)

* chore(deps): update all non-major dependencies (main) (nuxt#26682)

* fix(nuxt): prevent `getCachedData` from shaping type of `useAsyncData` (nuxt#25946)

* chore(deps): update all non-major dependencies (main) (nuxt#26692)

---------

Co-authored-by: Adam DeHaven <2229946+adamdehaven@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe <daniel@roe.dev>
Co-authored-by: Andre van Tonder <andre@drevan.me>
Co-authored-by: təəna.vuə <76698025+franklin-tina@users.noreply.github.com>
Co-authored-by: i-udas <83934567+i-udas@users.noreply.github.com>
Co-authored-by: Damian Głowala <damian.glowala.rebkow@gmail.com>
Co-authored-by: Bogdan Kostyuk <contact@bogdankostyuk.xyz>
Co-authored-by: Julien Huang <julien.huang@outlook.fr>
Co-authored-by: Horváth Bálint <40771359+horvbalint@users.noreply.github.com>
Co-authored-by: Divine <48183131+divine@users.noreply.github.com>
Co-authored-by: Sultanov Mirjamol <9625526+cljamal@users.noreply.github.com>
Co-authored-by: Antoine Zanardi <antoine.zanardi@epitech.eu>
Co-authored-by: Sébastien Chopin <seb@nuxtlabs.com>
Co-authored-by: Sébastien Chopin <seb@nuxt.com>
Co-authored-by: Ryota Watanabe <43837308+wattanx@users.noreply.github.com>
Co-authored-by: k-karen <40630915+k-karen@users.noreply.github.com>
Co-authored-by: Alex Liu <dsa1314@gmail.com>
Co-authored-by: Alexander Lichter <github@lichter.io>
Co-authored-by: Harlan Wilton <harlan@harlanzw.com>
Co-authored-by: Mostafa Said <mostafasaid1994@gmail.com>
Co-authored-by: Mehmet <hi@productdevbook.com>
Co-authored-by: Anthony Aslangul <anthony.aslangul@gmail.com>
Co-authored-by: Martins <34019878+martinszeltins@users.noreply.github.com>
Co-authored-by: Anthony Fu <anthonyfu117@hotmail.com>
Co-authored-by: OrbisK <37191683+OrbisK@users.noreply.github.com>
Co-authored-by: Tanvir Rahman <rahmantanvir25558@gmail.com>
Co-authored-by: Marc Cremer <marc@cremer.dev>
Co-authored-by: Maik Kowol <maik.s.kowol@gmail.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Horu <73709188+HigherOrderLogic@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Florian Lefebvre <contact@florian-lefebvre.dev>
Co-authored-by: Joaquín Sánchez <userquin@gmail.com>
Co-authored-by: Turdalin Nurassyl <78026760+trdln@users.noreply.github.com>
Co-authored-by: Volker Rose <volker.rose@gmail.com>
Co-authored-by: Serge Doda <33413869+bargel@users.noreply.github.com>
Co-authored-by: zunderbolt <zunderbolt@gmail.com>
Co-authored-by: François Rosato <rosato.francois@gmail.com>
Co-authored-by: Thimo <68739517+ThimoDEV@users.noreply.github.com>
Co-authored-by: Michał Zarach <michal.m.zarach@gmail.com>
Co-authored-by: Junaid Ahmed <12216819+junaidkbr@users.noreply.github.com>
Co-authored-by: xjccc <546534045@qq.com>
Co-authored-by: Pothuraju <ram.k160796@gmail.com>
Co-authored-by: Lehoczky Zoltán <ifjlehoczkyzoltan@gmail.com>
Co-authored-by: Taras Batenkov <taras.batenkov@gmail.com>
Co-authored-by: Maxime Pauvert <maximepvrt@gmail.com>
Co-authored-by: Antoine Rey <antoinerey38@gmail.com>
Co-authored-by: Luke Nelson <luke@nelson.zone>
Co-authored-by: Nikita <118117345+nikitadmitr@users.noreply.github.com>
Co-authored-by: Max <maximogarciamtnez@gmail.com>
Co-authored-by: RollingTL <16714526+RollingTL@users.noreply.github.com>
Co-authored-by: Han <hi@fenghan.link>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants