Home / Function/ toRoutingStrategy() — astro Function Reference

toRoutingStrategy() — astro Function Reference

Architecture documentation for the toRoutingStrategy() function in common.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  2ba084a0_1044_b34b_6df5_6b2543f08789["toRoutingStrategy()"]
  068dc89e_9fd0_297e_43a8_0a310f749aeb["common.ts"]
  2ba084a0_1044_b34b_6df5_6b2543f08789 -->|defined in| 068dc89e_9fd0_297e_43a8_0a310f749aeb
  style 2ba084a0_1044_b34b_6df5_6b2543f08789 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/astro/src/core/app/common.ts lines 12–45

export function toRoutingStrategy(
	routing: NonNullable<AstroConfig['i18n']>['routing'],
	domains: NonNullable<AstroConfig['i18n']>['domains'],
): RoutingStrategies {
	let strategy: RoutingStrategies;
	const hasDomains = domains ? Object.keys(domains).length > 0 : false;
	if (routing === 'manual') {
		strategy = 'manual';
	} else {
		if (!hasDomains) {
			if (routing?.prefixDefaultLocale === true) {
				if (routing.redirectToDefaultLocale) {
					strategy = 'pathname-prefix-always';
				} else {
					strategy = 'pathname-prefix-always-no-redirect';
				}
			} else {
				strategy = 'pathname-prefix-other-locales';
			}
		} else {
			if (routing?.prefixDefaultLocale === true) {
				if (routing.redirectToDefaultLocale) {
					strategy = 'domains-prefix-always';
				} else {
					strategy = 'domains-prefix-always-no-redirect';
				}
			} else {
				strategy = 'domains-prefix-other-locales';
			}
		}
	}

	return strategy;
}

Domain

Subdomains

Frequently Asked Questions

What does toRoutingStrategy() do?
toRoutingStrategy() is a function in the astro codebase, defined in packages/astro/src/core/app/common.ts.
Where is toRoutingStrategy() defined?
toRoutingStrategy() is defined in packages/astro/src/core/app/common.ts at line 12.

Analyze Your Own Codebase

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

Try Supermodel Free