plugin.ts — astro Source File
Architecture documentation for plugin.ts, a typescript file in the astro codebase. 24 imports, 0 dependents.
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
Types
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
Source
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