Home / File/ props.js — svelte Source File

props.js — svelte Source File

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

File javascript ClientRuntime Reactivity 22 imports 22 functions

Entity Profile

Dependency Diagram

graph LR
  5094c0e2_0832_85dc_9c83_43e20571b709["props.js"]
  73865c3c_2786_c9ac_d34f_b51d28b3a29e["constants.js"]
  5094c0e2_0832_85dc_9c83_43e20571b709 --> 73865c3c_2786_c9ac_d34f_b51d28b3a29e
  cb946435_ce66_d1e8_6bee_287bdb07e7c5["utils.js"]
  5094c0e2_0832_85dc_9c83_43e20571b709 --> cb946435_ce66_d1e8_6bee_287bdb07e7c5
  cf9fafcc_74cf_96c6_92b8_d5c64c62efa0["is_function"]
  5094c0e2_0832_85dc_9c83_43e20571b709 --> cf9fafcc_74cf_96c6_92b8_d5c64c62efa0
  e5c35d51_28d8_9054_923d_b7f82a3c8dc2["sources.js"]
  5094c0e2_0832_85dc_9c83_43e20571b709 --> e5c35d51_28d8_9054_923d_b7f82a3c8dc2
  63ee8247_ada4_9f1d_e139_0c1167cd5b1c["set"]
  5094c0e2_0832_85dc_9c83_43e20571b709 --> 63ee8247_ada4_9f1d_e139_0c1167cd5b1c
  1e2f7428_6050_5cb7_69db_bf5db719f6d1["source"]
  5094c0e2_0832_85dc_9c83_43e20571b709 --> 1e2f7428_6050_5cb7_69db_bf5db719f6d1
  5d33d764_c539_b815_fe49_97b00f61f68e["update"]
  5094c0e2_0832_85dc_9c83_43e20571b709 --> 5d33d764_c539_b815_fe49_97b00f61f68e
  2fb8b3eb_7c25_3930_a184_09fab29d537f["deriveds.js"]
  5094c0e2_0832_85dc_9c83_43e20571b709 --> 2fb8b3eb_7c25_3930_a184_09fab29d537f
  9b434868_abac_094f_b009_bb7564b0d40d["derived"]
  5094c0e2_0832_85dc_9c83_43e20571b709 --> 9b434868_abac_094f_b009_bb7564b0d40d
  bce9da9e_fd64_163a_8582_ad1a0c6518ce["derived_safe_equal"]
  5094c0e2_0832_85dc_9c83_43e20571b709 --> bce9da9e_fd64_163a_8582_ad1a0c6518ce
  bde4209f_8ffc_1594_4024_b1835a44bcf6["runtime.js"]
  5094c0e2_0832_85dc_9c83_43e20571b709 --> bde4209f_8ffc_1594_4024_b1835a44bcf6
  a08b6cc5_af73_1be4_d02f_3113cf8a8305["get"]
  5094c0e2_0832_85dc_9c83_43e20571b709 --> a08b6cc5_af73_1be4_d02f_3113cf8a8305
  55623862_10b7_5361_e30b_34ec6941f1a7["set_active_effect"]
  5094c0e2_0832_85dc_9c83_43e20571b709 --> 55623862_10b7_5361_e30b_34ec6941f1a7
  a814b193_e12a_4037_c3c8_dfd45f3bd0bb["untrack"]
  5094c0e2_0832_85dc_9c83_43e20571b709 --> a814b193_e12a_4037_c3c8_dfd45f3bd0bb
  style 5094c0e2_0832_85dc_9c83_43e20571b709 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/** @import { Effect, Source } from './types.js' */
import { DEV } from 'esm-env';
import {
	PROPS_IS_BINDABLE,
	PROPS_IS_IMMUTABLE,
	PROPS_IS_LAZY_INITIAL,
	PROPS_IS_RUNES,
	PROPS_IS_UPDATED
} from '../../../constants.js';
import { get_descriptor, is_function } from '../../shared/utils.js';
import { set, source, update } from './sources.js';
import { derived, derived_safe_equal } from './deriveds.js';
import {
	active_effect,
	get,
	is_destroying_effect,
	set_active_effect,
	untrack
} from '../runtime.js';
import * as e from '../errors.js';
import { DESTROYED, LEGACY_PROPS, STATE_SYMBOL } from '#client/constants';
import { proxy } from '../proxy.js';
import { capture_store_binding } from './store.js';
import { legacy_mode_flag } from '../../flags/index.js';

/**
 * @param {((value?: number) => number)} fn
 * @param {1 | -1} [d]
 * @returns {number}
 */
export function update_prop(fn, d = 1) {
	const value = fn();
	fn(value + d);
	return value;
}

/**
 * @param {((value?: number) => number)} fn
 * @param {1 | -1} [d]
 * @returns {number}
 */
export function update_pre_prop(fn, d = 1) {
	const value = fn() + d;
	fn(value);
	return value;
}

/**
 * The proxy handler for rest props (i.e. `const { x, ...rest } = $props()`).
 * Is passed the full `$$props` object and excludes the named props.
 * @type {ProxyHandler<{ props: Record<string | symbol, unknown>, exclude: Array<string | symbol>, name?: string }>}}
 */
const rest_props_handler = {
	get(target, key) {
		if (target.exclude.includes(key)) return;
		return target.props[key];
	},
	set(target, key) {
		if (DEV) {
			// TODO should this happen in prod too?
// ... (371 more lines)

Domain

Subdomains

Frequently Asked Questions

What does props.js do?
props.js is a source file in the svelte codebase, written in javascript. It belongs to the ClientRuntime domain, Reactivity subdomain.
What functions are defined in props.js?
props.js defines 22 function(s): legacy_rest_props, legacy_rest_props_handler.deleteProperty, legacy_rest_props_handler.get, legacy_rest_props_handler.getOwnPropertyDescriptor, legacy_rest_props_handler.has, legacy_rest_props_handler.ownKeys, legacy_rest_props_handler.set, prop, rest_props, rest_props_handler.get, and 12 more.
What does props.js depend on?
props.js imports 22 module(s): capture_store_binding, constants, constants.js, derived, derived_safe_equal, deriveds.js, errors.js, esm-env, and 14 more.
Where is props.js in the architecture?
props.js is located at packages/svelte/src/internal/client/reactivity/props.js (domain: ClientRuntime, subdomain: Reactivity, directory: packages/svelte/src/internal/client/reactivity).

Analyze Your Own Codebase

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

Try Supermodel Free