props.js — svelte Source File
Architecture documentation for props.js, a javascript file in the svelte codebase. 22 imports, 0 dependents.
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
Functions
- 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()
- rest_props_handler.getOwnPropertyDescriptor()
- rest_props_handler.has()
- rest_props_handler.ownKeys()
- rest_props_handler.set()
- spread_props()
- spread_props_handler.get()
- spread_props_handler.getOwnPropertyDescriptor()
- spread_props_handler.has()
- spread_props_handler.ownKeys()
- spread_props_handler.set()
- update_pre_prop()
- update_prop()
Dependencies
Source
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