{"version":3,"sources":["../src/data/Database.ts"],"sourcesContent":["import { DataProvider } from './DataProvider';\nimport { Enum } from '../types/Enum';\nimport { Constructor, ofConstruct } from '../types/Constructor';\n\nexport type DatabaseOptions = {\n  user?: string;\n  password?: string;\n  host?: string;\n  port?: number;\n  cluster?: string;\n  connectionString?: string;\n  maxPoolSize?: number;\n  minPoolSize?: number;\n  maxIdleTimeMS?: number;\n};\n\nexport class DefaultProvider implements DataProvider {}\n\nexport class Database extends Enum {\n  static readonly Default = new Database('Default', DefaultProvider);\n\n  constructor(\n    name: string,\n    readonly provider: Constructor<DataProvider> | DataProvider,\n    readonly options?: DatabaseOptions\n  ) {\n    super(name);\n  }\n\n  provide = <P>(): P => ofConstruct(this.provider, this);\n}\n"],"mappings":";;;;;;;;AAgBO,IAAM,kBAAN,MAA8C;AAAC;AAE/C,IAAM,WAAN,MAAM,kBAAiB,KAAK;AAAA,EAGjC,YACE,MACS,UACA,SACT;AACA,UAAM,IAAI;AAHD;AACA;AAAA,EAGX;AAAA,EARA,OAAgB,UAAU,IAAI,UAAS,WAAW,eAAe;AAAA,EAUjE,UAAU,MAAY,YAAY,KAAK,UAAU,IAAI;AACvD;","names":[]}