Hendrik Liebau and GitHub
4f69336336
Support accessing root params in generateStaticParams ( #91189 )
...
A new `GenerateStaticParamsStore` work unit store type is now provided during `generateStaticParams` execution. This enables root param getters (`import { lang } from 'next/root-params'`) to be called inside `generateStaticParams`, allowing shared helpers that internally access root params via the special import to be used in both Server Components and `generateStaticParams` without manually threading params.
Each `generateStaticParams` call now runs within a `workUnitAsyncStorage.run()` context carrying a `GenerateStaticParamsStore` with the correct `rootParams` (extracted from `parentParams` using the already-available `rootParamKeys`). The store extends `CommonWorkUnitStore`, providing `phase` and `implicitTags` which are not strictly necessary but convenient to keep call sites simple.
Request-time APIs (`headers()`, `cookies()`, `connection()`, `draftMode()`) now throw specific errors when called inside `generateStaticParams` instead of the previous generic "called outside a request scope" message. Framework-internal functions like `createSearchParamsFromClient` and `createParamsFromClient` throw `InvariantError` since they should never be reached in this context.
This change also unblocks a follow-up PR that removes `| undefined` from `PublicCacheContext.outerWorkUnitStore` in the use cache wrapper, since `"use cache"` is already supported inside `generateStaticParams` today but previously ran without a `WorkUnitStore`. With this store in place, requiring a `WorkUnitStore` in `"use cache"` won't break that existing usage.
2026-03-16 15:44:53 +01:00
..
2023-10-13 15:40:14 -04:00
2024-11-19 09:44:42 +00:00
2025-06-16 13:42:20 +01:00
2023-07-05 19:22:34 -07:00
2023-07-05 19:22:34 -07:00
2026-03-03 13:14:24 +00:00
2025-04-24 07:28:50 -05:00
2025-12-12 14:51:29 +01:00
2025-04-24 07:28:50 -05:00
2025-05-12 08:32:57 -05:00
2025-05-07 10:09:12 +01:00
2025-10-18 16:03:42 -07:00
2025-04-25 08:08:57 +01:00
2025-04-25 08:08:57 +01:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2025-05-15 14:26:19 +01:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2025-04-25 08:08:57 +01:00
2023-07-05 06:11:16 -07:00
2025-05-15 14:26:19 +01:00
2025-08-21 21:05:20 +00:00
2025-06-16 13:42:20 +01:00
2023-07-05 06:11:16 -07:00
2025-04-25 08:08:57 +01:00
2023-07-05 06:11:16 -07:00
2025-10-17 16:13:26 +02:00
2026-03-03 13:14:24 +00:00
2026-01-27 16:50:49 +01:00
2026-01-27 16:50:49 +01:00
2024-11-19 08:58:29 +00:00
2024-11-08 14:48:55 +00:00
2023-07-05 06:11:16 -07:00
2023-10-19 13:32:47 +00:00
2025-09-23 15:31:35 +02:00
2025-10-17 20:03:13 +02:00
2024-11-19 07:56:55 +00:00
2026-03-03 13:14:24 +00:00
2023-07-05 06:11:16 -07:00
2025-01-03 23:17:14 +00:00
2025-04-24 07:28:50 -05:00
2025-06-16 13:42:20 +01:00
2024-11-07 08:58:43 +00:00
2023-07-05 06:11:16 -07:00
2025-05-08 13:11:38 +01:00
2025-04-22 08:44:58 -05:00
2025-05-21 15:43:02 +01:00
2024-11-08 14:48:55 +00:00
2024-11-07 08:58:43 +00:00
2023-07-05 06:11:16 -07:00
2026-03-03 13:14:24 +00:00
2024-11-19 09:44:42 +00:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2024-11-19 07:56:55 +00:00
2024-11-07 08:58:43 +00:00
2023-07-05 06:11:16 -07:00
2025-05-07 10:09:12 +01:00
2025-05-07 10:09:12 +01:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2024-11-19 09:44:42 +00:00
2023-07-05 06:11:16 -07:00
2025-10-17 20:03:13 +02:00
2023-07-05 06:11:16 -07:00
2024-11-19 09:44:42 +00:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2025-04-24 07:28:50 -05:00
2023-07-05 06:11:16 -07:00
2024-11-19 09:44:42 +00:00
2025-04-24 13:40:54 -05:00
2025-04-25 08:16:35 -05:00
2025-05-08 13:11:38 +01:00
2023-09-13 11:06:29 -05:00
2023-07-05 06:11:16 -07:00
2025-04-24 13:40:54 -05:00
2025-04-24 13:40:54 -05:00
2024-11-08 14:48:55 +00:00
2024-11-04 23:16:21 +00:00
2023-09-13 11:06:29 -05:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2025-05-21 15:43:02 +01:00
2025-10-09 14:31:58 +02:00
2026-02-05 19:14:19 +01:00
2023-07-05 06:11:16 -07:00
2025-08-26 14:04:27 +02:00
2025-10-20 19:58:07 +00:00
2025-09-30 15:21:52 +02:00
2024-08-22 10:05:00 -05:00
2023-07-05 06:11:16 -07:00
2023-12-16 14:13:17 -06:00
2024-11-19 09:44:42 +00:00
2023-07-05 06:11:16 -07:00
2025-10-17 20:03:13 +02:00
2025-04-24 13:40:54 -05:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2025-04-25 08:16:35 -05:00
2026-03-03 13:14:24 +00:00
2023-07-05 06:11:16 -07:00
2026-03-07 01:53:53 +01:00
2025-04-15 16:00:54 +01:00
2025-08-26 14:04:27 +02:00
2025-08-26 14:04:27 +02:00
2024-11-08 14:48:55 +00:00
2025-10-20 19:26:30 -07:00
2024-11-06 08:07:02 +00:00
2023-07-05 06:11:16 -07:00
2025-10-08 13:37:53 -07:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2025-05-27 10:30:17 +01:00
2026-03-03 13:14:24 +00:00
2024-11-19 07:56:55 +00:00
2023-07-05 06:11:16 -07:00
2025-10-17 16:13:26 +02:00
2023-07-05 06:11:16 -07:00
2025-04-25 08:16:35 -05:00
2026-02-05 15:39:08 +00:00
2024-11-19 09:44:42 +00:00
2026-03-16 15:44:53 +01:00
2024-11-19 07:56:55 +00:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2025-05-08 13:11:38 +01:00
2025-05-08 13:11:38 +01:00
2025-10-02 14:40:14 +02:00
2026-02-13 11:18:04 +01:00
2025-05-08 13:11:38 +01:00
2025-04-15 16:00:54 +01:00
2025-06-03 16:44:51 -07:00
2025-08-20 15:23:31 +00:00
2025-06-03 16:44:51 -07:00
2025-08-20 15:23:31 +00:00
2025-12-19 18:05:06 +01:00
2025-12-19 18:05:06 +01:00
2025-06-03 16:44:51 -07:00
2025-08-20 15:23:31 +00:00
2026-02-04 22:03:38 +01:00
2026-02-04 22:03:38 +01:00
2026-02-04 22:03:38 +01:00
2025-07-17 19:30:28 -06:00
2025-07-17 19:30:28 -06:00
2025-07-17 19:30:28 -06:00
2024-11-19 08:58:29 +00:00
2025-10-17 20:03:13 +02:00
2025-04-15 15:39:01 +00:00
2025-11-24 14:29:52 +01:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2026-02-11 11:51:57 +01:00
2025-04-24 13:40:54 -05:00
2025-10-08 16:32:05 +02:00
2025-05-12 08:32:57 -05:00
2023-07-05 06:11:16 -07:00
2026-03-03 13:14:24 +00:00
2024-11-04 23:16:21 +00:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2024-11-19 08:50:01 +00:00
2025-05-08 13:11:38 +01:00
2024-11-07 08:58:43 +00:00
2025-05-07 10:09:12 +01:00
2026-03-03 13:14:24 +00:00
2025-04-24 13:40:54 -05:00
2025-04-24 13:40:54 -05:00
2025-04-24 13:40:54 -05:00
2025-10-17 20:03:13 +02:00
2025-08-21 21:05:20 +00:00
2024-11-07 08:58:43 +00:00
2024-11-07 08:58:43 +00:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2025-10-17 20:03:13 +02:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2025-04-24 07:28:50 -05:00
2024-11-07 08:58:43 +00:00
2024-11-19 07:56:55 +00:00
2024-11-19 07:56:55 +00:00
2023-07-05 06:11:16 -07:00
2024-11-08 14:48:55 +00:00
2024-11-19 08:58:29 +00:00
2023-08-15 02:17:40 +00:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2025-04-24 07:28:50 -05:00
2025-04-24 07:28:50 -05:00
2024-11-06 08:35:52 +00:00
2023-11-08 16:14:10 +00:00
2024-10-20 23:00:23 +00:00
2025-11-21 11:11:12 +01:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2025-10-17 16:13:26 +02:00
2025-10-17 16:13:26 +02:00
2025-10-17 16:13:26 +02:00
2025-10-17 16:13:26 +02:00
2025-10-17 16:13:26 +02:00
2025-10-17 16:13:26 +02:00
2023-07-05 06:11:16 -07:00
2025-05-15 14:26:19 +01:00
2026-03-03 13:14:24 +00:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2024-11-05 07:28:23 +00:00
2026-03-03 13:14:24 +00:00
2023-07-05 06:11:16 -07:00
2023-07-05 06:11:16 -07:00
2025-05-08 13:11:38 +01:00
2025-05-08 13:11:38 +01:00
2025-10-09 15:20:52 -06:00
2025-04-22 08:44:58 -05:00
2025-04-25 08:08:57 +01:00
2023-07-05 06:11:16 -07:00
2025-04-24 07:28:50 -05:00
2024-11-08 11:20:34 -08:00
2026-03-03 13:14:24 +00:00
2024-11-06 08:16:40 +00:00
2023-07-05 06:11:16 -07:00
2024-11-08 14:48:55 +00:00
2025-04-15 16:00:54 +01:00
2026-02-24 15:38:49 +01:00
2025-05-12 08:32:57 -05:00
2024-11-07 08:58:43 +00:00