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

100% Statements 15/15
100% Branches 6/6
100% Functions 4/4
100% Lines 12/12

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 33 34 35 36    4x         10x 10x       8x 8x   8x 8x 8x   8x       29x               2x     4x  
'use strict';
 
import PostgresObservableTable from './observable.table';
import PostgresListener from '../postgres.listener';
 
class PostgresObservableTablesMap {
	public static init(): PostgresObservableTablesMap {
		if (!PostgresObservableTablesMap._instance) PostgresObservableTablesMap._instance = new PostgresObservableTablesMap();
		return PostgresObservableTablesMap._instance;
	}
 
	public static get(orm: any, entity: any, listener: PostgresListener): PostgresObservableTable {
		const instance: PostgresObservableTablesMap = PostgresObservableTablesMap.init();
		const map: Map<string, PostgresObservableTable> = instance._map;
 
		const meta: any = orm.getMetadata().get(entity.name);
		const tableName: string = meta.tableName;
		if (!map.get(tableName)) map.set(tableName, new PostgresObservableTable(orm, entity, listener));
 
		return map.get(tableName);
	}
 
	public static clear(): void {
		if (PostgresObservableTablesMap._instance) PostgresObservableTablesMap._instance._map.clear();
	}
 
	private static _instance: PostgresObservableTablesMap;
 
	private readonly _map: Map<string, PostgresObservableTable>;
 
	private constructor() {
		this._map = new Map<string, PostgresObservableTable>();
	}
}
export default PostgresObservableTablesMap;