Home / File/ AwaitExpression.js — svelte Source File

AwaitExpression.js — svelte Source File

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

File javascript Compiler Transformer 5 imports 1 dependents 1 functions

Entity Profile

Dependency Diagram

graph LR
  1f5985ba_084c_ee27_8728_84aae0f260d7["AwaitExpression.js"]
  62f818c8_e890_17ed_5ec1_92f953d4a7a6["state.js"]
  1f5985ba_084c_ee27_8728_84aae0f260d7 --> 62f818c8_e890_17ed_5ec1_92f953d4a7a6
  7a7783f8_ffa6_0cc3_61b0_031882649535["is_ignored"]
  1f5985ba_084c_ee27_8728_84aae0f260d7 --> 7a7783f8_ffa6_0cc3_61b0_031882649535
  0c5c28a7_226d_4e7c_e75e_0853c0a9fc2c["ast.js"]
  1f5985ba_084c_ee27_8728_84aae0f260d7 --> 0c5c28a7_226d_4e7c_e75e_0853c0a9fc2c
  a5d434ec_3ca3_7fe0_cea3_58f60f017b7b["save"]
  1f5985ba_084c_ee27_8728_84aae0f260d7 --> a5d434ec_3ca3_7fe0_cea3_58f60f017b7b
  18e3101f_3e97_34c3_7373_b587af4b78e1["builders.js"]
  1f5985ba_084c_ee27_8728_84aae0f260d7 --> 18e3101f_3e97_34c3_7373_b587af4b78e1
  7665e008_f37d_b860_a594_f2539a66af4e["transform-client.js"]
  7665e008_f37d_b860_a594_f2539a66af4e --> 1f5985ba_084c_ee27_8728_84aae0f260d7
  style 1f5985ba_084c_ee27_8728_84aae0f260d7 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/** @import { AwaitExpression, Expression } from 'estree' */
/** @import { Context } from '../types' */
import { dev, is_ignored } from '../../../../state.js';
import { save } from '../../../../utils/ast.js';
import * as b from '../../../../utils/builders.js';

/**
 * @param {AwaitExpression} node
 * @param {Context} context
 */
export function AwaitExpression(node, context) {
	const argument = /** @type {Expression} */ (context.visit(node.argument));

	if (context.state.analysis.pickled_awaits.has(node)) {
		return save(argument);
	}

	// in dev, note which values are read inside a reactive expression,
	// but don't track them
	else if (dev && !is_ignored(node, 'await_reactivity_loss')) {
		return b.call(b.await(b.call('$.track_reactivity_loss', argument)));
	}

	return argument === node.argument ? node : { ...node, argument };
}

Domain

Subdomains

Functions

Frequently Asked Questions

What does AwaitExpression.js do?
AwaitExpression.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 AwaitExpression.js?
AwaitExpression.js defines 1 function(s): AwaitExpression.
What does AwaitExpression.js depend on?
AwaitExpression.js imports 5 module(s): ast.js, builders.js, is_ignored, save, state.js.
What files import AwaitExpression.js?
AwaitExpression.js is imported by 1 file(s): transform-client.js.
Where is AwaitExpression.js in the architecture?
AwaitExpression.js is located at packages/svelte/src/compiler/phases/3-transform/client/visitors/AwaitExpression.js (domain: Compiler, subdomain: Transformer, directory: packages/svelte/src/compiler/phases/3-transform/client/visitors).

Analyze Your Own Codebase

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

Try Supermodel Free