zerohelper-json-adapter 11.0.0

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.
package/README.md ADDED
@@ -0,0 +1,46 @@
1
+ # zerohelper-json-adapter
2
+
3
+ JSON file-based database adapter for ZeroHelper.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install zerohelper-json-adapter
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```typescript
14
+ import { createDatabase } from '@onurege3467/zerohelper';
15
+
16
+ const db = createDatabase({
17
+ adapter: 'json',
18
+ config: {
19
+ path: './data.json',
20
+ saveInterval: 500
21
+ }
22
+ });
23
+
24
+ await db.insert('users', { name: 'John', age: 30 });
25
+ const users = await db.select('users', { name: 'John' });
26
+ await db.close();
27
+ ```
28
+
29
+ ## Features
30
+
31
+ - File-based persistence with debounced saves
32
+ - Automatic schema creation
33
+ - Transaction support with write queue
34
+ - Hook support (beforeInsert, afterInsert, etc.)
35
+ - Compression support
36
+
37
+ ## Configuration
38
+
39
+ | Option | Type | Required | Description |
40
+ |--------|------|----------|-------------|
41
+ | `path` | string | Yes | Path to JSON file |
42
+ | `saveInterval` | number | No | Debounce save interval in ms (default: 500) |
43
+
44
+ ## License
45
+
46
+ ISC
@@ -0,0 +1,33 @@
1
+ import { IDatabase, JsonConfig } from '@onurege3467/zerohelper-core';
2
+ export declare class JsonDatabase extends IDatabase {
3
+ private filePath;
4
+ private db;
5
+ private isDirty;
6
+ private isWriting;
7
+ private writeQueue;
8
+ private saveDebounceTimeout;
9
+ private saveInterval;
10
+ private initPromise;
11
+ constructor(config: JsonConfig);
12
+ private _execute;
13
+ private _load;
14
+ private _queueRequest;
15
+ private _processQueue;
16
+ private _scheduleSave;
17
+ private _saveNow;
18
+ private flushSync;
19
+ ensureTable(table: string): Promise<void>;
20
+ insert(table: string, data: Record<string, any>): Promise<number>;
21
+ update(table: string, data: Record<string, any>, where: Record<string, any>): Promise<number>;
22
+ delete(table: string, where: Record<string, any>): Promise<number>;
23
+ select<T = any>(table: string, where?: Record<string, any> | null): Promise<T[]>;
24
+ selectOne<T = any>(table: string, where?: Record<string, any> | null): Promise<T | null>;
25
+ set(table: string, data: Record<string, any>, where: Record<string, any>): Promise<any>;
26
+ bulkInsert(table: string, dataArray: Record<string, any>[]): Promise<number>;
27
+ increment(table: string, incs: Record<string, number>, where?: Record<string, any>): Promise<number>;
28
+ decrement(table: string, decs: Record<string, number>, where?: Record<string, any>): Promise<number>;
29
+ close(): Promise<void>;
30
+ }
31
+ export declare function createDatabase(config: JsonConfig): JsonDatabase;
32
+ export default JsonDatabase;
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAKrE,qBAAa,YAAa,SAAQ,SAAS;IACzC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,EAAE,CAA6B;IACvC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,UAAU,CAAgG;IAClH,OAAO,CAAC,mBAAmB,CAA+B;IAC1D,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAgB;gBAEvB,MAAM,EAAE,UAAU;YAShB,QAAQ;YAOR,KAAK;IAYnB,OAAO,CAAC,aAAa;YAOP,aAAa;IAc3B,OAAO,CAAC,aAAa;YAKP,QAAQ;IAQtB,OAAO,CAAC,SAAS;IAIX,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAejE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAe7F,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAclE,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAW,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAUtF,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAW,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAK9F,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAKvF,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAY5E,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBxG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMxG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAC7B;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY,CAE/D;AACD,eAAe,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.JsonDatabase = void 0;
7
+ exports.createDatabase = createDatabase;
8
+ const zerohelper_core_1 = require("@onurege3467/zerohelper-core");
9
+ const promises_1 = __importDefault(require("fs/promises"));
10
+ const fs_1 = require("fs");
11
+ const path_1 = __importDefault(require("path"));
12
+ class JsonDatabase extends zerohelper_core_1.IDatabase {
13
+ constructor(config) {
14
+ super();
15
+ this.db = {};
16
+ this.isDirty = false;
17
+ this.isWriting = false;
18
+ this.writeQueue = [];
19
+ this.saveDebounceTimeout = null;
20
+ if (!config?.path)
21
+ throw new Error('JsonDB: "path" gereklidir.');
22
+ this.filePath = config.path;
23
+ this.saveInterval = config.saveInterval || 500;
24
+ process.on('exit', () => this.flushSync());
25
+ this.initPromise = this._load();
26
+ }
27
+ async _execute(op, table, fn) {
28
+ const start = Date.now();
29
+ const res = await fn();
30
+ this.recordMetric(op, table, Date.now() - start);
31
+ return res;
32
+ }
33
+ async _load() {
34
+ try {
35
+ const dir = path_1.default.dirname(this.filePath);
36
+ await promises_1.default.mkdir(dir, { recursive: true });
37
+ const fileContent = await promises_1.default.readFile(this.filePath, 'utf-8');
38
+ this.db = JSON.parse(fileContent);
39
+ }
40
+ catch (error) {
41
+ if (error.code === 'ENOENT') {
42
+ this.db = {};
43
+ await this._saveNow();
44
+ }
45
+ else {
46
+ this.db = {};
47
+ }
48
+ }
49
+ }
50
+ _queueRequest(operation) {
51
+ return new Promise((resolve, reject) => {
52
+ this.writeQueue.push({ operation, resolve, reject });
53
+ this._processQueue();
54
+ });
55
+ }
56
+ async _processQueue() {
57
+ if (this.isWriting || this.writeQueue.length === 0)
58
+ return;
59
+ this.isWriting = true;
60
+ const item = this.writeQueue.shift();
61
+ if (item) {
62
+ try {
63
+ const result = item.operation();
64
+ this.isDirty = true;
65
+ this._scheduleSave();
66
+ item.resolve(result);
67
+ }
68
+ catch (error) {
69
+ item.reject(error);
70
+ }
71
+ finally {
72
+ this.isWriting = false;
73
+ this._processQueue();
74
+ }
75
+ }
76
+ }
77
+ _scheduleSave() {
78
+ if (this.saveDebounceTimeout)
79
+ clearTimeout(this.saveDebounceTimeout);
80
+ this.saveDebounceTimeout = setTimeout(() => this._saveNow(), this.saveInterval);
81
+ }
82
+ async _saveNow() {
83
+ if (!this.isDirty)
84
+ return;
85
+ if (this.saveDebounceTimeout)
86
+ clearTimeout(this.saveDebounceTimeout);
87
+ this.saveDebounceTimeout = null;
88
+ try {
89
+ await promises_1.default.writeFile(this.filePath, JSON.stringify(this.db, null, 2));
90
+ this.isDirty = false;
91
+ }
92
+ catch (error) {
93
+ console.error("JsonDB save error:", error);
94
+ }
95
+ }
96
+ flushSync() {
97
+ if (this.isDirty) {
98
+ try {
99
+ (0, fs_1.writeFileSync)(this.filePath, JSON.stringify(this.db, null, 2));
100
+ this.isDirty = false;
101
+ }
102
+ catch (error) { }
103
+ }
104
+ }
105
+ async ensureTable(table) {
106
+ await this.initPromise;
107
+ if (!this.db[table]) {
108
+ return this._queueRequest(() => { this.db[table] = []; });
109
+ }
110
+ }
111
+ async insert(table, data) {
112
+ await this.runHooks('beforeInsert', table, data);
113
+ return this._execute('insert', table, async () => {
114
+ await this.ensureTable(table);
115
+ return this._queueRequest(() => {
116
+ const maxId = this.db[table].reduce((max, row) => (row._id > max ? row._id : max), 0);
117
+ const newId = maxId + 1;
118
+ const newRow = { _id: newId, ...data };
119
+ this.db[table].push(newRow);
120
+ this.runHooks('afterInsert', table, newRow);
121
+ return newId;
122
+ });
123
+ });
124
+ }
125
+ async update(table, data, where) {
126
+ await this.runHooks('beforeUpdate', table, { data, where });
127
+ return this._execute('update', table, async () => {
128
+ await this.ensureTable(table);
129
+ return this._queueRequest(() => {
130
+ let affected = 0;
131
+ this.db[table].forEach((row) => {
132
+ if (Object.keys(where).every(k => String(row[k]) === String(where[k]))) {
133
+ Object.assign(row, data);
134
+ affected++;
135
+ }
136
+ });
137
+ this.runHooks('afterUpdate', table, { affected });
138
+ return affected;
139
+ });
140
+ });
141
+ }
142
+ async delete(table, where) {
143
+ await this.runHooks('beforeDelete', table, where);
144
+ return this._execute('delete', table, async () => {
145
+ await this.ensureTable(table);
146
+ return this._queueRequest(() => {
147
+ const initial = this.db[table].length;
148
+ this.db[table] = this.db[table].filter((row) => !Object.keys(where).every(k => String(row[k]) === String(where[k])));
149
+ const affected = initial - this.db[table].length;
150
+ this.runHooks('afterDelete', table, { affected });
151
+ return affected;
152
+ });
153
+ });
154
+ }
155
+ async select(table, where = null) {
156
+ return this._execute('select', table, async () => {
157
+ await this.initPromise;
158
+ const results = where && Object.keys(where).length > 0
159
+ ? (this.db[table] || []).filter((row) => Object.keys(where).every(k => String(row[k]) === String(where[k])))
160
+ : (this.db[table] || []);
161
+ return JSON.parse(JSON.stringify(results));
162
+ });
163
+ }
164
+ async selectOne(table, where = null) {
165
+ const res = await this.select(table, where);
166
+ return res[0] || null;
167
+ }
168
+ async set(table, data, where) {
169
+ const ex = await this.selectOne(table, where);
170
+ return ex ? this.update(table, data, where) : this.insert(table, { ...where, ...data });
171
+ }
172
+ async bulkInsert(table, dataArray) {
173
+ return this._execute('bulkInsert', table, async () => {
174
+ if (!dataArray.length)
175
+ return 0;
176
+ await this.ensureTable(table);
177
+ return this._queueRequest(() => {
178
+ let maxId = this.db[table].reduce((max, row) => (row._id > max ? row._id : max), 0);
179
+ dataArray.forEach((data) => { maxId++; this.db[table].push({ _id: maxId, ...data }); });
180
+ return dataArray.length;
181
+ });
182
+ });
183
+ }
184
+ async increment(table, incs, where = {}) {
185
+ return this._execute('increment', table, async () => {
186
+ await this.ensureTable(table);
187
+ return this._queueRequest(() => {
188
+ let affected = 0;
189
+ this.db[table].forEach((row) => {
190
+ if (Object.keys(where).every(k => String(row[k]) === String(where[k]))) {
191
+ for (const [f, v] of Object.entries(incs))
192
+ row[f] = (Number(row[f]) || 0) + v;
193
+ affected++;
194
+ }
195
+ });
196
+ return affected;
197
+ });
198
+ });
199
+ }
200
+ async decrement(table, decs, where = {}) {
201
+ const incs = {};
202
+ for (const k in decs)
203
+ incs[k] = -decs[k];
204
+ return this.increment(table, incs, where);
205
+ }
206
+ async close() { await this._saveNow(); }
207
+ }
208
+ exports.JsonDatabase = JsonDatabase;
209
+ function createDatabase(config) {
210
+ return new JsonDatabase(config);
211
+ }
212
+ exports.default = JsonDatabase;
213
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "zerohelper-json-adapter",
3
+ "version": "11.0.0",
4
+ "description": "JSON file adapter for ZeroHelper",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": { "build": "tsc", "clean": "rm -rf dist" },
8
+ "keywords": ["zerohelper", "database", "json", "adapter"],
9
+ "author": "Onure9e",
10
+ "license": "ISC",
11
+ "dependencies": {},
12
+ "peerDependencies": { "@onurege3467/zerohelper-core": "^11.0.0" },
13
+ "devDependencies": { "@types/node": "^22.10.2", "typescript": "^5.7.2" },
14
+ "files": ["dist", "README.md"],
15
+ "publishConfig": { "access": "public" }
16
+ }