@liberation-data/drivine
Version:
Best and fastest graph database client for TypeScript / Node.js. Provides a level of abstraction for building highly scalable applications, without compromising architectural integrity
42 lines • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DatabaseRegistry = void 0;
const ConnectionProviderBuilder_1 = require("./ConnectionProviderBuilder");
const ConnectionProperties_1 = require("./ConnectionProperties");
class DatabaseRegistry {
static buildOrResolveFromEnv(name) {
return DatabaseRegistry.getInstance()
.builder()
.withProperties((0, ConnectionProperties_1.ConnectionPropertiesFromEnv)(name))
.register(name);
}
static getInstance() {
if (!DatabaseRegistry.instance) {
DatabaseRegistry.instance = new DatabaseRegistry();
}
return DatabaseRegistry.instance;
}
static tearDown() {
delete DatabaseRegistry.instance;
}
constructor() {
this._providers = new Map();
}
get providers() {
return Array.from(this._providers.values());
}
builder() {
return new ConnectionProviderBuilder_1.ConnectionProviderBuilder(this);
}
connectionProvider(name = 'default') {
if (name === 'default') {
return this._providers.values().next().value;
}
return this._providers.get(name);
}
register(connectionProvider) {
this._providers.set(connectionProvider.name, connectionProvider);
}
}
exports.DatabaseRegistry = DatabaseRegistry;
//# sourceMappingURL=DatabaseRegistry.js.map