Home / File/ vite-plugin-transitions.ts — astro Source File

vite-plugin-transitions.ts — astro Source File

Architecture documentation for vite-plugin-transitions.ts, a typescript file in the astro codebase. 2 imports, 0 dependents.

File typescript CoreAstro RenderingEngine 2 imports 1 functions

Entity Profile

Dependency Diagram

graph LR
  81fffbb6_be53_d1b3_25c1_27928958845c["vite-plugin-transitions.ts"]
  e9b74c5a_8d34_34a7_e196_5e41b87214aa["../types/astro.js"]
  81fffbb6_be53_d1b3_25c1_27928958845c --> e9b74c5a_8d34_34a7_e196_5e41b87214aa
  263e522e_1aa5_ebc3_e7d6_45ebc51671f7["vite"]
  81fffbb6_be53_d1b3_25c1_27928958845c --> 263e522e_1aa5_ebc3_e7d6_45ebc51671f7
  style 81fffbb6_be53_d1b3_25c1_27928958845c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type * as vite from 'vite';
import type { AstroSettings } from '../types/astro.js';

const VIRTUAL_MODULE_ID = 'astro:transitions';
const RESOLVED_VIRTUAL_MODULE_ID = '\0' + VIRTUAL_MODULE_ID;
const VIRTUAL_CLIENT_MODULE_ID = 'astro:transitions/client';
const RESOLVED_VIRTUAL_CLIENT_MODULE_ID = '\0' + VIRTUAL_CLIENT_MODULE_ID;

// The virtual module for the astro:transitions namespace
export default function astroTransitions({ settings }: { settings: AstroSettings }): vite.Plugin {
	return {
		name: 'astro:transitions',
		config() {
			return {
				optimizeDeps: {
					include: ['astro > cssesc'],
				},
			};
		},
		resolveId: {
			filter: {
				id: new RegExp(`^(${VIRTUAL_MODULE_ID}|${VIRTUAL_CLIENT_MODULE_ID})$`),
			},
			handler(id) {
				if (id === VIRTUAL_MODULE_ID) {
					return RESOLVED_VIRTUAL_MODULE_ID;
				}
				if (id === VIRTUAL_CLIENT_MODULE_ID) {
					return RESOLVED_VIRTUAL_CLIENT_MODULE_ID;
				}
			},
		},
		load: {
			filter: {
				id: new RegExp(`^(${RESOLVED_VIRTUAL_MODULE_ID}|${RESOLVED_VIRTUAL_CLIENT_MODULE_ID})$`),
			},
			handler(id) {
				if (id === RESOLVED_VIRTUAL_MODULE_ID) {
					return {
						code: `
						export * from "astro/virtual-modules/transitions.js";
						export { default as ClientRouter } from "astro/components/ClientRouter.astro";
					`,
					};
				}
				if (id === RESOLVED_VIRTUAL_CLIENT_MODULE_ID) {
					return {
						code: `
						export { navigate, supportsViewTransitions, transitionEnabledOnThisPage } from "astro/virtual-modules/transitions-router.js";
						export * from "astro/virtual-modules/transitions-types.js";
						export {
							TRANSITION_BEFORE_PREPARATION, isTransitionBeforePreparationEvent, TransitionBeforePreparationEvent,
							TRANSITION_AFTER_PREPARATION,
							TRANSITION_BEFORE_SWAP, isTransitionBeforeSwapEvent, TransitionBeforeSwapEvent,
							TRANSITION_AFTER_SWAP, TRANSITION_PAGE_LOAD
						} from "astro/virtual-modules/transitions-events.js";
						export { swapFunctions } from "astro/virtual-modules/transitions-swap-functions.js";
					`,
					};
				}
			},
		},
		transform: {
			filter: {
				id: /ClientRouter\.astro.*\.ts$/,
			},
			handler(code) {
				const prefetchDisabled = settings.config.prefetch === false;
				return code.replace('__PREFETCH_DISABLED__', JSON.stringify(prefetchDisabled));
			},
		},
	};
}

Domain

Subdomains

Functions

Dependencies

  • ../types/astro.js
  • vite

Frequently Asked Questions

What does vite-plugin-transitions.ts do?
vite-plugin-transitions.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, RenderingEngine subdomain.
What functions are defined in vite-plugin-transitions.ts?
vite-plugin-transitions.ts defines 1 function(s): astroTransitions.
What does vite-plugin-transitions.ts depend on?
vite-plugin-transitions.ts imports 2 module(s): ../types/astro.js, vite.
Where is vite-plugin-transitions.ts in the architecture?
vite-plugin-transitions.ts is located at packages/astro/src/transitions/vite-plugin-transitions.ts (domain: CoreAstro, subdomain: RenderingEngine, directory: packages/astro/src/transitions).

Analyze Your Own Codebase

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

Try Supermodel Free