Home / File/ plugin.ts — astro Source File

plugin.ts — astro Source File

Architecture documentation for plugin.ts, a typescript file in the astro codebase. 24 imports, 0 dependents.

File typescript CoreAstro RenderingEngine 24 imports 2 functions

Entity Profile

Dependency Diagram

graph LR
  75a8e8ea_e89a_9f2f_f147_95a5b4ca1f90["plugin.ts"]
  e9dfb380_680c_13fb_c9d4_a88e777254bd["../core/app/common.js"]
  75a8e8ea_e89a_9f2f_f147_95a5b4ca1f90 --> e9dfb380_680c_13fb_c9d4_a88e777254bd
  97dbad4f_4a90_206c_6e29_6a54c12480f2["../core/app/index.js"]
  75a8e8ea_e89a_9f2f_f147_95a5b4ca1f90 --> 97dbad4f_4a90_206c_6e29_6a54c12480f2
  a4f2698c_5256_262a_ba7c_f72b51878d10["../core/app/types.js"]
  75a8e8ea_e89a_9f2f_f147_95a5b4ca1f90 --> a4f2698c_5256_262a_ba7c_f72b51878d10
  7216d952_4e4a_2d18_a85b_74b4ace79e2b["../core/constants.js"]
  75a8e8ea_e89a_9f2f_f147_95a5b4ca1f90 --> 7216d952_4e4a_2d18_a85b_74b4ace79e2b
  6fe92471_5113_a0cf_c232_c87e5712a05f["../core/csp/common.js"]
  75a8e8ea_e89a_9f2f_f147_95a5b4ca1f90 --> 6fe92471_5113_a0cf_c232_c87e5712a05f
  dd2fe7bd_2244_3ff4_38ec_5e07763d1492["../core/encryption.js"]
  75a8e8ea_e89a_9f2f_f147_95a5b4ca1f90 --> dd2fe7bd_2244_3ff4_38ec_5e07763d1492
  0e18005f_823b_9864_a584_bf040da30d0c["../core/errors/dev/index.js"]
  75a8e8ea_e89a_9f2f_f147_95a5b4ca1f90 --> 0e18005f_823b_9864_a584_bf040da30d0c
  ef8a1e3f_e350_75a6_b92d_62a8566d8db9["../core/errors/index.js"]
  75a8e8ea_e89a_9f2f_f147_95a5b4ca1f90 --> ef8a1e3f_e350_75a6_b92d_62a8566d8db9
  d3861967_b647_84d2_ff48_15013353bd56["../core/logger/core.js"]
  75a8e8ea_e89a_9f2f_f147_95a5b4ca1f90 --> d3861967_b647_84d2_ff48_15013353bd56
  52dc42d6_2faa_3b2c_8099_7f9b545b1154["../core/middleware/noop-middleware.js"]
  75a8e8ea_e89a_9f2f_f147_95a5b4ca1f90 --> 52dc42d6_2faa_3b2c_8099_7f9b545b1154
  32f8c7d4_d66e_e0cf_b019_46ec3f2fea31["../core/module-loader/index.js"]
  75a8e8ea_e89a_9f2f_f147_95a5b4ca1f90 --> 32f8c7d4_d66e_e0cf_b019_46ec3f2fea31
  31036a74_f7c5_ea7e_9a2b_48816d66a722["../manifest/serialized.js"]
  75a8e8ea_e89a_9f2f_f147_95a5b4ca1f90 --> 31036a74_f7c5_ea7e_9a2b_48816d66a722
  e9b74c5a_8d34_34a7_e196_5e41b87214aa["../types/astro.js"]
  75a8e8ea_e89a_9f2f_f147_95a5b4ca1f90 --> e9b74c5a_8d34_34a7_e196_5e41b87214aa
  a2023f7a_d4c4_04f3_7368_17f9e1eadff1["../vite-plugin-app/index.js"]
  75a8e8ea_e89a_9f2f_f147_95a5b4ca1f90 --> a2023f7a_d4c4_04f3_7368_17f9e1eadff1
  style 75a8e8ea_e89a_9f2f_f147_95a5b4ca1f90 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { AsyncLocalStorage } from 'node:async_hooks';
import { IncomingMessage } from 'node:http';
import type * as vite from 'vite';
import { isRunnableDevEnvironment, type RunnableDevEnvironment } from 'vite';
import { toFallbackType } from '../core/app/common.js';
import { toRoutingStrategy } from '../core/app/index.js';
import type { SSRManifest, SSRManifestCSP, SSRManifestI18n } from '../core/app/types.js';
import { ASTRO_VITE_ENVIRONMENT_NAMES } from '../core/constants.js';
import {
	getAlgorithm,
	getDirectives,
	getScriptHashes,
	getScriptResources,
	getStrictDynamic,
	getStyleHashes,
	getStyleResources,
	shouldTrackCspHashes,
} from '../core/csp/common.js';
import { createKey, getEnvironmentKey, hasEnvironmentKey } from '../core/encryption.js';
import { getViteErrorPayload } from '../core/errors/dev/index.js';
import { AstroError, AstroErrorData } from '../core/errors/index.js';
import type { Logger } from '../core/logger/core.js';
import { NOOP_MIDDLEWARE_FN } from '../core/middleware/noop-middleware.js';
import { createViteLoader } from '../core/module-loader/index.js';
import { SERIALIZED_MANIFEST_ID } from '../manifest/serialized.js';
import type { AstroSettings } from '../types/astro.js';
import { ASTRO_DEV_SERVER_APP_ID } from '../vite-plugin-app/index.js';
import { baseMiddleware } from './base.js';
import { createController } from './controller.js';
import { recordServerError } from './error.js';
import { setRouteError } from './server-state.js';
import { routeGuardMiddleware } from './route-guard.js';
import { trailingSlashMiddleware } from './trailing-slash.js';
import { sessionConfigToManifest } from '../core/session/utils.js';

interface AstroPluginOptions {
	settings: AstroSettings;
	logger: Logger;
}

export default function createVitePluginAstroServer({
	settings,
	logger,
}: AstroPluginOptions): vite.Plugin {
	return {
		name: 'astro:server',
		applyToEnvironment(environment) {
			return environment.name === ASTRO_VITE_ENVIRONMENT_NAMES.ssr;
		},
		async configureServer(viteServer) {
			// Cloudflare handles its own requests
			// TODO: let this handle non-runnable environments that don't intercept requests
			if (!isRunnableDevEnvironment(viteServer.environments[ASTRO_VITE_ENVIRONMENT_NAMES.ssr])) {
				return;
			}
			const environment = viteServer.environments[
				ASTRO_VITE_ENVIRONMENT_NAMES.ssr
			] as RunnableDevEnvironment;
			const loader = createViteLoader(viteServer, environment);
			const { default: createAstroServerApp } =
// ... (155 more lines)

Domain

Subdomains

Dependencies

  • ../core/app/common.js
  • ../core/app/index.js
  • ../core/app/types.js
  • ../core/constants.js
  • ../core/csp/common.js
  • ../core/encryption.js
  • ../core/errors/dev/index.js
  • ../core/errors/index.js
  • ../core/logger/core.js
  • ../core/middleware/noop-middleware.js
  • ../core/module-loader/index.js
  • ../core/session/utils.js
  • ../manifest/serialized.js
  • ../types/astro.js
  • ../vite-plugin-app/index.js
  • ./base.js
  • ./controller.js
  • ./error.js
  • ./route-guard.js
  • ./server-state.js
  • ./trailing-slash.js
  • node:async_hooks
  • node:http
  • vite

Frequently Asked Questions

What does plugin.ts do?
plugin.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 plugin.ts?
plugin.ts defines 2 function(s): createDevelopmentManifest, createVitePluginAstroServer.
What does plugin.ts depend on?
plugin.ts imports 24 module(s): ../core/app/common.js, ../core/app/index.js, ../core/app/types.js, ../core/constants.js, ../core/csp/common.js, ../core/encryption.js, ../core/errors/dev/index.js, ../core/errors/index.js, and 16 more.
Where is plugin.ts in the architecture?
plugin.ts is located at packages/astro/src/vite-plugin-astro-server/plugin.ts (domain: CoreAstro, subdomain: RenderingEngine, directory: packages/astro/src/vite-plugin-astro-server).

Analyze Your Own Codebase

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

Try Supermodel Free