Home / File/ OnDirective.js — svelte Source File

OnDirective.js — svelte Source File

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

File javascript Compiler Transformer 4 imports 1 dependents 1 functions

Entity Profile

Dependency Diagram

graph LR
  50cc33f3_339a_55a6_7256_b481927bcf1a["OnDirective.js"]
  56a689f9_11c0_cc76_bd60_41bb6dc96475["warnings.js"]
  50cc33f3_339a_55a6_7256_b481927bcf1a --> 56a689f9_11c0_cc76_bd60_41bb6dc96475
  3246e0bc_b9fc_f638_5e35_41e8c39a2408["w"]
  50cc33f3_339a_55a6_7256_b481927bcf1a --> 3246e0bc_b9fc_f638_5e35_41e8c39a2408
  c4b4ac8d_9914_5ede_1aea_723bf80d2e9b["fragment.js"]
  50cc33f3_339a_55a6_7256_b481927bcf1a --> c4b4ac8d_9914_5ede_1aea_723bf80d2e9b
  313d2a82_30ea_3161_3aad_0cc2094979aa["mark_subtree_dynamic"]
  50cc33f3_339a_55a6_7256_b481927bcf1a --> 313d2a82_30ea_3161_3aad_0cc2094979aa
  4aa8a188_84d4_0274_ed83_cac0ab1d3572["index.js"]
  4aa8a188_84d4_0274_ed83_cac0ab1d3572 --> 50cc33f3_339a_55a6_7256_b481927bcf1a
  style 50cc33f3_339a_55a6_7256_b481927bcf1a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/** @import { AST } from '#compiler' */
/** @import { Context } from '../types' */
import * as w from '../../../warnings.js';
import { mark_subtree_dynamic } from './shared/fragment.js';

/**
 * @param {AST.OnDirective} node
 * @param {Context} context
 */
export function OnDirective(node, context) {
	if (context.state.analysis.runes) {
		const parent_type = context.path.at(-1)?.type;

		// Don't warn on component events; these might not be under the author's control so the warning would be unactionable
		if (parent_type === 'RegularElement' || parent_type === 'SvelteElement') {
			w.event_directive_deprecated(node, node.name);
		}
	}

	const parent = context.path.at(-1);
	if (parent?.type === 'SvelteElement' || parent?.type === 'RegularElement') {
		context.state.analysis.event_directive_node ??= node;
	}

	mark_subtree_dynamic(context.path);

	context.next({ ...context.state, expression: node.metadata.expression });
}

Domain

Subdomains

Functions

Frequently Asked Questions

What does OnDirective.js do?
OnDirective.js is a source file in the svelte codebase, written in javascript. It belongs to the Compiler domain, Transformer subdomain.
What functions are defined in OnDirective.js?
OnDirective.js defines 1 function(s): OnDirective.
What does OnDirective.js depend on?
OnDirective.js imports 4 module(s): fragment.js, mark_subtree_dynamic, w, warnings.js.
What files import OnDirective.js?
OnDirective.js is imported by 1 file(s): index.js.
Where is OnDirective.js in the architecture?
OnDirective.js is located at packages/svelte/src/compiler/phases/2-analyze/visitors/OnDirective.js (domain: Compiler, subdomain: Transformer, directory: packages/svelte/src/compiler/phases/2-analyze/visitors).

Analyze Your Own Codebase

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

Try Supermodel Free