All files / src/mongodb/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        12x           19x 19x       16x 16x   16x 16x   16x           12x     12x  
'use strict';
 
import {Model} from 'mongoose';
 
import ObservableModel from './observable.model';
 
class ObservableModelsMap {
	private static _instance: ObservableModelsMap;
 
	public static init(): ObservableModelsMap {
		if (!ObservableModelsMap._instance) ObservableModelsMap._instance = new ObservableModelsMap();
		return ObservableModelsMap._instance;
	}
 
	public static get(model: Model<any>): ObservableModel {
		const instance: ObservableModelsMap = ObservableModelsMap.init();
		const map: Map<string, ObservableModel> = instance._map;
 
		const collectionName: string = model.collection.collectionName;
		if (!map.get(collectionName)) map.set(collectionName, new ObservableModel(collectionName));
 
		return map.get(collectionName);
	}
 
	private readonly _map: Map<string, ObservableModel>;
 
	private constructor() {
		this._map = new Map<string, ObservableModel>();
	}
}
export default ObservableModelsMap;