1
+ /** @import { ComponentContext, Derived, Effect, Reaction, Signal, Source, Value } from '#client' */
1
2
import { DEV } from 'esm-env' ;
2
3
import { define_property , get_descriptors , get_prototype_of } from '../shared/utils.js' ;
3
4
import {
@@ -57,24 +58,24 @@ export function set_is_destroying_effect(value) {
57
58
58
59
// Handle effect queues
59
60
60
- /** @type {import('#client'). Effect[] } */
61
+ /** @type {Effect[] } */
61
62
let current_queued_root_effects = [ ] ;
62
63
63
64
let flush_count = 0 ;
64
65
// Handle signal reactivity tree dependencies and reactions
65
66
66
- /** @type {null | import('#client'). Reaction } */
67
+ /** @type {null | Reaction } */
67
68
export let current_reaction = null ;
68
69
69
- /** @param {null | import('#client'). Reaction } reaction */
70
+ /** @param {null | Reaction } reaction */
70
71
export function set_current_reaction ( reaction ) {
71
72
current_reaction = reaction ;
72
73
}
73
74
74
- /** @type {null | import('#client'). Effect } */
75
+ /** @type {null | Effect } */
75
76
export let current_effect = null ;
76
77
77
- /** @param {null | import('#client'). Effect } effect */
78
+ /** @param {null | Effect } effect */
78
79
export function set_current_effect ( effect ) {
79
80
current_effect = effect ;
80
81
}
@@ -83,7 +84,7 @@ export function set_current_effect(effect) {
83
84
* The dependencies of the reaction that is currently being executed. In many cases,
84
85
* the dependencies are unchanged between runs, and so this will be `null` unless
85
86
* and until a new dependency is accessed — we track this via `skipped_deps`
86
- * @type {null | import('#client'). Value[] }
87
+ * @type {null | Value[] }
87
88
*/
88
89
export let new_deps = null ;
89
90
@@ -92,11 +93,11 @@ let skipped_deps = 0;
92
93
/**
93
94
* Tracks writes that the effect it's executed in doesn't listen to yet,
94
95
* so that the dependency can be added to the effect later on if it then reads it
95
- * @type {null | import('#client'). Source[] }
96
+ * @type {null | Source[] }
96
97
*/
97
98
export let current_untracked_writes = null ;
98
99
99
- /** @param {null | import('#client'). Source[] } value */
100
+ /** @param {null | Source[] } value */
100
101
export function set_current_untracked_writes ( value ) {
101
102
current_untracked_writes = value ;
102
103
}
@@ -112,10 +113,10 @@ export let is_signals_recorded = false;
112
113
let captured_signals = new Set ( ) ;
113
114
114
115
// Handling runtime component context
115
- /** @type {import('#client'). ComponentContext | null } */
116
+ /** @type {ComponentContext | null } */
116
117
export let current_component_context = null ;
117
118
118
- /** @param {import('#client'). ComponentContext | null } context */
119
+ /** @param {ComponentContext | null } context */
119
120
export function set_current_component_context ( context ) {
120
121
current_component_context = context ;
121
122
}
@@ -128,11 +129,11 @@ export function set_current_component_context(context) {
128
129
* <Bar /> <!-- context == Foo.svelte, function == App.svelte -->
129
130
* </Foo>
130
131
* ```
131
- * @type {import('#client'). ComponentContext['function'] }
132
+ * @type {ComponentContext['function'] }
132
133
*/
133
134
export let dev_current_component_function = null ;
134
135
135
- /** @param {import('#client'). ComponentContext['function'] } fn */
136
+ /** @param {ComponentContext['function'] } fn */
136
137
export function set_dev_current_component_function ( fn ) {
137
138
dev_current_component_function = fn ;
138
139
}
@@ -149,7 +150,7 @@ export function is_runes() {
149
150
/**
150
151
* Determines whether a derived or effect is dirty.
151
152
* If it is MAYBE_DIRTY, will set the status to CLEAN
152
- * @param {import('#client'). Reaction } reaction
153
+ * @param {Reaction } reaction
153
154
* @returns {boolean }
154
155
*/
155
156
export function check_dirtiness ( reaction ) {
@@ -177,8 +178,8 @@ export function check_dirtiness(reaction) {
177
178
for ( i = 0 ; i < dependencies . length ; i ++ ) {
178
179
var dependency = dependencies [ i ] ;
179
180
180
- if ( check_dirtiness ( /** @type {import('#client'). Derived } */ ( dependency ) ) ) {
181
- update_derived ( /** @type {import('#client'). Derived } */ ( dependency ) ) ;
181
+ if ( check_dirtiness ( /** @type {Derived } */ ( dependency ) ) ) {
182
+ update_derived ( /** @type {Derived } */ ( dependency ) ) ;
182
183
}
183
184
184
185
if ( dependency . version > reaction . version ) {
@@ -205,8 +206,8 @@ export function check_dirtiness(reaction) {
205
206
206
207
/**
207
208
* @param {Error } error
208
- * @param {import("#client"). Effect } effect
209
- * @param {import("#client"). ComponentContext | null } component_context
209
+ * @param {Effect } effect
210
+ * @param {ComponentContext | null } component_context
210
211
*/
211
212
function handle_error ( error , effect , component_context ) {
212
213
// Given we don't yet have error boundaries, we will just always throw.
@@ -222,7 +223,7 @@ function handle_error(error, effect, component_context) {
222
223
component_stack . push ( effect_name ) ;
223
224
}
224
225
225
- /** @type {import("#client"). ComponentContext | null } */
226
+ /** @type {ComponentContext | null } */
226
227
let current_context = component_context ;
227
228
228
229
while ( current_context !== null ) {
@@ -266,7 +267,7 @@ function handle_error(error, effect, component_context) {
266
267
267
268
/**
268
269
* @template V
269
- * @param {import('#client'). Reaction } reaction
270
+ * @param {Reaction } reaction
270
271
* @returns {V }
271
272
*/
272
273
export function update_reaction ( reaction ) {
@@ -276,7 +277,7 @@ export function update_reaction(reaction) {
276
277
var previous_reaction = current_reaction ;
277
278
var previous_skip_reaction = current_skip_reaction ;
278
279
279
- new_deps = /** @type {null | import('#client'). Value[] } */ ( null ) ;
280
+ new_deps = /** @type {null | Value[] } */ ( null ) ;
280
281
skipped_deps = 0 ;
281
282
current_untracked_writes = null ;
282
283
current_reaction = ( reaction . f & ( BRANCH_EFFECT | ROOT_EFFECT ) ) === 0 ? reaction : null ;
@@ -349,8 +350,8 @@ export function update_reaction(reaction) {
349
350
350
351
/**
351
352
* @template V
352
- * @param {import('#client'). Reaction } signal
353
- * @param {import('#client'). Value<V> } dependency
353
+ * @param {Reaction } signal
354
+ * @param {Value<V> } dependency
354
355
* @returns {void }
355
356
*/
356
357
function remove_reaction ( signal , dependency ) {
@@ -378,12 +379,12 @@ function remove_reaction(signal, dependency) {
378
379
if ( ( dependency . f & ( UNOWNED | DISCONNECTED ) ) === 0 ) {
379
380
dependency . f ^= DISCONNECTED ;
380
381
}
381
- remove_reactions ( /** @type {import('#client'). Derived } **/ ( dependency ) , 0 ) ;
382
+ remove_reactions ( /** @type {Derived } **/ ( dependency ) , 0 ) ;
382
383
}
383
384
}
384
385
385
386
/**
386
- * @param {import('#client'). Reaction } signal
387
+ * @param {Reaction } signal
387
388
* @param {number } start_index
388
389
* @returns {void }
389
390
*/
@@ -408,7 +409,7 @@ export function remove_reactions(signal, start_index) {
408
409
}
409
410
410
411
/**
411
- * @param {import('#client'). Reaction } signal
412
+ * @param {Reaction } signal
412
413
* @param {boolean } remove_dom
413
414
* @returns {void }
414
415
*/
@@ -424,7 +425,7 @@ export function destroy_effect_children(signal, remove_dom = false) {
424
425
}
425
426
426
427
/**
427
- * @param {import('#client'). Effect } effect
428
+ * @param {Effect } effect
428
429
* @returns {void }
429
430
*/
430
431
export function update_effect ( effect ) {
@@ -480,7 +481,7 @@ function infinite_loop_guard() {
480
481
}
481
482
482
483
/**
483
- * @param {Array<import('#client'). Effect> } root_effects
484
+ * @param {Array<Effect> } root_effects
484
485
* @returns {void }
485
486
*/
486
487
function flush_queued_root_effects ( root_effects ) {
@@ -501,7 +502,7 @@ function flush_queued_root_effects(root_effects) {
501
502
if ( effect . first === null && ( effect . f & BRANCH_EFFECT ) === 0 ) {
502
503
flush_queued_effects ( [ effect ] ) ;
503
504
} else {
504
- /** @type {import('#client'). Effect[] } */
505
+ /** @type {Effect[] } */
505
506
var collected_effects = [ ] ;
506
507
507
508
process_effects ( effect , collected_effects ) ;
@@ -514,7 +515,7 @@ function flush_queued_root_effects(root_effects) {
514
515
}
515
516
516
517
/**
517
- * @param {Array<import('#client'). Effect> } effects
518
+ * @param {Array<Effect> } effects
518
519
* @returns {void }
519
520
*/
520
521
function flush_queued_effects ( effects ) {
@@ -559,7 +560,7 @@ function process_deferred() {
559
560
}
560
561
561
562
/**
562
- * @param {import('#client'). Effect } signal
563
+ * @param {Effect } signal
563
564
* @returns {void }
564
565
*/
565
566
export function schedule_effect ( signal ) {
@@ -592,8 +593,8 @@ export function schedule_effect(signal) {
592
593
* bitwise flag passed in only. The collected effects array will be populated with all the user
593
594
* effects to be flushed.
594
595
*
595
- * @param {import('#client'). Effect } effect
596
- * @param {import('#client'). Effect[] } collected_effects
596
+ * @param {Effect } effect
597
+ * @param {Effect[] } collected_effects
597
598
* @returns {void }
598
599
*/
599
600
function process_effects ( effect , collected_effects ) {
@@ -679,7 +680,7 @@ export function flush_sync(fn) {
679
680
try {
680
681
infinite_loop_guard ( ) ;
681
682
682
- /** @type {import('#client'). Effect[] } */
683
+ /** @type {Effect[] } */
683
684
const root_effects = [ ] ;
684
685
685
686
current_scheduler_mode = FLUSH_SYNC ;
@@ -717,7 +718,7 @@ export async function tick() {
717
718
718
719
/**
719
720
* @template V
720
- * @param {import('#client'). Value<V> } signal
721
+ * @param {Value<V> } signal
721
722
* @returns {V }
722
723
*/
723
724
export function get ( signal ) {
@@ -765,7 +766,7 @@ export function get(signal) {
765
766
}
766
767
767
768
if ( ( flags & DERIVED ) !== 0 ) {
768
- var derived = /** @type {import('#client'). Derived } */ ( signal ) ;
769
+ var derived = /** @type {Derived } */ ( signal ) ;
769
770
770
771
if ( check_dirtiness ( derived ) ) {
771
772
update_derived ( derived ) ;
@@ -801,7 +802,7 @@ export function invalidate_inner_signals(fn) {
801
802
for ( signal of captured ) {
802
803
// Go one level up because derived signals created as part of props in legacy mode
803
804
if ( ( signal . f & LEGACY_DERIVED_PROP ) !== 0 ) {
804
- for ( const dep of /** @type {import('#client'). Derived } */ ( signal ) . deps || [ ] ) {
805
+ for ( const dep of /** @type {Derived } */ ( signal ) . deps || [ ] ) {
805
806
if ( ( dep . f & DERIVED ) === 0 ) {
806
807
mutate ( dep , null /* doesnt matter */ ) ;
807
808
}
@@ -833,7 +834,7 @@ export function untrack(fn) {
833
834
const STATUS_MASK = ~ ( DIRTY | MAYBE_DIRTY | CLEAN ) ;
834
835
835
836
/**
836
- * @param {import('#client'). Signal } signal
837
+ * @param {Signal } signal
837
838
* @param {number } status
838
839
* @returns {void }
839
840
*/
@@ -843,14 +844,12 @@ export function set_signal_status(signal, status) {
843
844
844
845
/**
845
846
* @template V
846
- * @param {V | import('#client'). Value<V> } val
847
- * @returns {val is import('#client'). Value<V> }
847
+ * @param {V | Value<V> } val
848
+ * @returns {val is Value<V> }
848
849
*/
849
850
export function is_signal ( val ) {
850
851
return (
851
- typeof val === 'object' &&
852
- val !== null &&
853
- typeof ( /** @type {import('#client').Value<V> } */ ( val ) . f ) === 'number'
852
+ typeof val === 'object' && val !== null && typeof ( /** @type {Value<V> } */ ( val ) . f ) === 'number'
854
853
) ;
855
854
}
856
855
@@ -868,8 +867,7 @@ export function getContext(key) {
868
867
const result = /** @type {T } */ ( context_map . get ( key ) ) ;
869
868
870
869
if ( DEV ) {
871
- const fn = /** @type {import('#client').ComponentContext } */ ( current_component_context )
872
- . function ;
870
+ const fn = /** @type {ComponentContext } */ ( current_component_context ) . function ;
873
871
if ( fn ) {
874
872
add_owner ( result , fn , true ) ;
875
873
}
@@ -949,7 +947,7 @@ function get_or_init_context_map(name) {
949
947
}
950
948
951
949
/**
952
- * @param {import('#client'). ComponentContext } component_context
950
+ * @param {ComponentContext } component_context
953
951
* @returns {Map<unknown, unknown> | null }
954
952
*/
955
953
function get_parent_context ( component_context ) {
@@ -965,7 +963,7 @@ function get_parent_context(component_context) {
965
963
}
966
964
967
965
/**
968
- * @param {import('#client'). Value<number> } signal
966
+ * @param {Value<number> } signal
969
967
* @param {1 | -1 } [d]
970
968
* @returns {number }
971
969
*/
@@ -976,7 +974,7 @@ export function update(signal, d = 1) {
976
974
}
977
975
978
976
/**
979
- * @param {import('#client'). Value<number> } signal
977
+ * @param {Value<number> } signal
980
978
* @param {1 | -1 } [d]
981
979
* @returns {number }
982
980
*/
@@ -1156,7 +1154,7 @@ export function deep_read(value, visited = new Set()) {
1156
1154
1157
1155
/**
1158
1156
* @template V
1159
- * @param {V | import('#client'). Value<V> } value
1157
+ * @param {V | Value<V> } value
1160
1158
* @returns {V }
1161
1159
*/
1162
1160
export function unwrap ( value ) {
0 commit comments