@@ -7,7 +7,16 @@ export const staticStores: SharedCreated[] = [];
77export class SharedValuesManager < T > {
88 data = new Map < string , SharedValue < T > > ( ) ;
99
10- constructor ( protected defaultValue : ( ) => T = ( ) => null as T ) {
10+ static INSTANCES = new Map < string , SharedValuesManager < any > > ( ) ;
11+
12+ private constructor ( protected defaultValue : ( ) => T = ( ) => null as T ) {
13+ }
14+
15+ static getInstance < T > ( instanceKey : string ) : SharedValuesManager < T > {
16+ if ( ! SharedValuesManager . INSTANCES . has ( instanceKey ) ) {
17+ SharedValuesManager . INSTANCES . set ( instanceKey , new SharedValuesManager ( ) ) ;
18+ }
19+ return SharedValuesManager . INSTANCES . get ( instanceKey ) as SharedValuesManager < T > ;
1120 }
1221
1322 addListener ( key : string , prefix : Prefix , listener : AFunction ) {
@@ -198,10 +207,12 @@ export class SharedValuesApi<T> {
198207 }
199208 }
200209
210+ // noinspection JSUnusedGlobalSymbols
201211 clearAll ( ) {
202212 this . sharedData . clearAll ( ) ;
203213 }
204214
215+ // noinspection JSUnusedGlobalSymbols
205216 clearScope ( scopeName ?: Prefix ) {
206217 const prefixToSearch : Prefix = scopeName || "_global" ;
207218 this . sharedData . data . forEach ( ( _ , key ) => {
@@ -213,11 +224,13 @@ export class SharedValuesApi<T> {
213224 } ) ;
214225 }
215226
227+ // noinspection JSUnusedGlobalSymbols
216228 resolve ( sharedCreated : SharedCreated ) : T | undefined {
217229 const { key, prefix} = sharedCreated ;
218230 return this . get ( key , prefix ) ;
219231 }
220232
233+ // noinspection JSUnusedGlobalSymbols
221234 clear ( key : string , scopeName : Prefix ) : void ;
222235 clear ( sharedCreated : SharedCreated ) : void ;
223236 clear ( key : string | SharedCreated , scopeName ?: Prefix ) {
@@ -233,11 +246,13 @@ export class SharedValuesApi<T> {
233246 this . sharedData . clear ( keyStr , prefixStr ) ;
234247 }
235248
249+ // noinspection JSUnusedGlobalSymbols
236250 has ( key : string , scopeName : Prefix = "_global" ) : boolean {
237251 const prefix : Prefix = scopeName || "_global" ;
238252 return ! ! this . sharedData . has ( key , prefix ) ;
239253 }
240254
255+ // noinspection JSUnusedGlobalSymbols
241256 getAll ( ) : Record < string , Record < string , T > > {
242257 const all : Record < string , Record < string , any > > = { } ;
243258 this . sharedData . data . forEach ( ( value , key ) => {
0 commit comments