@@ -20,7 +20,8 @@ import {
20
20
LruGcMemoryOfflineComponentProvider ,
21
21
MemoryOfflineComponentProvider ,
22
22
MultiTabOfflineComponentProvider ,
23
- OfflineComponentProvider ,
23
+ OfflineComponentProviderFactory ,
24
+ OnlineComponentProviderFactory ,
24
25
OnlineComponentProvider
25
26
} from '../core/component_provider' ;
26
27
@@ -38,31 +39,31 @@ export type MemoryLocalCache = {
38
39
/**
39
40
* @internal
40
41
*/
41
- _onlineComponentProvider : OnlineComponentProvider ;
42
+ _onlineComponentProvider : OnlineComponentProviderFactory ;
42
43
/**
43
44
* @internal
44
45
*/
45
- _offlineComponentProvider : MemoryOfflineComponentProvider ;
46
+ _offlineComponentProvider : OfflineComponentProviderFactory ;
46
47
} ;
47
48
48
49
class MemoryLocalCacheImpl implements MemoryLocalCache {
49
50
kind : 'memory' = 'memory' ;
50
51
/**
51
52
* @internal
52
53
*/
53
- _onlineComponentProvider : OnlineComponentProvider ;
54
+ _onlineComponentProvider : OnlineComponentProviderFactory ;
54
55
/**
55
56
* @internal
56
57
*/
57
- _offlineComponentProvider : MemoryOfflineComponentProvider ;
58
+ _offlineComponentProvider : OfflineComponentProviderFactory ;
58
59
59
60
constructor ( settings ?: MemoryCacheSettings ) {
60
- this . _onlineComponentProvider = new OnlineComponentProvider ( ) ;
61
+ this . _onlineComponentProvider = OnlineComponentProvider . provider ;
61
62
if ( settings ?. garbageCollector ) {
62
63
this . _offlineComponentProvider =
63
64
settings . garbageCollector . _offlineComponentProvider ;
64
65
} else {
65
- this . _offlineComponentProvider = new MemoryOfflineComponentProvider ( ) ;
66
+ this . _offlineComponentProvider = MemoryOfflineComponentProvider . provider ;
66
67
}
67
68
}
68
69
@@ -83,23 +84,23 @@ export type PersistentLocalCache = {
83
84
/**
84
85
* @internal
85
86
*/
86
- _onlineComponentProvider : OnlineComponentProvider ;
87
+ _onlineComponentProvider : OnlineComponentProviderFactory ;
87
88
/**
88
89
* @internal
89
90
*/
90
- _offlineComponentProvider : OfflineComponentProvider ;
91
+ _offlineComponentProvider : OfflineComponentProviderFactory ;
91
92
} ;
92
93
93
94
class PersistentLocalCacheImpl implements PersistentLocalCache {
94
95
kind : 'persistent' = 'persistent' ;
95
96
/**
96
97
* @internal
97
98
*/
98
- _onlineComponentProvider : OnlineComponentProvider ;
99
+ _onlineComponentProvider : OnlineComponentProviderFactory ;
99
100
/**
100
101
* @internal
101
102
*/
102
- _offlineComponentProvider : OfflineComponentProvider ;
103
+ _offlineComponentProvider : OfflineComponentProviderFactory ;
103
104
104
105
constructor ( settings : PersistentCacheSettings | undefined ) {
105
106
let tabManager : PersistentTabManager ;
@@ -147,7 +148,7 @@ export type MemoryEagerGarbageCollector = {
147
148
/**
148
149
* @internal
149
150
*/
150
- _offlineComponentProvider : MemoryOfflineComponentProvider ;
151
+ _offlineComponentProvider : OfflineComponentProviderFactory ;
151
152
} ;
152
153
153
154
/**
@@ -167,18 +168,18 @@ export type MemoryLruGarbageCollector = {
167
168
/**
168
169
* @internal
169
170
*/
170
- _offlineComponentProvider : MemoryOfflineComponentProvider ;
171
+ _offlineComponentProvider : OfflineComponentProviderFactory ;
171
172
} ;
172
173
173
174
class MemoryEagerGarbageCollectorImpl implements MemoryEagerGarbageCollector {
174
175
kind : 'memoryEager' = 'memoryEager' ;
175
176
/**
176
177
* @internal
177
178
*/
178
- _offlineComponentProvider : MemoryOfflineComponentProvider ;
179
+ _offlineComponentProvider : OfflineComponentProviderFactory ;
179
180
180
181
constructor ( ) {
181
- this . _offlineComponentProvider = new MemoryOfflineComponentProvider ( ) ;
182
+ this . _offlineComponentProvider = MemoryOfflineComponentProvider . provider ;
182
183
}
183
184
184
185
toJSON ( ) : { } {
@@ -191,12 +192,12 @@ class MemoryLruGarbageCollectorImpl implements MemoryLruGarbageCollector {
191
192
/**
192
193
* @internal
193
194
*/
194
- _offlineComponentProvider : MemoryOfflineComponentProvider ;
195
+ _offlineComponentProvider : OfflineComponentProviderFactory ;
195
196
196
197
constructor ( cacheSize ?: number ) {
197
- this . _offlineComponentProvider = new LruGcMemoryOfflineComponentProvider (
198
- cacheSize
199
- ) ;
198
+ this . _offlineComponentProvider = {
199
+ build : ( ) => new LruGcMemoryOfflineComponentProvider ( cacheSize )
200
+ } ;
200
201
}
201
202
202
203
toJSON ( ) : { } {
@@ -297,11 +298,11 @@ export type PersistentSingleTabManager = {
297
298
/**
298
299
* @internal
299
300
*/
300
- _onlineComponentProvider ?: OnlineComponentProvider ;
301
+ _onlineComponentProvider ?: OnlineComponentProviderFactory ;
301
302
/**
302
303
* @internal
303
304
*/
304
- _offlineComponentProvider ?: OfflineComponentProvider ;
305
+ _offlineComponentProvider ?: OfflineComponentProviderFactory ;
305
306
} ;
306
307
307
308
class SingleTabManagerImpl implements PersistentSingleTabManager {
@@ -310,11 +311,11 @@ class SingleTabManagerImpl implements PersistentSingleTabManager {
310
311
/**
311
312
* @internal
312
313
*/
313
- _onlineComponentProvider ?: OnlineComponentProvider ;
314
+ _onlineComponentProvider ?: OnlineComponentProviderFactory ;
314
315
/**
315
316
* @internal
316
317
*/
317
- _offlineComponentProvider ?: OfflineComponentProvider ;
318
+ _offlineComponentProvider ?: OfflineComponentProviderFactory ;
318
319
319
320
constructor ( private forceOwnership ?: boolean ) { }
320
321
@@ -328,12 +329,15 @@ class SingleTabManagerImpl implements PersistentSingleTabManager {
328
329
_initialize (
329
330
settings : Omit < PersistentCacheSettings , 'tabManager' > | undefined
330
331
) : void {
331
- this . _onlineComponentProvider = new OnlineComponentProvider ( ) ;
332
- this . _offlineComponentProvider = new IndexedDbOfflineComponentProvider (
333
- this . _onlineComponentProvider ,
334
- settings ?. cacheSizeBytes ,
335
- this . forceOwnership
336
- ) ;
332
+ this . _onlineComponentProvider = OnlineComponentProvider . provider ;
333
+ this . _offlineComponentProvider = {
334
+ build : ( onlineComponents : OnlineComponentProvider ) =>
335
+ new IndexedDbOfflineComponentProvider (
336
+ onlineComponents ,
337
+ settings ?. cacheSizeBytes ,
338
+ this . forceOwnership
339
+ )
340
+ } ;
337
341
}
338
342
}
339
343
@@ -350,12 +354,12 @@ export type PersistentMultipleTabManager = {
350
354
/**
351
355
* @internal
352
356
*/
353
- _onlineComponentProvider ?: OnlineComponentProvider ;
357
+ _onlineComponentProvider ?: OnlineComponentProviderFactory ;
354
358
/**
355
359
* @internal
356
360
*/
357
361
358
- _offlineComponentProvider ?: OfflineComponentProvider ;
362
+ _offlineComponentProvider ?: OfflineComponentProviderFactory ;
359
363
} ;
360
364
361
365
class MultiTabManagerImpl implements PersistentMultipleTabManager {
@@ -364,11 +368,11 @@ class MultiTabManagerImpl implements PersistentMultipleTabManager {
364
368
/**
365
369
* @internal
366
370
*/
367
- _onlineComponentProvider ?: OnlineComponentProvider ;
371
+ _onlineComponentProvider ?: OnlineComponentProviderFactory ;
368
372
/**
369
373
* @internal
370
374
*/
371
- _offlineComponentProvider ?: OfflineComponentProvider ;
375
+ _offlineComponentProvider ?: OfflineComponentProviderFactory ;
372
376
373
377
toJSON ( ) : { } {
374
378
return { kind : this . kind } ;
@@ -380,11 +384,14 @@ class MultiTabManagerImpl implements PersistentMultipleTabManager {
380
384
_initialize (
381
385
settings : Omit < PersistentCacheSettings , 'tabManager' > | undefined
382
386
) : void {
383
- this . _onlineComponentProvider = new OnlineComponentProvider ( ) ;
384
- this . _offlineComponentProvider = new MultiTabOfflineComponentProvider (
385
- this . _onlineComponentProvider ,
386
- settings ?. cacheSizeBytes
387
- ) ;
387
+ this . _onlineComponentProvider = OnlineComponentProvider . provider ;
388
+ this . _offlineComponentProvider = {
389
+ build : ( onlineComponents : OnlineComponentProvider ) =>
390
+ new MultiTabOfflineComponentProvider (
391
+ onlineComponents ,
392
+ settings ?. cacheSizeBytes
393
+ )
394
+ } ;
388
395
}
389
396
}
390
397
0 commit comments