Home / File/ map.js — svelte Source File

map.js — svelte Source File

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

File javascript SharedInternal BitFlags 11 imports 1 dependents 1 classes

Entity Profile

Dependency Diagram

graph LR
  eb632f3e_6e0f_71bf_8ae3_df1fb779f36f["map.js"]
  e5c35d51_28d8_9054_923d_b7f82a3c8dc2["sources.js"]
  eb632f3e_6e0f_71bf_8ae3_df1fb779f36f --> e5c35d51_28d8_9054_923d_b7f82a3c8dc2
  63ee8247_ada4_9f1d_e139_0c1167cd5b1c["set"]
  eb632f3e_6e0f_71bf_8ae3_df1fb779f36f --> 63ee8247_ada4_9f1d_e139_0c1167cd5b1c
  1e2f7428_6050_5cb7_69db_bf5db719f6d1["source"]
  eb632f3e_6e0f_71bf_8ae3_df1fb779f36f --> 1e2f7428_6050_5cb7_69db_bf5db719f6d1
  39208392_58c1_7201_b748_aa74d97cadb9["state"]
  eb632f3e_6e0f_71bf_8ae3_df1fb779f36f --> 39208392_58c1_7201_b748_aa74d97cadb9
  7602fc38_fab9_8955_83f0_8643d7c6c7a4["increment"]
  eb632f3e_6e0f_71bf_8ae3_df1fb779f36f --> 7602fc38_fab9_8955_83f0_8643d7c6c7a4
  2696eb67_452f_4c32_3e13_ee172192b366["tracing.js"]
  eb632f3e_6e0f_71bf_8ae3_df1fb779f36f --> 2696eb67_452f_4c32_3e13_ee172192b366
  d2a90b1f_8427_2d4f_9666_54818c307da5["label"]
  eb632f3e_6e0f_71bf_8ae3_df1fb779f36f --> d2a90b1f_8427_2d4f_9666_54818c307da5
  4dfcf957_8573_ff55_bd31_4181227109e3["tag"]
  eb632f3e_6e0f_71bf_8ae3_df1fb779f36f --> 4dfcf957_8573_ff55_bd31_4181227109e3
  bde4209f_8ffc_1594_4024_b1835a44bcf6["runtime.js"]
  eb632f3e_6e0f_71bf_8ae3_df1fb779f36f --> bde4209f_8ffc_1594_4024_b1835a44bcf6
  a08b6cc5_af73_1be4_d02f_3113cf8a8305["get"]
  eb632f3e_6e0f_71bf_8ae3_df1fb779f36f --> a08b6cc5_af73_1be4_d02f_3113cf8a8305
  c9866d91_a204_fa55_a9e3_6bcc6aaaec1e["esm-env"]
  eb632f3e_6e0f_71bf_8ae3_df1fb779f36f --> c9866d91_a204_fa55_a9e3_6bcc6aaaec1e
  df1c895a_6a70_d120_e792_7fee0a5c8582["map.test.ts"]
  df1c895a_6a70_d120_e792_7fee0a5c8582 --> eb632f3e_6e0f_71bf_8ae3_df1fb779f36f
  style eb632f3e_6e0f_71bf_8ae3_df1fb779f36f fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/** @import { Source } from '#client' */
import { DEV } from 'esm-env';
import { set, source, state, increment } from '../internal/client/reactivity/sources.js';
import { label, tag } from '../internal/client/dev/tracing.js';
import { get, update_version } from '../internal/client/runtime.js';

/**
 * A reactive version of the built-in [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) object.
 * Reading contents of the map (by iterating, or by reading `map.size` or calling `map.get(...)` or `map.has(...)` as in the [tic-tac-toe example](https://svelte.dev/playground/0b0ff4aa49c9443f9b47fe5203c78293) below) in an [effect](https://svelte.dev/docs/svelte/$effect) or [derived](https://svelte.dev/docs/svelte/$derived)
 * will cause it to be re-evaluated as necessary when the map is updated.
 *
 * Note that values in a reactive map are _not_ made [deeply reactive](https://svelte.dev/docs/svelte/$state#Deep-state).
 *
 * ```svelte
 * <script>
 * 	import { SvelteMap } from 'svelte/reactivity';
 * 	import { result } from './game.js';
 *
 * 	let board = new SvelteMap();
 * 	let player = $state('x');
 * 	let winner = $derived(result(board));
 *
 * 	function reset() {
 * 		player = 'x';
 * 		board.clear();
 * 	}
 * </script>
 *
 * <div class="board">
 * 	{#each Array(9), i}
 * 		<button
 * 			disabled={board.has(i) || winner}
 * 			onclick={() => {
 * 				board.set(i, player);
 * 				player = player === 'x' ? 'o' : 'x';
 * 			}}
 * 		>{board.get(i)}</button>
 * 	{/each}
 * </div>
 *
 * {#if winner}
 * 	<p>{winner} wins!</p>
 * 	<button onclick={reset}>reset</button>
 * {:else}
 * 	<p>{player} is next</p>
 * {/if}
 * ```
 *
 * @template K
 * @template V
 * @extends {Map<K, V>}
 */
export class SvelteMap extends Map {
	/** @type {Map<K, Source<number>>} */
	#sources = new Map();
	#version = state(0);
	#size = state(0);
	#update_version = update_version || -1;

	/**
// ... (214 more lines)

Subdomains

Classes

Frequently Asked Questions

What does map.js do?
map.js is a source file in the svelte codebase, written in javascript. It belongs to the SharedInternal domain, BitFlags subdomain.
What does map.js depend on?
map.js imports 11 module(s): esm-env, get, increment, label, runtime.js, set, source, sources.js, and 3 more.
What files import map.js?
map.js is imported by 1 file(s): map.test.ts.
Where is map.js in the architecture?
map.js is located at packages/svelte/src/reactivity/map.js (domain: SharedInternal, subdomain: BitFlags, directory: packages/svelte/src/reactivity).

Analyze Your Own Codebase

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

Try Supermodel Free