@@ -183,9 +183,12 @@ export default class Component {
183
183
this . stylesheet . warn_on_unused_selectors ( this ) ;
184
184
}
185
185
186
- add_var ( variable : Var ) {
186
+ add_var ( variable : Var , add_to_lookup = true ) {
187
187
this . vars . push ( variable ) ;
188
- this . var_lookup . set ( variable . name , variable ) ;
188
+
189
+ if ( add_to_lookup ) {
190
+ this . var_lookup . set ( variable . name , variable ) ;
191
+ }
189
192
}
190
193
191
194
add_reference ( name : string ) {
@@ -216,6 +219,10 @@ export default class Component {
216
219
variable . subscribable = true ;
217
220
}
218
221
} else {
222
+ if ( this . compile_options . varsReport === 'full' ) {
223
+ this . add_var ( { name, referenced : true } , false ) ;
224
+ }
225
+
219
226
this . used_names . add ( name ) ;
220
227
}
221
228
}
@@ -340,19 +347,7 @@ export default class Component {
340
347
css,
341
348
ast : this . original_ast ,
342
349
warnings : this . warnings ,
343
- vars : this . vars
344
- . filter ( v => ! v . global && ! v . internal )
345
- . map ( v => ( {
346
- name : v . name ,
347
- export_name : v . export_name || null ,
348
- injected : v . injected || false ,
349
- module : v . module || false ,
350
- mutated : v . mutated || false ,
351
- reassigned : v . reassigned || false ,
352
- referenced : v . referenced || false ,
353
- writable : v . writable || false ,
354
- referenced_from_script : v . referenced_from_script || false
355
- } ) ) ,
350
+ vars : this . get_vars_report ( ) ,
356
351
stats : this . stats . render ( )
357
352
} ;
358
353
}
@@ -402,6 +397,28 @@ export default class Component {
402
397
} ;
403
398
}
404
399
400
+ get_vars_report ( ) : Var [ ] {
401
+ const { compile_options, vars } = this ;
402
+
403
+ const vars_report = compile_options . varsReport === false
404
+ ? [ ]
405
+ : compile_options . varsReport === 'full'
406
+ ? vars
407
+ : vars . filter ( v => ! v . global && ! v . internal ) ;
408
+
409
+ return vars_report . map ( v => ( {
410
+ name : v . name ,
411
+ export_name : v . export_name || null ,
412
+ injected : v . injected || false ,
413
+ module : v . module || false ,
414
+ mutated : v . mutated || false ,
415
+ reassigned : v . reassigned || false ,
416
+ referenced : v . referenced || false ,
417
+ writable : v . writable || false ,
418
+ referenced_from_script : v . referenced_from_script || false
419
+ } ) ) ;
420
+ }
421
+
405
422
error (
406
423
pos : {
407
424
start : number ;
0 commit comments