manifest.ts — astro Source File
Architecture documentation for manifest.ts, a typescript file in the astro codebase. 5 imports, 0 dependents.
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
Functions
Dependencies
- ../core/app/types.js
- ../core/encryption.js
- ../core/middleware/noop-middleware.js
- ../types/astro.js
- ../types/public/index.js
Source
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