Home / File/ manifest.ts — astro Source File

manifest.ts — astro Source File

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

Entity Profile

Dependency Diagram

graph LR
  100fc1f9_fbec_d0b6_dc7f_907942d3ae99["manifest.ts"]
  a4f2698c_5256_262a_ba7c_f72b51878d10["../core/app/types.js"]
  100fc1f9_fbec_d0b6_dc7f_907942d3ae99 --> a4f2698c_5256_262a_ba7c_f72b51878d10
  c32d12e2_d85e_28c0_eea7_9b29629857e0["../types/public/config.js"]
  100fc1f9_fbec_d0b6_dc7f_907942d3ae99 --> c32d12e2_d85e_28c0_eea7_9b29629857e0
  style 100fc1f9_fbec_d0b6_dc7f_907942d3ae99 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/**
 * **IMPORTANT**: use the `Pick` interface to select only the properties that we want to expose
 * to the users. Using blanket types could expose properties that we don't want. So if we decide to expose
 * properties, we need to be good at justifying them. For example: why you need this config? can't you use an integration?
 * why do you need access to the shiki config? (very low-level confiig)
 */

import type { SSRManifest } from '../../core/app/types.js';
import type { AstroConfig } from './config.js';

// do not export
type Extend<T, U> = { [K in keyof T]: T[K] | U };

// do not export
type Dirs = Pick<SSRManifest, 'cacheDir' | 'outDir' | 'publicDir' | 'srcDir'>;

// do not export
type DeserializedDirs = Extend<Dirs, URL>;

// Export types after this comment

export type ServerDeserializedManifest = Pick<
	SSRManifest,
	'base' | 'trailingSlash' | 'compressHTML' | 'site'
> &
	DeserializedDirs & {
		i18n: AstroConfig['i18n'];
		build: Pick<AstroConfig['build'], 'server' | 'client' | 'format'>;
		root: URL;
	};

export type ClientDeserializedManifest = Pick<
	SSRManifest,
	'base' | 'trailingSlash' | 'compressHTML' | 'site'
> & {
	i18n: AstroConfig['i18n'];
	build: Pick<AstroConfig['build'], 'format'>;
};

Domain

Dependencies

  • ../core/app/types.js
  • ../types/public/config.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.
What does manifest.ts depend on?
manifest.ts imports 2 module(s): ../core/app/types.js, ../types/public/config.js.
Where is manifest.ts in the architecture?
manifest.ts is located at packages/astro/src/types/public/manifest.ts (domain: CoreAstro, directory: packages/astro/src/types/public).

Analyze Your Own Codebase

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

Try Supermodel Free