| Server IP : 159.203.156.69 / Your IP : 216.73.217.172 Web Server : nginx/1.24.0 System : Linux main-ubuntu 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/tanviranik.com/node_modules/vinext/dist/server/ |
Upload File : |
{"version":3,"file":"app-prerender-endpoints.js","names":[],"sources":["../../src/server/app-prerender-endpoints.ts"],"sourcesContent":["import { callAppPrerenderStaticParams } from \"./app-prerender-static-params.js\";\nimport { notFoundResponse } from \"./http-error-responses.js\";\nimport type { RootParams } from \"vinext/shims/root-params\";\n\ntype GenerateStaticParams = (args: { params: RootParams }) => unknown;\n\ntype AppPrerenderStaticParamsMap = Record<string, GenerateStaticParams | null | undefined>;\ntype RootParamNamesMap = Record<string, readonly string[] | undefined>;\n\ntype AppPrerenderPageRoute = {\n pattern: string;\n module?: {\n getStaticPaths?: (opts: { locales: string[]; defaultLocale: string }) => unknown;\n };\n};\n\ntype HandleAppPrerenderEndpointOptions = {\n isPrerenderEnabled?: () => boolean;\n loadPagesRoutes?: () => Promise<unknown>;\n pathname: string;\n rootParamNamesByPattern?: RootParamNamesMap;\n staticParamsMap: AppPrerenderStaticParamsMap;\n};\n\nconst STATIC_PARAMS_ENDPOINT = \"/__vinext/prerender/static-params\";\nconst PAGES_STATIC_PATHS_ENDPOINT = \"/__vinext/prerender/pages-static-paths\";\nconst JSON_HEADERS = { \"content-type\": \"application/json\" };\n\nexport async function handleAppPrerenderEndpoint(\n request: Request,\n options: HandleAppPrerenderEndpointOptions,\n): Promise<Response | null> {\n if (options.pathname === STATIC_PARAMS_ENDPOINT) {\n return handleStaticParamsEndpoint(request, options);\n }\n\n if (options.pathname === PAGES_STATIC_PATHS_ENDPOINT) {\n if (!options.loadPagesRoutes) return null;\n return handlePagesStaticPathsEndpoint(request, options);\n }\n\n return null;\n}\n\nasync function handleStaticParamsEndpoint(\n request: Request,\n options: HandleAppPrerenderEndpointOptions,\n): Promise<Response> {\n if (!isEnabled(options)) {\n return notFoundResponse();\n }\n\n const url = new URL(request.url);\n const pattern = url.searchParams.get(\"pattern\");\n if (!pattern) return new Response(\"missing pattern\", { status: 400 });\n\n const generateStaticParams = options.staticParamsMap[pattern];\n if (typeof generateStaticParams !== \"function\") {\n return jsonNullResponse();\n }\n\n try {\n const params = parseParentParams(url.searchParams.get(\"parentParams\"));\n const result = await callAppPrerenderStaticParams({\n fn: generateStaticParams,\n params,\n pattern,\n rootParamNamesByPattern: options.rootParamNamesByPattern ?? {},\n });\n return jsonResponse(result);\n } catch (error) {\n return jsonResponse({ error: String(error) }, 500);\n }\n}\n\nasync function handlePagesStaticPathsEndpoint(\n request: Request,\n options: HandleAppPrerenderEndpointOptions,\n): Promise<Response> {\n if (!isEnabled(options)) {\n return notFoundResponse();\n }\n\n const url = new URL(request.url);\n const pattern = url.searchParams.get(\"pattern\");\n if (!pattern) return new Response(\"missing pattern\", { status: 400 });\n\n try {\n const pageRoutes = await options.loadPagesRoutes?.();\n const route = findPageRoute(pageRoutes, pattern);\n const getStaticPaths = route?.module?.getStaticPaths;\n if (typeof getStaticPaths !== \"function\") {\n return jsonNullResponse();\n }\n\n const locales = parseLocales(url.searchParams.get(\"locales\"));\n const defaultLocale = url.searchParams.get(\"defaultLocale\") ?? \"\";\n const result = await getStaticPaths({ locales, defaultLocale });\n return jsonResponse(result);\n } catch (error) {\n return jsonResponse({ error: String(error) }, 500);\n }\n}\n\nfunction isEnabled(options: HandleAppPrerenderEndpointOptions): boolean {\n return options.isPrerenderEnabled?.() ?? false;\n}\n\nfunction jsonResponse(body: unknown, status = 200): Response {\n return new Response(JSON.stringify(body), {\n headers: JSON_HEADERS,\n status,\n });\n}\n\nfunction jsonNullResponse(): Response {\n return new Response(\"null\", {\n headers: JSON_HEADERS,\n status: 200,\n });\n}\n\nfunction parseParentParams(raw: string | null): RootParams {\n if (!raw) return {};\n\n const value = JSON.parse(raw);\n if (!isPlainObject(value)) return {};\n\n const params: RootParams = {};\n for (const [key, paramValue] of Object.entries(value)) {\n if (typeof paramValue === \"string\" || paramValue === undefined || isStringArray(paramValue)) {\n params[key] = paramValue;\n }\n }\n return params;\n}\n\nfunction parseLocales(raw: string | null): string[] {\n if (!raw) return [];\n\n const value = JSON.parse(raw);\n if (!Array.isArray(value)) return [];\n\n return value.filter((locale) => typeof locale === \"string\");\n}\n\nfunction findPageRoute(value: unknown, pattern: string): AppPrerenderPageRoute | undefined {\n if (!Array.isArray(value)) return undefined;\n\n for (const route of value) {\n if (isPageRoute(route) && route.pattern === pattern) {\n return route;\n }\n }\n\n return undefined;\n}\n\nfunction isPageRoute(value: unknown): value is AppPrerenderPageRoute {\n if (!isPlainObject(value) || typeof value.pattern !== \"string\") return false;\n if (value.module === undefined) return true;\n if (!isPlainObject(value.module)) return false;\n\n return (\n value.module.getStaticPaths === undefined || typeof value.module.getStaticPaths === \"function\"\n );\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction isStringArray(value: unknown): value is string[] {\n return Array.isArray(value) && value.every((item) => typeof item === \"string\");\n}\n"],"mappings":"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"}