proxy.js — svelte Source File
Architecture documentation for proxy.js, a javascript file in the svelte codebase. 20 imports, 8 dependents.
Entity Profile
Dependency Diagram
graph LR 71020d3b_ab64_9fea_2a06_dab93412f92f["proxy.js"] bde4209f_8ffc_1594_4024_b1835a44bcf6["runtime.js"] 71020d3b_ab64_9fea_2a06_dab93412f92f --> bde4209f_8ffc_1594_4024_b1835a44bcf6 a08b6cc5_af73_1be4_d02f_3113cf8a8305["get"] 71020d3b_ab64_9fea_2a06_dab93412f92f --> a08b6cc5_af73_1be4_d02f_3113cf8a8305 f144db4b_3212_e33b_8d55_9b81f394fdce["set_update_version"] 71020d3b_ab64_9fea_2a06_dab93412f92f --> f144db4b_3212_e33b_8d55_9b81f394fdce 311ef9f4_9b68_c178_c1db_3b8696f7d964["set_active_reaction"] 71020d3b_ab64_9fea_2a06_dab93412f92f --> 311ef9f4_9b68_c178_c1db_3b8696f7d964 cb946435_ce66_d1e8_6bee_287bdb07e7c5["utils.js"] 71020d3b_ab64_9fea_2a06_dab93412f92f --> cb946435_ce66_d1e8_6bee_287bdb07e7c5 e5c35d51_28d8_9054_923d_b7f82a3c8dc2["sources.js"] 71020d3b_ab64_9fea_2a06_dab93412f92f --> e5c35d51_28d8_9054_923d_b7f82a3c8dc2 39208392_58c1_7201_b748_aa74d97cadb9["state"] 71020d3b_ab64_9fea_2a06_dab93412f92f --> 39208392_58c1_7201_b748_aa74d97cadb9 63ee8247_ada4_9f1d_e139_0c1167cd5b1c["set"] 71020d3b_ab64_9fea_2a06_dab93412f92f --> 63ee8247_ada4_9f1d_e139_0c1167cd5b1c 7602fc38_fab9_8955_83f0_8643d7c6c7a4["increment"] 71020d3b_ab64_9fea_2a06_dab93412f92f --> 7602fc38_fab9_8955_83f0_8643d7c6c7a4 8cbd2617_a90a_da93_cf30_82f21876749c["flush_eager_effects"] 71020d3b_ab64_9fea_2a06_dab93412f92f --> 8cbd2617_a90a_da93_cf30_82f21876749c f8ec5faa_6e11_6b8d_4711_9895319825a3["set_eager_effects_deferred"] 71020d3b_ab64_9fea_2a06_dab93412f92f --> f8ec5faa_6e11_6b8d_4711_9895319825a3 73865c3c_2786_c9ac_d34f_b51d28b3a29e["constants.js"] 71020d3b_ab64_9fea_2a06_dab93412f92f --> 73865c3c_2786_c9ac_d34f_b51d28b3a29e ff387d97_d6d2_81e0_e731_656552709d27["errors.js"] 71020d3b_ab64_9fea_2a06_dab93412f92f --> ff387d97_d6d2_81e0_e731_656552709d27 2696eb67_452f_4c32_3e13_ee172192b366["tracing.js"] 71020d3b_ab64_9fea_2a06_dab93412f92f --> 2696eb67_452f_4c32_3e13_ee172192b366 style 71020d3b_ab64_9fea_2a06_dab93412f92f fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
/** @import { Source } from '#client' */
import { DEV } from 'esm-env';
import {
get,
active_effect,
update_version,
active_reaction,
set_update_version,
set_active_reaction
} from './runtime.js';
import {
array_prototype,
get_descriptor,
get_prototype_of,
is_array,
object_prototype
} from '../shared/utils.js';
import {
state as source,
set,
increment,
flush_eager_effects,
set_eager_effects_deferred
} from './reactivity/sources.js';
import { PROXY_PATH_SYMBOL, STATE_SYMBOL } from '#client/constants';
import { UNINITIALIZED } from '../../constants.js';
import * as e from './errors.js';
import { tag } from './dev/tracing.js';
import { get_error } from '../shared/dev.js';
import { tracing_mode_flag } from '../flags/index.js';
// TODO move all regexes into shared module?
const regex_is_valid_identifier = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/;
/**
* @template T
* @param {T} value
* @returns {T}
*/
export function proxy(value) {
// if non-proxyable, or is already a proxy, return `value`
if (typeof value !== 'object' || value === null || STATE_SYMBOL in value) {
return value;
}
const prototype = get_prototype_of(value);
if (prototype !== object_prototype && prototype !== array_prototype) {
return value;
}
/** @type {Map<any, Source<any>>} */
var sources = new Map();
var is_proxied_array = is_array(value);
var version = source(0);
var stack = DEV && tracing_mode_flag ? get_error('created at') : null;
var parent_version = update_version;
/**
// ... (373 more lines)
Domain
Subdomains
Dependencies
Imported By
- packages/svelte/src/internal/shared/clone.test.ts
- packages/svelte/src/internal/client/dev/equality.js
- packages/svelte/src/internal/client/dom/elements/bindings/input.js
- packages/svelte/src/internal/client/reactivity/props.js
- packages/svelte/src/internal/client/proxy.test.ts
- packages/svelte/src/internal/client/dom/elements/bindings/select.js
- packages/svelte/src/internal/client/reactivity/sources.js
- packages/svelte/tests/signals/test.ts
Source
Frequently Asked Questions
What does proxy.js do?
proxy.js is a source file in the svelte codebase, written in javascript. It belongs to the ClientRuntime domain, Hydration subdomain.
What functions are defined in proxy.js?
proxy.js defines 5 function(s): get_label, get_proxied_value, inspectable_array, is, proxy.
What does proxy.js depend on?
proxy.js imports 20 module(s): constants, constants.js, dev.js, errors.js, esm-env, flush_eager_effects, get, get_error, and 12 more.
What files import proxy.js?
proxy.js is imported by 8 file(s): clone.test.ts, equality.js, input.js, props.js, proxy.test.ts, select.js, sources.js, test.ts.
Where is proxy.js in the architecture?
proxy.js is located at packages/svelte/src/internal/client/proxy.js (domain: ClientRuntime, subdomain: Hydration, 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