34 lines
600 B
JavaScript
34 lines
600 B
JavaScript
const sym = Symbol.for('lion::SingletonManagerClassStorage');
|
|
|
|
export class SingletonManagerClass {
|
|
constructor() {
|
|
this._map = window[sym] ? window[sym] : (window[sym] = new Map());
|
|
}
|
|
|
|
/**
|
|
* Ignores already existing keys (e.g. it will not override)
|
|
*
|
|
* @param {string} key
|
|
* @param {any} value
|
|
*/
|
|
set(key, value) {
|
|
if (!this.has(key)) {
|
|
this._map.set(key, value);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param {string} key
|
|
* @returns
|
|
*/
|
|
get(key) {
|
|
return this._map.get(key);
|
|
}
|
|
|
|
/**
|
|
* @param {string} key
|
|
*/
|
|
has(key) {
|
|
return this._map.has(key);
|
|
}
|
|
}
|