server.ts — astro Source File
Architecture documentation for server.ts, a typescript file in the astro codebase. 7 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 88d29d84_fc17_43e9_f02f_9b64acf73dd5["server.ts"] 1c4a5f6b_4be0_5bef_0fc7_8439f7c73106["./context.js"] 88d29d84_fc17_43e9_f02f_9b64acf73dd5 --> 1c4a5f6b_4be0_5bef_0fc7_8439f7c73106 5d6f4037_5bea_5d26_d23c_0c9bcb7db079["./static-html.js"] 88d29d84_fc17_43e9_f02f_9b64acf73dd5 --> 5d6f4037_5bea_5d26_d23c_0c9bcb7db079 df5f3381_d28d_f520_0dbe_bb088893ef11["./types.js"] 88d29d84_fc17_43e9_f02f_9b64acf73dd5 --> df5f3381_d28d_f520_0dbe_bb088893ef11 f67bc8aa_309f_a15b_0d5b_327e8fb9afe1["astro:react:opts"] 88d29d84_fc17_43e9_f02f_9b64acf73dd5 --> f67bc8aa_309f_a15b_0d5b_327e8fb9afe1 f16d8c76_2866_6150_bd14_0347b59abfe9["astro"] 88d29d84_fc17_43e9_f02f_9b64acf73dd5 --> f16d8c76_2866_6150_bd14_0347b59abfe9 d9988dd0_c044_f9d2_85cd_a31a0a2bdf80["react"] 88d29d84_fc17_43e9_f02f_9b64acf73dd5 --> d9988dd0_c044_f9d2_85cd_a31a0a2bdf80 72c29c28_0c5e_16fd_13f7_f42c45a83f93["server"] 88d29d84_fc17_43e9_f02f_9b64acf73dd5 --> 72c29c28_0c5e_16fd_13f7_f42c45a83f93 style 88d29d84_fc17_43e9_f02f_9b64acf73dd5 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import opts from 'astro:react:opts';
import type { AstroComponentMetadata, NamedSSRLoadedRendererValue } from 'astro';
import React from 'react';
import ReactDOM from 'react-dom/server';
import { incrementId } from './context.js';
import StaticHtml from './static-html.js';
import type { RendererContext } from './types.js';
const slotName = (str: string) => str.trim().replace(/[-_]([a-z])/g, (_, w) => w.toUpperCase());
const reactTypeof = Symbol.for('react.element');
const reactTransitionalTypeof = Symbol.for('react.transitional.element');
async function check(
this: RendererContext,
Component: any,
props: Record<string, any>,
children: any,
) {
// Note: there are packages that do some unholy things to create "components".
// Checking the $$typeof property catches most of these patterns.
if (typeof Component === 'object') {
return Component['$$typeof'].toString().slice('Symbol('.length).startsWith('react');
}
if (typeof Component !== 'function') return false;
if (Component.name === 'QwikComponent') return false;
// Preact forwarded-ref components can be functions, which React does not support
if (typeof Component === 'function' && Component['$$typeof'] === Symbol.for('react.forward_ref'))
return false;
if (Component.prototype != null && typeof Component.prototype.render === 'function') {
return React.Component.isPrototypeOf(Component) || React.PureComponent.isPrototypeOf(Component);
}
let isReactComponent = false;
function Tester(...args: Array<any>) {
try {
const vnode = Component(...args);
if (
vnode &&
(vnode['$$typeof'] === reactTypeof || vnode['$$typeof'] === reactTransitionalTypeof)
) {
isReactComponent = true;
}
} catch {}
return React.createElement('div');
}
await renderToStaticMarkup.call(this, Tester, props, children);
return isReactComponent;
}
async function getNodeWritable(): Promise<typeof import('node:stream').Writable> {
let nodeStreamBuiltinModuleName = 'node:stream';
let { Writable } = await import(/* @vite-ignore */ nodeStreamBuiltinModuleName);
return Writable;
}
// ... (170 more lines)
Domain
Subdomains
Functions
Dependencies
- ./context.js
- ./static-html.js
- ./types.js
- astro
- astro:react:opts
- react
- server
Source
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 10 function(s): check, getFormState, getNodeWritable, isFormRequest, needsHydration, readResult, renderToPipeableStreamAsync, renderToReadableStreamAsync, renderToStaticMarkup, slotName.
What does server.ts depend on?
server.ts imports 7 module(s): ./context.js, ./static-html.js, ./types.js, astro, astro:react:opts, react, server.
Where is server.ts in the architecture?
server.ts is located at packages/integrations/react/src/server.ts (domain: CoreAstro, subdomain: CoreMiddleware, directory: packages/integrations/react/src).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free