Skip to content

Commit 0cafe34

Browse files
authored
chore: DRY out increment logic (#16332)
1 parent c3361bf commit 0cafe34

File tree

7 files changed

+16
-27
lines changed

7 files changed

+16
-27
lines changed

packages/svelte/src/internal/client/proxy.js

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
is_array,
99
object_prototype
1010
} from '../shared/utils.js';
11-
import { state as source, set } from './reactivity/sources.js';
11+
import { state as source, set, increment } from './reactivity/sources.js';
1212
import { PROXY_PATH_SYMBOL, STATE_SYMBOL } from '#client/constants';
1313
import { UNINITIALIZED } from '../../constants.js';
1414
import * as e from './errors.js';
@@ -118,7 +118,7 @@ export function proxy(value) {
118118
if (prop in target) {
119119
const s = with_parent(() => source(UNINITIALIZED, stack));
120120
sources.set(prop, s);
121-
update_version(version);
121+
increment(version);
122122

123123
if (DEV) {
124124
tag(s, get_label(path, prop));
@@ -136,7 +136,7 @@ export function proxy(value) {
136136
}
137137
}
138138
set(s, UNINITIALIZED);
139-
update_version(version);
139+
increment(version);
140140
}
141141

142142
return true;
@@ -304,7 +304,7 @@ export function proxy(value) {
304304
}
305305
}
306306

307-
update_version(version);
307+
increment(version);
308308
}
309309

310310
return true;
@@ -343,14 +343,6 @@ function get_label(path, prop) {
343343
return /^\d+$/.test(prop) ? `${path}[${prop}]` : `${path}['${prop}']`;
344344
}
345345

346-
/**
347-
* @param {Source<number>} signal
348-
* @param {1 | -1} [d]
349-
*/
350-
function update_version(signal, d = 1) {
351-
set(signal, signal.v + d);
352-
}
353-
354346
/**
355347
* @param {any} value
356348
*/

packages/svelte/src/internal/client/reactivity/sources.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,14 @@ export function update_pre(source, d = 1) {
259259
return set(source, d === 1 ? ++value : --value);
260260
}
261261

262+
/**
263+
* Silently (without using `get`) increment a source
264+
* @param {Source<number>} source
265+
*/
266+
export function increment(source) {
267+
set(source, source.v + 1);
268+
}
269+
262270
/**
263271
* @param {Value} signal
264272
* @param {number} status should be DIRTY or MAYBE_DIRTY

packages/svelte/src/reactivity/create-subscriber.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import { get, tick, untrack } from '../internal/client/runtime.js';
22
import { effect_tracking, render_effect } from '../internal/client/reactivity/effects.js';
3-
import { source } from '../internal/client/reactivity/sources.js';
3+
import { source, increment } from '../internal/client/reactivity/sources.js';
44
import { tag } from '../internal/client/dev/tracing.js';
5-
import { increment } from './utils.js';
65
import { DEV } from 'esm-env';
76

87
/**

packages/svelte/src/reactivity/map.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
/** @import { Source } from '#client' */
22
import { DEV } from 'esm-env';
3-
import { set, source, state } from '../internal/client/reactivity/sources.js';
3+
import { set, source, state, increment } from '../internal/client/reactivity/sources.js';
44
import { label, tag } from '../internal/client/dev/tracing.js';
55
import { get, update_version } from '../internal/client/runtime.js';
6-
import { increment } from './utils.js';
76

87
/**
98
* A reactive version of the built-in [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) object.

packages/svelte/src/reactivity/set.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
/** @import { Source } from '#client' */
22
import { DEV } from 'esm-env';
3-
import { source, set, state } from '../internal/client/reactivity/sources.js';
3+
import { source, set, state, increment } from '../internal/client/reactivity/sources.js';
44
import { label, tag } from '../internal/client/dev/tracing.js';
55
import { get, update_version } from '../internal/client/runtime.js';
6-
import { increment } from './utils.js';
76

87
var read_methods = ['forEach', 'isDisjointFrom', 'isSubsetOf', 'isSupersetOf'];
98
var set_like_methods = ['difference', 'intersection', 'symmetricDifference', 'union'];

packages/svelte/src/reactivity/url-search-params.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import { DEV } from 'esm-env';
2-
import { state } from '../internal/client/reactivity/sources.js';
2+
import { state, increment } from '../internal/client/reactivity/sources.js';
33
import { tag } from '../internal/client/dev/tracing.js';
44
import { get } from '../internal/client/runtime.js';
55
import { get_current_url } from './url.js';
6-
import { increment } from './utils.js';
76

87
export const REPLACE = Symbol();
98

packages/svelte/src/reactivity/utils.js

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)