@@ -26,15 +26,14 @@ let searchview;
2626let packageInfoOpened = false ;
2727
2828document . addEventListener ( "DOMContentLoaded" , async ( ) => {
29- window . scannedPackageCache = [ ] ;
30- window . recentPackageCache = [ ] ;
29+ window . cachedSpecs = [ ] ;
3130 window . locker = null ;
3231 window . settings = await new Settings ( ) . fetchUserConfig ( ) ;
3332 window . i18n = await new i18n ( ) . fetch ( ) ;
3433 window . navigation = new ViewNavigation ( ) ;
3534 window . wiki = new Wiki ( ) ;
3635
37- await init ( ) ;
36+ await loadDataSet ( ) ;
3837 window . dispatchEvent (
3938 new CustomEvent ( EVENTS . SETTINGS_SAVED , {
4039 detail : window . settings . config
@@ -74,26 +73,12 @@ async function onSocketInitOrReload(event) {
7473 const data = event . detail ;
7574 const { cache } = data ;
7675
77- window . scannedPackageCache = cache . availables ;
78- window . recentPackageCache = cache . lru ;
76+ window . cachedSpecs = cache . map ( ( metadata ) => metadata . spec ) ;
7977 console . log (
80- "[INFO] Older packages are loaded!" ,
81- window . scannedPackageCache
82- ) ;
83- console . log (
84- "[INFO] Recent packages are loaded!" ,
85- window . recentPackageCache
78+ "[INFO] Cached specs are loaded!" ,
79+ window . cachedSpecs
8680 ) ;
8781
88- initSearchNav ( cache , {
89- searchOptions : {
90- nsn,
91- secureDataSet
92- }
93- } ) ;
94- searchview . mount ( ) ;
95- searchview . initialize ( ) ;
96-
9782 const nsnActivePackage = secureDataSet . linker . get ( 0 ) ;
9883 const nsnRootPackage = nsnActivePackage ?
9984 `${ nsnActivePackage . name } @${ nsnActivePackage . version } ` :
@@ -105,34 +90,26 @@ async function onSocketInitOrReload(event) {
10590 ) {
10691 // it means we removed the previous active package, which is still active in network, so we need to re-init
10792 await init ( ) ;
108-
109- // FIXME: initSearchNav is called twice, we need to fix this
110- initSearchNav ( cache , {
111- searchOptions : {
112- nsn,
113- secureDataSet
114- }
115- } ) ;
11693 }
94+ else if ( window . cachedSpecs . length === 0 ) {
95+ await loadDataSet ( ) ;
96+ }
97+
98+ initSearchNav ( cache , {
99+ searchOptions : {
100+ nsn,
101+ secureDataSet
102+ }
103+ } ) ;
104+ searchview . mount ( ) ;
105+ searchview . initialize ( ) ;
117106}
118107
119108async function init ( options = { } ) {
120109 const { navigateToNetworkView = false } = options ;
121110
122- secureDataSet = new NodeSecureDataSet ( {
123- flagsToIgnore : window . settings . config . ignore . flags ,
124- warningsToIgnore : window . settings . config . ignore . warnings ,
125- theme : window . settings . config . theme
126- } ) ;
127- await secureDataSet . init ( ) ;
128-
129- if ( secureDataSet . data === null ) {
130- window . navigation . hideMenu ( "network--view" ) ;
131- window . navigation . hideMenu ( "home--view" ) ;
132- window . navigation . setNavByName ( "search--view" ) ;
133-
134- searchview ??= new SearchView ( null , null ) ;
135-
111+ const datasetLoaded = await loadDataSet ( ) ;
112+ if ( ! datasetLoaded ) {
136113 return ;
137114 }
138115
@@ -190,6 +167,29 @@ async function init(options = {}) {
190167 console . log ( "[INFO] Node-Secure is ready!" ) ;
191168}
192169
170+ async function loadDataSet ( ) {
171+ const config = window . settings . config ;
172+
173+ secureDataSet = new NodeSecureDataSet ( {
174+ flagsToIgnore : config . ignore . flags ,
175+ warningsToIgnore : config . ignore . warnings ,
176+ theme : config . theme
177+ } ) ;
178+ await secureDataSet . init ( ) ;
179+
180+ if ( secureDataSet . data === null ) {
181+ window . navigation . hideMenu ( "network--view" ) ;
182+ window . navigation . hideMenu ( "home--view" ) ;
183+ window . navigation . setNavByName ( "search--view" ) ;
184+
185+ searchview ??= new SearchView ( null , null ) ;
186+
187+ return false ;
188+ }
189+
190+ return true ;
191+ }
192+
193193async function updateShowInfoMenu ( params ) {
194194 if ( params . nodes . length === 0 ) {
195195 window . networkNav . currentNodeParams = null ;
0 commit comments