Home / File/ server.ts — astro Source File

server.ts — astro Source File

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

File typescript CoreAstro CoreMiddleware 7 imports 2 functions

Entity Profile

Dependency Diagram

graph LR
  d0de5327_5e5a_8e1a_12da_157bf4a85e96["server.ts"]
  452aba20_c5dd_d534_5a48_cfe44988ef3c["./context.js"]
  d0de5327_5e5a_8e1a_12da_157bf4a85e96 --> 452aba20_c5dd_d534_5a48_cfe44988ef3c
  d768d4dc_95e0_cf54_1925_986c1d407d73["./static-html.js"]
  d0de5327_5e5a_8e1a_12da_157bf4a85e96 --> d768d4dc_95e0_cf54_1925_986c1d407d73
  e0ce394f_3cf8_2d6b_b842_efcba9df723e["./types.js"]
  d0de5327_5e5a_8e1a_12da_157bf4a85e96 --> e0ce394f_3cf8_2d6b_b842_efcba9df723e
  424749a0_0df4_313e_4a43_2972786b85fe["virtual:astro:vue-app"]
  d0de5327_5e5a_8e1a_12da_157bf4a85e96 --> 424749a0_0df4_313e_4a43_2972786b85fe
  f16d8c76_2866_6150_bd14_0347b59abfe9["astro"]
  d0de5327_5e5a_8e1a_12da_157bf4a85e96 --> f16d8c76_2866_6150_bd14_0347b59abfe9
  58645bbc_6680_4e2a_38e9_3e4f34edbed5["vue"]
  d0de5327_5e5a_8e1a_12da_157bf4a85e96 --> 58645bbc_6680_4e2a_38e9_3e4f34edbed5
  27f5dff1_da0b_4b1b_58f4_0f6c36905db8["server-renderer"]
  d0de5327_5e5a_8e1a_12da_157bf4a85e96 --> 27f5dff1_da0b_4b1b_58f4_0f6c36905db8
  style d0de5327_5e5a_8e1a_12da_157bf4a85e96 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { setup } from 'virtual:astro:vue-app';
import type { AstroComponentMetadata, NamedSSRLoadedRendererValue } from 'astro';
import { createSSRApp, h } from 'vue';
import { renderToString } from 'vue/server-renderer';
import { incrementId } from './context.js';
import StaticHtml from './static-html.js';
import type { RendererContext } from './types.js';

async function check(Component: any) {
	return !!Component['ssrRender'] || !!Component['__ssrInlineRender'];
}

async function renderToStaticMarkup(
	this: RendererContext,
	Component: any,
	inputProps: Record<string, any>,
	slotted: Record<string, any>,
	metadata?: AstroComponentMetadata,
) {
	let prefix;
	if (this && this.result) {
		prefix = incrementId(this.result);
	}
	const attrs: Record<string, any> = { prefix };

	const slots: Record<string, any> = {};
	const props = { ...inputProps };
	delete props.slot;
	for (const [key, value] of Object.entries(slotted)) {
		slots[key] = () =>
			h(StaticHtml, {
				value,
				name: key === 'default' ? undefined : key,
				// Adjust how this is hydrated only when the version of Astro supports `astroStaticSlot`
				hydrate: metadata?.astroStaticSlot ? !!metadata.hydrate : true,
			});
	}
	const app = createSSRApp({ render: () => h(Component, props, slots) });
	app.config.idPrefix = prefix;
	await setup(app);
	const html = await renderToString(app);
	return { html, attrs };
}

const renderer: NamedSSRLoadedRendererValue = {
	name: '@astrojs/vue',
	check,
	renderToStaticMarkup,
	supportsAstroStaticSlot: true,
};

export default renderer;

Domain

Subdomains

Dependencies

  • ./context.js
  • ./static-html.js
  • ./types.js
  • astro
  • server-renderer
  • virtual:astro:vue-app
  • vue

Frequently Asked Questions

What does server.ts do?
server.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, CoreMiddleware subdomain.
What functions are defined in server.ts?
server.ts defines 2 function(s): check, renderToStaticMarkup.
What does server.ts depend on?
server.ts imports 7 module(s): ./context.js, ./static-html.js, ./types.js, astro, server-renderer, virtual:astro:vue-app, vue.
Where is server.ts in the architecture?
server.ts is located at packages/integrations/vue/src/server.ts (domain: CoreAstro, subdomain: CoreMiddleware, directory: packages/integrations/vue/src).

Analyze Your Own Codebase

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

Try Supermodel Free