Home / File/ renderer.js — svelte Source File

renderer.js — svelte Source File

Architecture documentation for renderer.js, a javascript file in the svelte codebase. 22 imports, 4 dependents.

File javascript ServerRuntime Renderer 22 imports 4 dependents 2 classes

Entity Profile

Dependency Diagram

graph LR
  25166256_49ce_81f2_0877_fdbc689bed91["renderer.js"]
  3c211218_0172_f6af_dd4f_da8028a531fc["index.js"]
  25166256_49ce_81f2_0877_fdbc689bed91 --> 3c211218_0172_f6af_dd4f_da8028a531fc
  58cbf64d_c2fb_d044_5d52_15a038a16954["abort-signal.js"]
  25166256_49ce_81f2_0877_fdbc689bed91 --> 58cbf64d_c2fb_d044_5d52_15a038a16954
  572ea79b_f4bf_a24e_0f5b_954657c97e84["abort"]
  25166256_49ce_81f2_0877_fdbc689bed91 --> 572ea79b_f4bf_a24e_0f5b_954657c97e84
  54c11eb3_9f61_b300_a3b1_1e9710d714ea["context.js"]
  25166256_49ce_81f2_0877_fdbc689bed91 --> 54c11eb3_9f61_b300_a3b1_1e9710d714ea
  df0cdd9c_f6ec_a739_2719_d244ec719eb0["pop"]
  25166256_49ce_81f2_0877_fdbc689bed91 --> df0cdd9c_f6ec_a739_2719_d244ec719eb0
  fdf60e1d_a02e_0392_dd90_c7667cd3b6fa["push"]
  25166256_49ce_81f2_0877_fdbc689bed91 --> fdf60e1d_a02e_0392_dd90_c7667cd3b6fa
  fd36db6e_7997_3606_5582_56b6e78ced09["set_ssr_context"]
  25166256_49ce_81f2_0877_fdbc689bed91 --> fd36db6e_7997_3606_5582_56b6e78ced09
  0a9a4c5d_b0cb_29b6_9270_06116be9838e["save"]
  25166256_49ce_81f2_0877_fdbc689bed91 --> 0a9a4c5d_b0cb_29b6_9270_06116be9838e
  aa72dc21_2f0c_e44b_b27f_dee45869de27["errors.js"]
  25166256_49ce_81f2_0877_fdbc689bed91 --> aa72dc21_2f0c_e44b_b27f_dee45869de27
  71b259bd_5f72_cc6d_b70f_26cc5271a43c["warnings.js"]
  25166256_49ce_81f2_0877_fdbc689bed91 --> 71b259bd_5f72_cc6d_b70f_26cc5271a43c
  bb0c9dd4_b592_cf45_1390_8cfbd8a288ec["hydration.js"]
  25166256_49ce_81f2_0877_fdbc689bed91 --> bb0c9dd4_b592_cf45_1390_8cfbd8a288ec
  1c4bc493_24af_177e_7307_a999997aceac["index.js"]
  25166256_49ce_81f2_0877_fdbc689bed91 --> 1c4bc493_24af_177e_7307_a999997aceac
  30cd611d_dc10_8cb7_0b6a_cde40be8727a["attributes"]
  25166256_49ce_81f2_0877_fdbc689bed91 --> 30cd611d_dc10_8cb7_0b6a_cde40be8727a
  006232e6_7197_38b5_bd13_0b28c51c2ac8["render-context.js"]
  25166256_49ce_81f2_0877_fdbc689bed91 --> 006232e6_7197_38b5_bd13_0b28c51c2ac8
  style 25166256_49ce_81f2_0877_fdbc689bed91 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/** @import { Component } from 'svelte' */
/** @import { Csp, HydratableContext, RenderOutput, SSRContext, SyncRenderOutput, Sha256Source } from './types.js' */
/** @import { MaybePromise } from '#shared' */
import { async_mode_flag } from '../flags/index.js';
import { abort } from './abort-signal.js';
import { pop, push, set_ssr_context, ssr_context, save } from './context.js';
import * as e from './errors.js';
import * as w from './warnings.js';
import { BLOCK_CLOSE, BLOCK_OPEN } from './hydration.js';
import { attributes } from './index.js';
import { get_render_context, with_render_context, init_render_context } from './render-context.js';
import { sha256 } from './crypto.js';
import * as devalue from 'devalue';
import { noop } from '../shared/utils.js';

/** @typedef {'head' | 'body'} RendererType */
/** @typedef {{ [key in RendererType]: string }} AccumulatedContent */

/**
 * @typedef {string | Renderer} RendererItem
 */

/**
 * Renderers are basically a tree of `string | Renderer`s, where each `Renderer` in the tree represents
 * work that may or may not have completed. A renderer can be {@link collect}ed to aggregate the
 * content from itself and all of its children, but this will throw if any of the children are
 * performing asynchronous work. To asynchronously collect a renderer, just `await` it.
 *
 * The `string` values within a renderer are always associated with the {@link type} of that renderer. To switch types,
 * call {@link child} with a different `type` argument.
 */
export class Renderer {
	/**
	 * The contents of the renderer.
	 * @type {RendererItem[]}
	 */
	#out = [];

	/**
	 * Any `onDestroy` callbacks registered during execution of this renderer.
	 * @type {(() => void)[] | undefined}
	 */
	#on_destroy = undefined;

	/**
	 * Whether this renderer is a component body.
	 * @type {boolean}
	 */
	#is_component_body = false;

	/**
	 * The type of string content that this renderer is accumulating.
	 * @type {RendererType}
	 */
	type;

	/** @type {Renderer | undefined} */
	#parent;

	/**
// ... (722 more lines)

Domain

Subdomains

Frequently Asked Questions

What does renderer.js do?
renderer.js is a source file in the svelte codebase, written in javascript. It belongs to the ServerRuntime domain, Renderer subdomain.
What does renderer.js depend on?
renderer.js imports 22 module(s): abort, abort-signal.js, attributes, context.js, crypto.js, devalue, errors.js, get_render_context, and 14 more.
What files import renderer.js?
renderer.js is imported by 4 file(s): dev.js, index.js, renderer.test.ts, types.d.ts.
Where is renderer.js in the architecture?
renderer.js is located at packages/svelte/src/internal/server/renderer.js (domain: ServerRuntime, subdomain: Renderer, directory: packages/svelte/src/internal/server).

Analyze Your Own Codebase

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

Try Supermodel Free