All files / src/functions observable.models.map.ts

100% Statements 12/12
100% Branches 4/4
100% Functions 3/3
100% Lines 10/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32        6x           19x 19x       16x 16x   16x 16x   16x           12x     6x  
'use strict';
 
import {Model} from 'mongoose';
 
import MongoObservableModel from './observable.model';
 
class MongoObservableModelsMap {
	private static _instance: MongoObservableModelsMap;
 
	public static init(): MongoObservableModelsMap {
		if (!MongoObservableModelsMap._instance) MongoObservableModelsMap._instance = new MongoObservableModelsMap();
		return MongoObservableModelsMap._instance;
	}
 
	public static get(model: Model<any>): MongoObservableModel {
		const instance: MongoObservableModelsMap = MongoObservableModelsMap.init();
		const map: Map<string, MongoObservableModel> = instance._map;
 
		const collectionName: string = model.collection.collectionName;
		if (!map.get(collectionName)) map.set(collectionName, new MongoObservableModel(collectionName));
 
		return map.get(collectionName);
	}
 
	private readonly _map: Map<string, MongoObservableModel>;
 
	private constructor() {
		this._map = new Map<string, MongoObservableModel>();
	}
}
export default MongoObservableModelsMap;