@onurege3467/zerohelper 5.0.0 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,18 +1,74 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Tüm veritabanı adaptörlerinin uyması gereken ortak
|
|
3
|
-
* @
|
|
4
|
-
* @property {function(string, object=): Promise<Array<object>>} select - Belirtilen koşullara göre veri seçer.
|
|
5
|
-
* @property {function(string, object=): Promise<object|null>} selectOne - Koşula uyan ilk veriyi seçer.
|
|
6
|
-
* @property {function(string, object): Promise<number|string|object>} insert - Yeni bir veri ekler ve ID'sini döndürür.
|
|
7
|
-
* @property {function(string, object, object): Promise<number>} update - Veriyi günceller ve etkilenen satır sayısını döndürür.
|
|
8
|
-
* @property {function(string, object, object): Promise<number>} updateOne - Koşula uyan ilk veriyi günceller.
|
|
9
|
-
* @property {function(string, object): Promise<number>} delete - Veriyi siler ve etkilenen satır sayısını döndürür.
|
|
10
|
-
* @property {function(string, object): Promise<number>} deleteOne - Koşula uyan ilk veriyi siler.
|
|
11
|
-
* @property {function(string, object, object): Promise<any>} set - Veri varsa günceller, yoksa ekler (upsert).
|
|
12
|
-
* @property {function(string, Array<object>): Promise<number>} bulkInsert - Toplu veri ekler.
|
|
13
|
-
* @property {function(string, object=): Promise<void>} ensureTable - Tablonun var olduğundan emin olur.
|
|
14
|
-
* @property {function(): Promise<void>} close - Veritabanı bağlantısını kapatır.
|
|
2
|
+
* Tüm veritabanı adaptörlerinin uyması gereken ortak arayüzü tanımlar.
|
|
3
|
+
* @interface
|
|
15
4
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
5
|
+
class IDatabase {
|
|
6
|
+
/**
|
|
7
|
+
* Belirtilen koşullara göre birden çok kayıt seçer.
|
|
8
|
+
* @param {string} table - Verinin seçileceği tablo veya koleksiyonun adı.
|
|
9
|
+
* @param {object} [where] - (Opsiyonel) Kayıtları filtrelemek için kullanılacak koşul nesnesi.
|
|
10
|
+
* @returns {Promise<Array<object>>} Koşullara uyan kayıtların bir dizisini içeren bir Promise.
|
|
11
|
+
*/
|
|
12
|
+
select(table, where) {}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Belirtilen koşullara göre tek bir kayıt seçer.
|
|
16
|
+
* @param {string} table - Verinin seçileceği tablo veya koleksiyonun adı.
|
|
17
|
+
* @param {object} [where] - (Opsiyonel) Kaydı filtrelemek için kullanılacak koşul nesnesi.
|
|
18
|
+
* @returns {Promise<object|null>} Koşula uyan ilk kaydı veya bulunamazsa `null` içeren bir Promise.
|
|
19
|
+
*/
|
|
20
|
+
selectOne(table, where) {}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Yeni bir kayıt ekler.
|
|
24
|
+
* @param {string} table - Verinin ekleneceği tablo veya koleksiyonun adı.
|
|
25
|
+
* @param {object} data - Eklenecek veriyi içeren nesne.
|
|
26
|
+
* @returns {Promise<number|string|object>} Eklenen yeni kaydın ID'sini içeren bir Promise.
|
|
27
|
+
*/
|
|
28
|
+
insert(table, data) {}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Belirtilen koşullara uyan kayıtları günceller.
|
|
32
|
+
* @param {string} table - Verinin güncelleneceği tablo veya koleksiyonun adı.
|
|
33
|
+
* @param {object} data - Güncellenecek yeni verileri içeren nesne.
|
|
34
|
+
* @param {object} where - Hangi kayıtların güncelleneceğini belirleyen koşul nesnesi.
|
|
35
|
+
* @returns {Promise<number>} Etkilenen (güncellenen) kayıt sayısını içeren bir Promise.
|
|
36
|
+
*/
|
|
37
|
+
update(table, data, where) {}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Bir kaydı günceller veya yoksa yeni bir kayıt olarak ekler (Upsert).
|
|
41
|
+
* @param {string} table - İşlem yapılacak tablo veya koleksiyonun adı.
|
|
42
|
+
* @param {object} data - Ayarlanacak veya güncellenecek veriyi içeren nesne.
|
|
43
|
+
* @param {object} where - Kaydın varlığını kontrol etmek ve güncellemek için kullanılacak koşul nesnesi.
|
|
44
|
+
* @returns {Promise<any>} Ekleme durumunda yeni ID'yi, güncelleme durumunda etkilenen satır sayısını içeren bir Promise.
|
|
45
|
+
*/
|
|
46
|
+
set(table, data, where) {}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Belirtilen koşullara uyan kayıtları siler.
|
|
50
|
+
* @param {string} table - Verinin silineceği tablo veya koleksiyonun adı.
|
|
51
|
+
* @param {object} where - Hangi kayıtların silineceğini belirleyen koşul nesnesi.
|
|
52
|
+
* @returns {Promise<number>} Silinen kayıt sayısını içeren bir Promise.
|
|
53
|
+
*/
|
|
54
|
+
delete(table, where) {}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Birden çok kaydı toplu olarak ekler.
|
|
58
|
+
* @param {string} table - Verilerin ekleneceği tablo veya koleksiyonun adı.
|
|
59
|
+
* @param {Array<object>} dataArray - Eklenecek kayıtları içeren bir dizi.
|
|
60
|
+
* @returns {Promise<number>} Eklenen kayıt sayısını içeren bir Promise.
|
|
61
|
+
*/
|
|
62
|
+
bulkInsert(table, dataArray) {}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Veritabanı bağlantısını güvenli bir şekilde sonlandırır.
|
|
66
|
+
* @returns {Promise<void>}
|
|
67
|
+
*/
|
|
68
|
+
close() {}
|
|
69
|
+
|
|
70
|
+
// Diğer metotları da buraya ekleyebilirsiniz (updateOne, deleteOne, ensureTable vb.)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Bu dosyanın bir modül olarak tanınması ve tipin export edilmesi için bu satır önemli.
|
|
74
|
+
module.exports = IDatabase;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
const IDatabase = require('./IDatabase'); // Arayüzü import et
|
|
2
|
+
|
|
2
3
|
/**
|
|
3
4
|
* @implements {IDatabase}
|
|
4
5
|
*/
|
|
5
6
|
const fs = require('fs').promises; // Asenkron dosya işlemleri için
|
|
6
7
|
const path = require('path');
|
|
7
8
|
|
|
8
|
-
class JsonDatabase {
|
|
9
|
+
class JsonDatabase extends IDatabase{
|
|
9
10
|
/**
|
|
10
11
|
* @param {object} config - Yapılandırma nesnesi.
|
|
11
12
|
* @param {string} config.filePath - JSON veritabanı dosyasının yolu.
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
const IDatabase = require('./IDatabase'); // Arayüzü import et
|
|
2
|
+
|
|
2
3
|
/**
|
|
3
4
|
* @implements {IDatabase}
|
|
4
5
|
*/
|
|
5
6
|
const { MongoClient, ObjectId } = require("mongodb");
|
|
6
7
|
|
|
7
|
-
class MongoDBDatabase {
|
|
8
|
+
class MongoDBDatabase extends IDatabase{
|
|
8
9
|
constructor(config) {
|
|
9
10
|
this.config = config;
|
|
10
11
|
this.client = new MongoClient(config.url, {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
const IDatabase = require('./IDatabase'); // Arayüzü import et
|
|
2
|
+
|
|
2
3
|
/**
|
|
3
4
|
* @implements {IDatabase}
|
|
4
5
|
*/
|
|
5
6
|
const mysql = require("mysql2/promise");
|
|
6
7
|
|
|
7
|
-
class MySQLDatabase {
|
|
8
|
+
class MySQLDatabase extends IDatabase{
|
|
8
9
|
constructor(config) {
|
|
9
10
|
this.config = config;
|
|
10
11
|
this.pool = null;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
const IDatabase = require('./IDatabase'); // Arayüzü import et
|
|
2
|
+
|
|
2
3
|
/**
|
|
3
4
|
* @implements {IDatabase}
|
|
4
5
|
*/
|
|
5
|
-
|
|
6
6
|
const Database = require('better-sqlite3');
|
|
7
7
|
const fs = require('fs');
|
|
8
8
|
const path = require('path');
|
|
9
9
|
|
|
10
|
-
class SQLiteDatabase {
|
|
10
|
+
class SQLiteDatabase extends IDatabase{
|
|
11
11
|
/**
|
|
12
12
|
* @param {object} config - Yapılandırma nesnesi.
|
|
13
13
|
* @param {string} config.filePath - SQLite veritabanı dosyasının yolu.
|
package/database/index.js
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Tüm veritabanı adaptörlerinin uyması gereken ortak arayüz.
|
|
5
|
-
* Bu, projenin başka yerlerinden de import edilebilir.
|
|
6
|
-
* @typedef {import('./adapters/IDatabase').IDatabase} IDatabase
|
|
7
|
-
*/
|
|
8
|
-
|
|
1
|
+
const IDatabase = require('./adapters/IDatabase');
|
|
9
2
|
const MySQLDatabase = require('./adapters/mysql');
|
|
10
3
|
const SQLiteDatabase = require('./adapters/sqlite');
|
|
11
4
|
const MongoDBDatabase = require('./adapters/mongodb');
|
|
@@ -25,7 +18,7 @@ const adapters = {
|
|
|
25
18
|
* @param {object} options - Yapılandırma seçenekleri.
|
|
26
19
|
* @param {keyof adapters} options.adapter - Kullanılacak adaptör ('mysql', 'sqlite', vb.).
|
|
27
20
|
* @param {object} options.config - Seçilen adaptöre özel yapılandırma.
|
|
28
|
-
* @returns {IDatabase} -
|
|
21
|
+
* @returns {IDatabase} - IDatabase arayüzünü uygulayan bir örnek döndürür.
|
|
29
22
|
*/
|
|
30
23
|
function createDatabase(options) {
|
|
31
24
|
const { adapter, config } = options;
|