From 4928357e8a16d87cf76d27db0c424d139770894d Mon Sep 17 00:00:00 2001 From: Pavel Gnedov Date: Sat, 23 Jul 2022 21:03:34 +0700 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=B8=D1=81=D1=82=D0=BE=D1=87=D0=BD=D0=B8=D0=BA=20?= =?UTF-8?q?=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=B6=D1=83=D1=80=D0=BD=D0=B0=D0=BB=D0=B0=20=D0=B8=D0=B7=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/couchdb-datasources/changes.ts | 32 ++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/couchdb-datasources/changes.ts diff --git a/src/couchdb-datasources/changes.ts b/src/couchdb-datasources/changes.ts new file mode 100644 index 0000000..925a485 --- /dev/null +++ b/src/couchdb-datasources/changes.ts @@ -0,0 +1,32 @@ +import { CouchDb } from '@app/event-emitter/couchdb-datasources/couchdb'; +import { Injectable, Logger } from '@nestjs/common'; +import nano from 'nano'; + +@Injectable() +export class Changes { + private static logger = new Logger(Changes.name); + private static changesDb = null; + private static initilized = false; + + // TODO: Указать полные типы данных + + static async getDatasource(): Promise> { + if (Changes.initilized) { + return Changes.changesDb; + } + Changes.initilized = true; + const n = CouchDb.getCouchDb(); + const changesDbName = ''; // TODO: Загрузить из конфига + const dbs = await n.db.list(); + if (!dbs.includes(changesDbName)) { + await n.db.create(changesDbName); + } + Changes.changesDb = await n.db.use(changesDbName); + Changes.logger.log(`Connected to changes db - ${changesDbName}`); + return Changes.changesDb; + } + + async getDatasource(): Promise> { + return await Changes.getDatasource(); + } +}