( assetPrefix: string, route: string )
| 206 | css: string[] |
| 207 | } |
| 208 | function getFilesForRoute( |
| 209 | assetPrefix: string, |
| 210 | route: string |
| 211 | ): Promise<RouteFiles> { |
| 212 | if (process.env.NODE_ENV === 'development') { |
| 213 | const scriptUrl = |
| 214 | assetPrefix + |
| 215 | '/_next/static/chunks/pages' + |
| 216 | encodeURIPath(getAssetPathFromRoute(route, '.js')) + |
| 217 | getAssetTokenQuery() |
| 218 | return Promise.resolve({ |
| 219 | scripts: [__unsafeCreateTrustedScriptURL(scriptUrl)], |
| 220 | // Styles are handled by `style-loader` in development: |
| 221 | css: [], |
| 222 | }) |
| 223 | } |
| 224 | return getClientBuildManifest().then((manifest) => { |
| 225 | if (!(route in manifest)) { |
| 226 | throw markAssetError(new Error(`Failed to lookup route: ${route}`)) |
| 227 | } |
| 228 | const allFiles = manifest[route].map( |
| 229 | (entry) => assetPrefix + '/_next/' + encodeURIPath(entry) |
| 230 | ) |
| 231 | return { |
| 232 | scripts: allFiles |
| 233 | .filter((v) => v.endsWith('.js')) |
| 234 | .map((v) => __unsafeCreateTrustedScriptURL(v) + getAssetTokenQuery()), |
| 235 | css: allFiles |
| 236 | .filter((v) => v.endsWith('.css')) |
| 237 | .map((v) => v + getAssetTokenQuery()), |
| 238 | } |
| 239 | }) |
| 240 | } |
| 241 | |
| 242 | export function createRouteLoader(assetPrefix: string): RouteLoader { |
| 243 | const entrypoints: Map<string, Future<RouteEntrypoint> | RouteEntrypoint> = |
no test coverage detected