File tree Expand file tree Collapse file tree 2 files changed +13
-5
lines changed
Expand file tree Collapse file tree 2 files changed +13
-5
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ ' @finsweet/attributes ' : patch
3+ ---
4+
5+ fix: race conditions when initializing multiple scripts
Original file line number Diff line number Diff line change @@ -29,13 +29,10 @@ const init = () => {
2929 // Collect pre-existing callbacks
3030 const callbacks = Array . isArray ( FinsweetAttributes ) ? ( FinsweetAttributes as FinsweetAttributesCallback [ ] ) : [ ] ;
3131
32- // Collect library scripts
33- const scripts = [ ...document . querySelectorAll < HTMLScriptElement > ( `script[type="module"][src="${ import . meta. url } "]` ) ] ;
34-
3532 // Init Attributes object
3633 window . FinsweetAttributes = {
3734 version,
38- scripts,
35+ scripts : [ ] ,
3936 modules : { } ,
4037 process : new Set < FinsweetAttributeKey > ( ) ,
4138 utils : {
@@ -72,7 +69,13 @@ const init = () => {
7269const initAttributes = ( ) => {
7370 let autoLoad = false ;
7471
75- for ( const script of window . FinsweetAttributes . scripts ) {
72+ const scripts = document . querySelectorAll < HTMLScriptElement > ( `script[type="module"][src="${ import . meta. url } "]` ) ;
73+
74+ for ( const script of scripts ) {
75+ if ( window . FinsweetAttributes . scripts . includes ( script ) ) continue ;
76+
77+ window . FinsweetAttributes . scripts . push ( script ) ;
78+
7679 autoLoad ||= script . getAttribute ( `${ ATTRIBUTES_ATTRIBUTE_PREFIX } -auto` ) === 'true' ;
7780
7881 for ( const key of ATTRIBUTE_KEYS ) {
You can’t perform that action at this time.
0 commit comments