Home / File/ manifest.ts — astro Source File

manifest.ts — astro Source File

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

File typescript CoreAstro RenderingEngine 5 imports 5 functions

Entity Profile

Dependency Diagram

graph LR
  2c745477_c1ed_7475_3247_a93a16501bd9["manifest.ts"]
  e9b74c5a_8d34_34a7_e196_5e41b87214aa["../types/astro.js"]
  2c745477_c1ed_7475_3247_a93a16501bd9 --> e9b74c5a_8d34_34a7_e196_5e41b87214aa
  baa53824_73a3_1e03_2043_4d0c058ecca5["../types/public/index.js"]
  2c745477_c1ed_7475_3247_a93a16501bd9 --> baa53824_73a3_1e03_2043_4d0c058ecca5
  dd2fe7bd_2244_3ff4_38ec_5e07763d1492["../core/encryption.js"]
  2c745477_c1ed_7475_3247_a93a16501bd9 --> dd2fe7bd_2244_3ff4_38ec_5e07763d1492
  52dc42d6_2faa_3b2c_8099_7f9b545b1154["../core/middleware/noop-middleware.js"]
  2c745477_c1ed_7475_3247_a93a16501bd9 --> 52dc42d6_2faa_3b2c_8099_7f9b545b1154
  a4f2698c_5256_262a_ba7c_f72b51878d10["../core/app/types.js"]
  2c745477_c1ed_7475_3247_a93a16501bd9 --> a4f2698c_5256_262a_ba7c_f72b51878d10
  style 2c745477_c1ed_7475_3247_a93a16501bd9 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type { SerializedRouteData } from '../../types/astro.js';
import type { AstroConfig, RouteData } from '../../types/public/index.js';
import type { RoutesList } from '../../types/astro.js';
import { decodeKey } from '../encryption.js';
import { NOOP_MIDDLEWARE_FN } from '../middleware/noop-middleware.js';
import type {
	RouteInfo,
	SerializedSSRManifest,
	SSRManifest,
	SerializedRouteInfo,
} from './types.js';

export type { SerializedRouteData } from '../../types/astro.js';

export function deserializeManifest(
	serializedManifest: SerializedSSRManifest,
	routesList?: RoutesList,
): SSRManifest {
	const routes: RouteInfo[] = [];
	if (serializedManifest.routes) {
		for (const serializedRoute of serializedManifest.routes) {
			routes.push({
				...serializedRoute,
				routeData: deserializeRouteData(serializedRoute.routeData),
			});

			const route = serializedRoute as unknown as RouteInfo;
			route.routeData = deserializeRouteData(serializedRoute.routeData);
		}
	}
	if (routesList) {
		for (const route of routesList?.routes) {
			routes.push({
				file: '',
				links: [],
				scripts: [],
				styles: [],
				routeData: route,
			});
		}
	}
	const assets = new Set<string>(serializedManifest.assets);
	const componentMetadata = new Map(serializedManifest.componentMetadata);
	const inlinedScripts = new Map(serializedManifest.inlinedScripts);
	const clientDirectives = new Map(serializedManifest.clientDirectives);
	const key = decodeKey(serializedManifest.key);

	return {
		// in case user middleware exists, this no-op middleware will be reassigned (see plugin-ssr.ts)
		middleware() {
			return { onRequest: NOOP_MIDDLEWARE_FN };
		},
		...serializedManifest,
		rootDir: new URL(serializedManifest.rootDir),
		srcDir: new URL(serializedManifest.srcDir),
		publicDir: new URL(serializedManifest.publicDir),
		outDir: new URL(serializedManifest.outDir),
		cacheDir: new URL(serializedManifest.cacheDir),
		buildClientDir: new URL(serializedManifest.buildClientDir),
		buildServerDir: new URL(serializedManifest.buildServerDir),
// ... (72 more lines)

Domain

Subdomains

Dependencies

  • ../core/app/types.js
  • ../core/encryption.js
  • ../core/middleware/noop-middleware.js
  • ../types/astro.js
  • ../types/public/index.js

Frequently Asked Questions

What does manifest.ts do?
manifest.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 manifest.ts?
manifest.ts defines 5 function(s): deserializeManifest, deserializeRouteData, deserializeRouteInfo, serializeRouteData, serializeRouteInfo.
What does manifest.ts depend on?
manifest.ts imports 5 module(s): ../core/app/types.js, ../core/encryption.js, ../core/middleware/noop-middleware.js, ../types/astro.js, ../types/public/index.js.
Where is manifest.ts in the architecture?
manifest.ts is located at packages/astro/src/core/app/manifest.ts (domain: CoreAstro, subdomain: RenderingEngine, directory: packages/astro/src/core/app).

Analyze Your Own Codebase

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

Try Supermodel Free