Home / Function/ createInjectedRoutes() — astro Function Reference

createInjectedRoutes() — astro Function Reference

Architecture documentation for the createInjectedRoutes() function in create.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  45eeb620_478e_aa03_8346_e477fdcca943["createInjectedRoutes()"]
  a7eed989_9f2b_5163_ecdf_85920a8b973f["create.ts"]
  45eeb620_478e_aa03_8346_e477fdcca943 -->|defined in| a7eed989_9f2b_5163_ecdf_85920a8b973f
  980f5a1b_85ee_0217_7a04_888abfb8f70f["createRoutesList()"]
  980f5a1b_85ee_0217_7a04_888abfb8f70f -->|calls| 45eeb620_478e_aa03_8346_e477fdcca943
  46b89a4d_e243_6e0b_33b0_9fc5feb3e14f["resolveInjectedRoute()"]
  45eeb620_478e_aa03_8346_e477fdcca943 -->|calls| 46b89a4d_e243_6e0b_33b0_9fc5feb3e14f
  1238e67c_a57d_fa2d_67fb_033b7f31b2ba["getParts()"]
  45eeb620_478e_aa03_8346_e477fdcca943 -->|calls| 1238e67c_a57d_fa2d_67fb_033b7f31b2ba
  1b408d2e_6c62_4027_ae00_57b93199c0e0["trailingSlashForPath()"]
  45eeb620_478e_aa03_8346_e477fdcca943 -->|calls| 1b408d2e_6c62_4027_ae00_57b93199c0e0
  83ef6580_f43d_b634_d2ed_d70e0633249d["joinSegments()"]
  45eeb620_478e_aa03_8346_e477fdcca943 -->|calls| 83ef6580_f43d_b634_d2ed_d70e0633249d
  style 45eeb620_478e_aa03_8346_e477fdcca943 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/astro/src/core/routing/manifest/create.ts lines 267–316

function createInjectedRoutes({ settings, cwd }: CreateRouteManifestParams): RouteData[] {
	const { config } = settings;
	const prerender = getPrerenderDefault(config);

	const routes: RouteData[] = [];

	for (const injectedRoute of settings.injectedRoutes) {
		const { pattern: name, entrypoint, prerender: prerenderInjected, origin } = injectedRoute;
		const { resolved, component } = resolveInjectedRoute(entrypoint.toString(), config.root, cwd);

		const segments = removeLeadingForwardSlash(name)
			.split(path.posix.sep)
			.filter(Boolean)
			.map((s: string) => {
				validateSegment(s);
				return getParts(s, component);
			});

		const type = resolved.endsWith('.astro') ? 'page' : 'endpoint';
		const pathname = segments.every((segment) => segment.length === 1 && !segment[0].dynamic)
			? `/${segments.map((segment) => segment[0].content).join('/')}`
			: null;

		const trailingSlash = trailingSlashForPath(pathname, config);
		const pattern = getPattern(segments, settings.config.base, trailingSlash);
		const params = segments
			.flat()
			.filter((p) => p.dynamic)
			.map((p) => p.content);
		const route = joinSegments(segments);

		routes.push({
			type,
			// For backwards compatibility, an injected route is never considered an index route.
			isIndex: false,
			route,
			pattern,
			segments,
			params,
			component,
			pathname: pathname || void 0,
			prerender: prerenderInjected ?? prerender,
			fallbackRoutes: [],
			distURL: [],
			origin,
		});
	}

	return routes;
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does createInjectedRoutes() do?
createInjectedRoutes() is a function in the astro codebase, defined in packages/astro/src/core/routing/manifest/create.ts.
Where is createInjectedRoutes() defined?
createInjectedRoutes() is defined in packages/astro/src/core/routing/manifest/create.ts at line 267.
What does createInjectedRoutes() call?
createInjectedRoutes() calls 4 function(s): getParts, joinSegments, resolveInjectedRoute, trailingSlashForPath.
What calls createInjectedRoutes()?
createInjectedRoutes() is called by 1 function(s): createRoutesList.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free