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       25x               2x     4x  
'use strict';
 
import SqliteObservableTable from './observable.table';
import SqliteJournalPoller from '../sqlite.journal.poller';
 
class SqliteObservableTablesMap {
	public static init(): SqliteObservableTablesMap {
		if (!SqliteObservableTablesMap._instance) SqliteObservableTablesMap._instance = new SqliteObservableTablesMap();
		return SqliteObservableTablesMap._instance;
	}
 
	public static get(orm: any, entity: any, poller: SqliteJournalPoller): SqliteObservableTable {
		const instance: SqliteObservableTablesMap = SqliteObservableTablesMap.init();
		const map: Map<string, SqliteObservableTable> = instance._map;
 
		const meta: any = orm.getMetadata().get(entity.name);
		const tableName: string = meta.tableName;
		if (!map.get(tableName)) map.set(tableName, new SqliteObservableTable(orm, entity, poller));
 
		return map.get(tableName);
	}
 
	public static clear(): void {
		if (SqliteObservableTablesMap._instance) SqliteObservableTablesMap._instance._map.clear();
	}
 
	private static _instance: SqliteObservableTablesMap;
 
	private readonly _map: Map<string, SqliteObservableTable>;
 
	private constructor() {
		this._map = new Map<string, SqliteObservableTable>();
	}
}
export default SqliteObservableTablesMap;