import * as plugins from './plugins.js';
import { SmartdataCollection } from './classes.collection.js';
import { SmartdataDb } from './classes.db.js';

export class CollectionFactory {
  public collections: { [key: string]: SmartdataCollection<any> } = {};

  public getCollection = (nameArg: string, dbArg: SmartdataDb): SmartdataCollection<any> => {
    if (!this.collections[nameArg]) {
      this.collections[nameArg] = (() => {
        if (dbArg instanceof SmartdataDb) {
          // tslint:disable-next-line: no-string-literal
          return new SmartdataCollection(nameArg, dbArg);
        }
      })();
    }
    return this.collections[nameArg];
  };
}