Home / File/ context.js — svelte Source File

context.js — svelte Source File

Architecture documentation for context.js, a javascript file in the svelte codebase. 8 imports, 21 dependents.

File javascript ClientRuntime LegacyBridge 8 imports 21 dependents 14 functions

Entity Profile

Dependency Diagram

graph LR
  48cf26f8_bf34_fd7a_3d52_cc963051e167["context.js"]
  ff387d97_d6d2_81e0_e731_656552709d27["errors.js"]
  48cf26f8_bf34_fd7a_3d52_cc963051e167 --> ff387d97_d6d2_81e0_e731_656552709d27
  bde4209f_8ffc_1594_4024_b1835a44bcf6["runtime.js"]
  48cf26f8_bf34_fd7a_3d52_cc963051e167 --> bde4209f_8ffc_1594_4024_b1835a44bcf6
  1ae6fa4e_16ee_acdf_5e28_17eb0819fddb["effects.js"]
  48cf26f8_bf34_fd7a_3d52_cc963051e167 --> 1ae6fa4e_16ee_acdf_5e28_17eb0819fddb
  13759887_b861_b51d_34c2_eae058e70740["create_user_effect"]
  48cf26f8_bf34_fd7a_3d52_cc963051e167 --> 13759887_b861_b51d_34c2_eae058e70740
  3c211218_0172_f6af_dd4f_da8028a531fc["index.js"]
  48cf26f8_bf34_fd7a_3d52_cc963051e167 --> 3c211218_0172_f6af_dd4f_da8028a531fc
  73865c3c_2786_c9ac_d34f_b51d28b3a29e["constants.js"]
  48cf26f8_bf34_fd7a_3d52_cc963051e167 --> 73865c3c_2786_c9ac_d34f_b51d28b3a29e
  984fb981_b6f6_b4f9_e92f_deca1946ed7f["constants.js"]
  48cf26f8_bf34_fd7a_3d52_cc963051e167 --> 984fb981_b6f6_b4f9_e92f_deca1946ed7f
  c9866d91_a204_fa55_a9e3_6bcc6aaaec1e["esm-env"]
  48cf26f8_bf34_fd7a_3d52_cc963051e167 --> c9866d91_a204_fa55_a9e3_6bcc6aaaec1e
  717fc8d5_bdb4_4b73_d6c5_c4a367a60cf2["index-client.js"]
  717fc8d5_bdb4_4b73_d6c5_c4a367a60cf2 --> 48cf26f8_bf34_fd7a_3d52_cc963051e167
  3ab252dc_d6ce_1bc4_5889_915271359ea9["elements.js"]
  3ab252dc_d6ce_1bc4_5889_915271359ea9 --> 48cf26f8_bf34_fd7a_3d52_cc963051e167
  e70d565a_b58f_b8a3_6358_70d749ddae50["legacy.js"]
  e70d565a_b58f_b8a3_6358_70d749ddae50 --> 48cf26f8_bf34_fd7a_3d52_cc963051e167
  ad878f27_7e4b_5069_1b06_1750c58a617d["ownership.js"]
  ad878f27_7e4b_5069_1b06_1750c58a617d --> 48cf26f8_bf34_fd7a_3d52_cc963051e167
  277e61a1_318f_c1a6_cf40_f6e1a0f3aa2f["await.js"]
  277e61a1_318f_c1a6_cf40_f6e1a0f3aa2f --> 48cf26f8_bf34_fd7a_3d52_cc963051e167
  6d3d606a_fb7a_54af_1ece_f1eb12f174d1["boundary.js"]
  6d3d606a_fb7a_54af_1ece_f1eb12f174d1 --> 48cf26f8_bf34_fd7a_3d52_cc963051e167
  style 48cf26f8_bf34_fd7a_3d52_cc963051e167 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/** @import { ComponentContext, DevStackEntry, Effect } from '#client' */
import { DEV } from 'esm-env';
import * as e from './errors.js';
import { active_effect, active_reaction } from './runtime.js';
import { create_user_effect } from './reactivity/effects.js';
import { async_mode_flag, legacy_mode_flag } from '../flags/index.js';
import { FILENAME } from '../../constants.js';
import { BRANCH_EFFECT, EFFECT_RAN } from './constants.js';

/** @type {ComponentContext | null} */
export let component_context = null;

/** @param {ComponentContext | null} context */
export function set_component_context(context) {
	component_context = context;
}

/** @type {DevStackEntry | null} */
export let dev_stack = null;

/** @param {DevStackEntry | null} stack */
export function set_dev_stack(stack) {
	dev_stack = stack;
}

/**
 * Execute a callback with a new dev stack entry
 * @param {() => any} callback - Function to execute
 * @param {DevStackEntry['type']} type - Type of block/component
 * @param {any} component - Component function
 * @param {number} line - Line number
 * @param {number} column - Column number
 * @param {Record<string, any>} [additional] - Any additional properties to add to the dev stack entry
 * @returns {any}
 */
export function add_svelte_meta(callback, type, component, line, column, additional) {
	const parent = dev_stack;

	dev_stack = {
		type,
		file: component[FILENAME],
		line,
		column,
		parent,
		...additional
	};

	try {
		return callback();
	} finally {
		dev_stack = parent;
	}
}

/**
 * The current component function. Different from current component context:
 * ```html
 * <!-- App.svelte -->
 * <Foo>
 *   <Bar /> <!-- context == Foo.svelte, function == App.svelte -->
// ... (199 more lines)

Domain

Subdomains

Frequently Asked Questions

What does context.js do?
context.js is a source file in the svelte codebase, written in javascript. It belongs to the ClientRuntime domain, LegacyBridge subdomain.
What functions are defined in context.js?
context.js defines 14 function(s): add_svelte_meta, createContext, getAllContexts, getContext, get_or_init_context_map, get_parent_context, hasContext, is_runes, pop, push, and 4 more.
What does context.js depend on?
context.js imports 8 module(s): constants.js, constants.js, create_user_effect, effects.js, errors.js, esm-env, index.js, runtime.js.
What files import context.js?
context.js is imported by 21 file(s): async.js, await.js, boundary.js, deriveds.js, effects.js, elements.js, html.js, index-client.js, and 13 more.
Where is context.js in the architecture?
context.js is located at packages/svelte/src/internal/client/context.js (domain: ClientRuntime, subdomain: LegacyBridge, directory: packages/svelte/src/internal/client).

Analyze Your Own Codebase

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

Try Supermodel Free