@bhushanpawar/sqldb 1.0.0 → 1.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.
- package/README.md +695 -4
- package/dist/cache/cache-manager.d.ts.map +1 -1
- package/dist/cache/cache-manager.js +2 -1
- package/dist/cache/cache-manager.js.map +1 -1
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +225 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/schema-generator.d.ts +28 -0
- package/dist/cli/schema-generator.d.ts.map +1 -0
- package/dist/cli/schema-generator.js +159 -0
- package/dist/cli/schema-generator.js.map +1 -0
- package/dist/client.d.ts +32 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +56 -14
- package/dist/client.js.map +1 -1
- package/dist/connection/mariadb.d.ts +21 -0
- package/dist/connection/mariadb.d.ts.map +1 -1
- package/dist/connection/mariadb.js +121 -3
- package/dist/connection/mariadb.js.map +1 -1
- package/dist/db-schema.d.ts +413 -0
- package/dist/db-schema.d.ts.map +1 -0
- package/dist/db-schema.js +1149 -0
- package/dist/db-schema.js.map +1 -0
- package/dist/discovery/dependency-graph.d.ts +3 -0
- package/dist/discovery/dependency-graph.d.ts.map +1 -1
- package/dist/discovery/dependency-graph.js +11 -0
- package/dist/discovery/dependency-graph.js.map +1 -1
- package/dist/discovery/schema-reader.d.ts +1 -1
- package/dist/discovery/schema-reader.d.ts.map +1 -1
- package/dist/discovery/schema-reader.js +48 -19
- package/dist/discovery/schema-reader.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +63 -3
- package/dist/index.js.map +1 -1
- package/dist/query/operations.d.ts +7 -0
- package/dist/query/operations.d.ts.map +1 -1
- package/dist/query/operations.js +204 -22
- package/dist/query/operations.js.map +1 -1
- package/dist/types/client.d.ts +32 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/client.js +3 -0
- package/dist/types/client.js.map +1 -0
- package/dist/types/config.d.ts +3 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +14 -1
- package/dist/types/config.js.map +1 -1
- package/dist/types/query.d.ts +12 -0
- package/dist/types/query.d.ts.map +1 -1
- package/dist/types/schema.d.ts +6 -0
- package/dist/types/schema.d.ts.map +1 -1
- package/dist/types/warming.d.ts +47 -0
- package/dist/types/warming.d.ts.map +1 -0
- package/dist/types/warming.js +3 -0
- package/dist/types/warming.js.map +1 -0
- package/dist/warming/auto-warming-manager.d.ts +65 -0
- package/dist/warming/auto-warming-manager.d.ts.map +1 -0
- package/dist/warming/auto-warming-manager.js +256 -0
- package/dist/warming/auto-warming-manager.js.map +1 -0
- package/dist/warming/query-stats-tracker.d.ts +53 -0
- package/dist/warming/query-stats-tracker.d.ts.map +1 -0
- package/dist/warming/query-stats-tracker.js +273 -0
- package/dist/warming/query-stats-tracker.js.map +1 -0
- package/package.json +4 -1
package/dist/query/operations.js
CHANGED
|
@@ -18,14 +18,20 @@ class TableOperationsImpl {
|
|
|
18
18
|
async findMany(where, options) {
|
|
19
19
|
const skipCache = options?.skipCache || false;
|
|
20
20
|
const correlationId = options?.correlationId;
|
|
21
|
-
|
|
21
|
+
const withRelations = options?.withRelations;
|
|
22
|
+
// Build cache key (exclude correlationId, skipCache, and withRelations from key as they don't affect the base query result)
|
|
23
|
+
const { correlationId: _, skipCache: __, withRelations: ___, ...cacheableOptions } = options || {};
|
|
22
24
|
const cacheKey = this.cacheManager
|
|
23
25
|
.getKeyBuilder()
|
|
24
|
-
.buildKey(this.tableName, 'findMany', { where, options });
|
|
26
|
+
.buildKey(this.tableName, 'findMany', { where, options: cacheableOptions });
|
|
25
27
|
// Try cache first
|
|
26
28
|
if (!skipCache && this.cacheManager.isEnabled()) {
|
|
27
29
|
const cached = await this.cacheManager.get(cacheKey);
|
|
28
30
|
if (cached !== null) {
|
|
31
|
+
// If withRelations is requested, fetch and attach related data
|
|
32
|
+
if (withRelations) {
|
|
33
|
+
return await this.attachRelations(cached, withRelations, correlationId);
|
|
34
|
+
}
|
|
29
35
|
return cached;
|
|
30
36
|
}
|
|
31
37
|
}
|
|
@@ -36,6 +42,10 @@ class TableOperationsImpl {
|
|
|
36
42
|
if (!skipCache && this.cacheManager.isEnabled()) {
|
|
37
43
|
await this.cacheManager.set(cacheKey, results);
|
|
38
44
|
}
|
|
45
|
+
// If withRelations is requested, fetch and attach related data
|
|
46
|
+
if (withRelations) {
|
|
47
|
+
return await this.attachRelations(results, withRelations, correlationId);
|
|
48
|
+
}
|
|
39
49
|
return results;
|
|
40
50
|
}
|
|
41
51
|
async findById(id, correlationId) {
|
|
@@ -84,9 +94,9 @@ class TableOperationsImpl {
|
|
|
84
94
|
async insertOne(data, correlationId) {
|
|
85
95
|
const { sql, params } = this.queryBuilder.buildInsert(this.tableName, data);
|
|
86
96
|
const result = await this.dbManager.query(sql, params, correlationId);
|
|
87
|
-
// Invalidate cache
|
|
97
|
+
// Invalidate cache (non-blocking fire-and-forget)
|
|
88
98
|
if (this.cacheConfig.invalidateOnWrite) {
|
|
89
|
-
|
|
99
|
+
this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation }).catch(err => console.error('[InsertOne] Cache invalidation error:', err));
|
|
90
100
|
}
|
|
91
101
|
// Return the inserted record with ID
|
|
92
102
|
const insertedId = result.insertId;
|
|
@@ -98,9 +108,9 @@ class TableOperationsImpl {
|
|
|
98
108
|
}
|
|
99
109
|
const { sql, params } = this.queryBuilder.buildInsertMany(this.tableName, dataArray);
|
|
100
110
|
const result = await this.dbManager.query(sql, params, correlationId);
|
|
101
|
-
// Invalidate cache
|
|
111
|
+
// Invalidate cache (non-blocking fire-and-forget)
|
|
102
112
|
if (this.cacheConfig.invalidateOnWrite) {
|
|
103
|
-
|
|
113
|
+
this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation }).catch(err => console.error('[InsertMany] Cache invalidation error:', err));
|
|
104
114
|
}
|
|
105
115
|
// Return inserted records with IDs
|
|
106
116
|
const firstId = result.insertId;
|
|
@@ -112,62 +122,68 @@ class TableOperationsImpl {
|
|
|
112
122
|
async updateOne(where, data, correlationId) {
|
|
113
123
|
const { sql, params } = this.queryBuilder.buildUpdate(this.tableName, where, data);
|
|
114
124
|
const result = await this.dbManager.query(sql, params, correlationId);
|
|
115
|
-
// Invalidate cache
|
|
125
|
+
// Invalidate cache (non-blocking fire-and-forget)
|
|
116
126
|
if (this.cacheConfig.invalidateOnWrite) {
|
|
117
|
-
|
|
127
|
+
this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation }).catch(err => console.error('[UpdateOne] Cache invalidation error:', err));
|
|
118
128
|
}
|
|
119
|
-
//
|
|
129
|
+
// Return a lightweight object with just the updated fields
|
|
130
|
+
// This avoids a second SELECT query while still providing useful data
|
|
120
131
|
if (result.affectedRows > 0) {
|
|
121
|
-
return
|
|
132
|
+
return data;
|
|
122
133
|
}
|
|
123
134
|
return null;
|
|
124
135
|
}
|
|
125
136
|
async updateMany(where, data, correlationId) {
|
|
126
137
|
const { sql, params } = this.queryBuilder.buildUpdate(this.tableName, where, data);
|
|
127
138
|
const result = await this.dbManager.query(sql, params, correlationId);
|
|
128
|
-
// Invalidate cache
|
|
139
|
+
// Invalidate cache (non-blocking fire-and-forget)
|
|
129
140
|
if (this.cacheConfig.invalidateOnWrite) {
|
|
130
|
-
|
|
141
|
+
this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation }).catch(err => console.error('[UpdateMany] Cache invalidation error:', err));
|
|
131
142
|
}
|
|
132
143
|
return result.affectedRows || 0;
|
|
133
144
|
}
|
|
134
145
|
async updateById(id, data, correlationId) {
|
|
146
|
+
// First fetch the existing record before update
|
|
147
|
+
const existing = await this.findById(id, correlationId);
|
|
148
|
+
if (!existing) {
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
135
151
|
const { sql, params } = this.queryBuilder.buildUpdateById(this.tableName, id, data);
|
|
136
152
|
const result = await this.dbManager.query(sql, params, correlationId);
|
|
137
|
-
// Invalidate cache
|
|
153
|
+
// Invalidate cache (non-blocking fire-and-forget)
|
|
138
154
|
if (this.cacheConfig.invalidateOnWrite) {
|
|
139
|
-
|
|
155
|
+
this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation }).catch(err => console.error('[UpdateById] Cache invalidation error:', err));
|
|
140
156
|
}
|
|
141
|
-
//
|
|
157
|
+
// Return merged record (existing data + updates)
|
|
142
158
|
if (result.affectedRows > 0) {
|
|
143
|
-
return
|
|
159
|
+
return { ...existing, ...data };
|
|
144
160
|
}
|
|
145
161
|
return null;
|
|
146
162
|
}
|
|
147
163
|
async deleteOne(where, correlationId) {
|
|
148
164
|
const { sql, params } = this.queryBuilder.buildDelete(this.tableName, where);
|
|
149
165
|
const result = await this.dbManager.query(sql, params, correlationId);
|
|
150
|
-
// Invalidate cache
|
|
166
|
+
// Invalidate cache (non-blocking fire-and-forget)
|
|
151
167
|
if (this.cacheConfig.invalidateOnWrite) {
|
|
152
|
-
|
|
168
|
+
this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation }).catch(err => console.error('[DeleteOne] Cache invalidation error:', err));
|
|
153
169
|
}
|
|
154
170
|
return (result.affectedRows || 0) > 0;
|
|
155
171
|
}
|
|
156
172
|
async deleteMany(where, correlationId) {
|
|
157
173
|
const { sql, params } = this.queryBuilder.buildDelete(this.tableName, where);
|
|
158
174
|
const result = await this.dbManager.query(sql, params, correlationId);
|
|
159
|
-
// Invalidate cache
|
|
175
|
+
// Invalidate cache (non-blocking fire-and-forget)
|
|
160
176
|
if (this.cacheConfig.invalidateOnWrite) {
|
|
161
|
-
|
|
177
|
+
this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation }).catch(err => console.error('[DeleteMany] Cache invalidation error:', err));
|
|
162
178
|
}
|
|
163
179
|
return result.affectedRows || 0;
|
|
164
180
|
}
|
|
165
181
|
async deleteById(id, correlationId) {
|
|
166
182
|
const { sql, params } = this.queryBuilder.buildDeleteById(this.tableName, id);
|
|
167
183
|
const result = await this.dbManager.query(sql, params, correlationId);
|
|
168
|
-
// Invalidate cache
|
|
184
|
+
// Invalidate cache (non-blocking fire-and-forget)
|
|
169
185
|
if (this.cacheConfig.invalidateOnWrite) {
|
|
170
|
-
|
|
186
|
+
this.invalidationManager.invalidateTable(this.tableName, { cascade: this.cacheConfig.cascadeInvalidation }).catch(err => console.error('[DeleteById] Cache invalidation error:', err));
|
|
171
187
|
}
|
|
172
188
|
return (result.affectedRows || 0) > 0;
|
|
173
189
|
}
|
|
@@ -190,6 +206,111 @@ class TableOperationsImpl {
|
|
|
190
206
|
}
|
|
191
207
|
return result;
|
|
192
208
|
}
|
|
209
|
+
async attachRelations(records, withRelations, correlationId) {
|
|
210
|
+
if (records.length === 0) {
|
|
211
|
+
return records;
|
|
212
|
+
}
|
|
213
|
+
const dependencyGraph = this.invalidationManager['dependencyGraph'];
|
|
214
|
+
// Parse relation config
|
|
215
|
+
let fetchDependents = false;
|
|
216
|
+
let fetchDependencies = false;
|
|
217
|
+
let dependentsList;
|
|
218
|
+
let dependenciesList;
|
|
219
|
+
if (typeof withRelations === 'boolean') {
|
|
220
|
+
// If true, fetch all relations
|
|
221
|
+
fetchDependents = withRelations;
|
|
222
|
+
fetchDependencies = withRelations;
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
// Parse the config object
|
|
226
|
+
if (withRelations.dependents === true) {
|
|
227
|
+
fetchDependents = true;
|
|
228
|
+
}
|
|
229
|
+
else if (Array.isArray(withRelations.dependents)) {
|
|
230
|
+
fetchDependents = true;
|
|
231
|
+
dependentsList = withRelations.dependents;
|
|
232
|
+
}
|
|
233
|
+
if (withRelations.dependencies === true) {
|
|
234
|
+
fetchDependencies = true;
|
|
235
|
+
}
|
|
236
|
+
else if (Array.isArray(withRelations.dependencies)) {
|
|
237
|
+
fetchDependencies = true;
|
|
238
|
+
dependenciesList = withRelations.dependencies;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
// Clone records to avoid mutating the cached objects
|
|
242
|
+
const enrichedRecords = records.map(r => ({ ...r }));
|
|
243
|
+
// Fetch dependent tables (tables that reference this table)
|
|
244
|
+
if (fetchDependents) {
|
|
245
|
+
const relationshipsToThisTable = dependencyGraph.getRelationshipsTo(this.tableName);
|
|
246
|
+
for (const rel of relationshipsToThisTable) {
|
|
247
|
+
// If specific tables are requested, filter
|
|
248
|
+
if (dependentsList && !dependentsList.includes(rel.fromTable)) {
|
|
249
|
+
continue;
|
|
250
|
+
}
|
|
251
|
+
try {
|
|
252
|
+
const relatedOps = new TableOperationsImpl(rel.fromTable, this.dbManager, this.cacheManager, this.invalidationManager, this.queryBuilder, this.cacheConfig);
|
|
253
|
+
// Group records by their PK value and fetch related data for each
|
|
254
|
+
for (const record of enrichedRecords) {
|
|
255
|
+
const pkValue = record[rel.toColumn];
|
|
256
|
+
if (pkValue !== undefined && pkValue !== null) {
|
|
257
|
+
const whereClause = { [rel.fromColumn]: pkValue };
|
|
258
|
+
const relatedData = await relatedOps.findMany(whereClause, { correlationId, limit: 100 });
|
|
259
|
+
// Attach related data to the record
|
|
260
|
+
record[rel.fromTable] = relatedData;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
catch (error) {
|
|
265
|
+
console.warn(`Failed to fetch dependent table ${rel.fromTable}:`, error);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
// Fetch dependency tables (tables that this table references)
|
|
270
|
+
if (fetchDependencies) {
|
|
271
|
+
const relationshipsFromThisTable = dependencyGraph.getRelationshipsFrom(this.tableName);
|
|
272
|
+
for (const rel of relationshipsFromThisTable) {
|
|
273
|
+
// If specific tables are requested, filter
|
|
274
|
+
if (dependenciesList && !dependenciesList.includes(rel.toTable)) {
|
|
275
|
+
continue;
|
|
276
|
+
}
|
|
277
|
+
try {
|
|
278
|
+
const relatedOps = new TableOperationsImpl(rel.toTable, this.dbManager, this.cacheManager, this.invalidationManager, this.queryBuilder, this.cacheConfig);
|
|
279
|
+
// Collect all unique FK values
|
|
280
|
+
const fkValues = new Set();
|
|
281
|
+
for (const record of enrichedRecords) {
|
|
282
|
+
const fkValue = record[rel.fromColumn];
|
|
283
|
+
if (fkValue !== undefined && fkValue !== null) {
|
|
284
|
+
fkValues.add(fkValue);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
// Fetch all related records in batch
|
|
288
|
+
const relatedDataMap = new Map();
|
|
289
|
+
for (const fkValue of fkValues) {
|
|
290
|
+
const whereClause = { [rel.toColumn]: fkValue };
|
|
291
|
+
const relatedData = await relatedOps.findMany(whereClause, { correlationId, limit: 100 });
|
|
292
|
+
if (relatedData.length > 0) {
|
|
293
|
+
relatedDataMap.set(fkValue, relatedData[0]); // Use first match for 1-to-1 relations
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
// Attach related data to records
|
|
297
|
+
for (const record of enrichedRecords) {
|
|
298
|
+
const fkValue = record[rel.fromColumn];
|
|
299
|
+
if (fkValue !== undefined && fkValue !== null) {
|
|
300
|
+
const relatedRecord = relatedDataMap.get(fkValue);
|
|
301
|
+
if (relatedRecord) {
|
|
302
|
+
record[rel.toTable] = relatedRecord;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
catch (error) {
|
|
308
|
+
console.warn(`Failed to fetch dependency table ${rel.toTable}:`, error);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return enrichedRecords;
|
|
313
|
+
}
|
|
193
314
|
async invalidateCache() {
|
|
194
315
|
await this.invalidationManager.invalidateTable(this.tableName, {
|
|
195
316
|
cascade: false,
|
|
@@ -199,6 +320,67 @@ class TableOperationsImpl {
|
|
|
199
320
|
// Pre-fetch and cache common queries
|
|
200
321
|
await this.findMany(where, { correlationId });
|
|
201
322
|
}
|
|
323
|
+
async warmCacheWithRelations(where, options) {
|
|
324
|
+
const { correlationId, depth = 1, warmDependents = true, warmDependencies = true, } = options || {};
|
|
325
|
+
// Warm cache for current table
|
|
326
|
+
const currentTableData = await this.findMany(where, { correlationId });
|
|
327
|
+
if (depth <= 0) {
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
const dependencyGraph = this.invalidationManager['dependencyGraph'];
|
|
331
|
+
// Warm dependent tables (tables that reference this table with FK)
|
|
332
|
+
if (warmDependents) {
|
|
333
|
+
const relationshipsToThisTable = dependencyGraph.getRelationshipsTo(this.tableName);
|
|
334
|
+
for (const rel of relationshipsToThisTable) {
|
|
335
|
+
try {
|
|
336
|
+
const relatedOps = new TableOperationsImpl(rel.fromTable, this.dbManager, this.cacheManager, this.invalidationManager, this.queryBuilder, this.cacheConfig);
|
|
337
|
+
// Warm general query first
|
|
338
|
+
await relatedOps.findMany({}, { correlationId, limit: 100 });
|
|
339
|
+
// Then warm specific queries for each record in current table
|
|
340
|
+
// This ensures queries like "SELECT * FROM orders WHERE provider_id = ?" will hit cache
|
|
341
|
+
for (const record of currentTableData.slice(0, 10)) { // Limit to first 10 to avoid excessive queries
|
|
342
|
+
const pkValue = record[rel.toColumn];
|
|
343
|
+
if (pkValue !== undefined && pkValue !== null) {
|
|
344
|
+
const whereClause = { [rel.fromColumn]: pkValue };
|
|
345
|
+
await relatedOps.findMany(whereClause, { correlationId, limit: 100 });
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
catch (error) {
|
|
350
|
+
// Log but don't throw - warming is best effort
|
|
351
|
+
console.warn(`Failed to warm cache for dependent table ${rel.fromTable}:`, error);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
// Warm dependency tables (tables that this table references with FK)
|
|
356
|
+
if (warmDependencies) {
|
|
357
|
+
const relationshipsFromThisTable = dependencyGraph.getRelationshipsFrom(this.tableName);
|
|
358
|
+
for (const rel of relationshipsFromThisTable) {
|
|
359
|
+
try {
|
|
360
|
+
const relatedOps = new TableOperationsImpl(rel.toTable, this.dbManager, this.cacheManager, this.invalidationManager, this.queryBuilder, this.cacheConfig);
|
|
361
|
+
// Warm general query
|
|
362
|
+
await relatedOps.findMany({}, { correlationId, limit: 100 });
|
|
363
|
+
// Warm specific records that are referenced
|
|
364
|
+
const referencedIds = new Set();
|
|
365
|
+
for (const record of currentTableData) {
|
|
366
|
+
const fkValue = record[rel.fromColumn];
|
|
367
|
+
if (fkValue !== undefined && fkValue !== null) {
|
|
368
|
+
referencedIds.add(fkValue);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
// Warm each referenced record
|
|
372
|
+
for (const refId of Array.from(referencedIds).slice(0, 10)) { // Limit to first 10
|
|
373
|
+
const whereClause = { [rel.toColumn]: refId };
|
|
374
|
+
await relatedOps.findMany(whereClause, { correlationId, limit: 100 });
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
catch (error) {
|
|
378
|
+
// Log but don't throw - warming is best effort
|
|
379
|
+
console.warn(`Failed to warm cache for dependency table ${rel.toTable}:`, error);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
}
|
|
202
384
|
}
|
|
203
385
|
exports.TableOperationsImpl = TableOperationsImpl;
|
|
204
386
|
//# sourceMappingURL=operations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/query/operations.ts"],"names":[],"mappings":";;;AAOA,MAAa,mBAAmB;IAQ9B,YACE,SAAiB,EACjB,SAAmC,EACnC,YAA0B,EAC1B,mBAAwC,EACxC,YAA0B,EAC1B,WAAkC;QAElC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAqB,EAAE,OAAqB;QACxD,MAAM,aAAa,GAAgB,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAsB,EAAE,OAAqB;QAC1D,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,KAAK,CAAC;QAC9C,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,CAAC;QAE7C,kBAAkB;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY;aAC/B,aAAa,EAAE;aACf,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAE5D,kBAAkB;QAClB,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAM,QAAQ,CAAC,CAAC;YAC1D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CACnD,IAAI,CAAC,SAAS,EACd,KAAK,EACL,OAAO,CACR,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAM,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAE5E,gBAAgB;QAChB,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAmB,EAAE,aAAsB;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY;aAC/B,aAAa,EAAE;aACf,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAElC,kBAAkB;QAClB,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAI,QAAQ,CAAC,CAAC;YACxD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAM,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAE5E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEtD,eAAe;QACf,IAAI,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC;YAC5C,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAsB,EAAE,aAAsB;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY;aAC/B,aAAa,EAAE;aACf,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAEhD,gDAAgD;QAChD,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAS,QAAQ,CAAC,CAAC;YAC7D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAQ,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAE9E,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QAErC,oDAAoD;QACpD,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC3D,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAmB,EAAE,aAAsB;QACzD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAQ,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAE3E,mBAAmB;QACnB,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAC5C,IAAI,CAAC,SAAS,EACd,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAClD,CAAC;QACJ,CAAC;QAED,qCAAqC;QACrC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC;QACnC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,UAAU,EAAO,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAA0B,EAAE,aAAsB;QACjE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CACvD,IAAI,CAAC,SAAS,EACd,SAAS,CACV,CAAC;QACF,MAAM,MAAM,GAAQ,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAE3E,mBAAmB;QACnB,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAC5C,IAAI,CAAC,SAAS,EACd,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAClD,CAAC;QACJ,CAAC;QAED,mCAAmC;QACnC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,GAAG,IAAI;YACP,EAAE,EAAE,OAAO,GAAG,KAAK;SACpB,CAAC,CAAQ,CAAC;IACb,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAqB,EAAE,IAAgB,EAAE,aAAsB;QAC7E,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CACnD,IAAI,CAAC,SAAS,EACd,KAAK,EACL,IAAI,CACL,CAAC;QAEF,MAAM,MAAM,GAAQ,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAE3E,mBAAmB;QACnB,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAC5C,IAAI,CAAC,SAAS,EACd,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAClD,CAAC;QACJ,CAAC;QAED,sCAAsC;QACtC,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAqB,EAAE,IAAgB,EAAE,aAAsB;QAC9E,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CACnD,IAAI,CAAC,SAAS,EACd,KAAK,EACL,IAAI,CACL,CAAC;QAEF,MAAM,MAAM,GAAQ,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAE3E,mBAAmB;QACnB,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAC5C,IAAI,CAAC,SAAS,EACd,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAClD,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAmB,EAAE,IAAgB,EAAE,aAAsB;QAC5E,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CACvD,IAAI,CAAC,SAAS,EACd,EAAE,EACF,IAAI,CACL,CAAC;QAEF,MAAM,MAAM,GAAQ,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAE3E,mBAAmB;QACnB,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAC5C,IAAI,CAAC,SAAS,EACd,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAClD,CAAC;QACJ,CAAC;QAED,sCAAsC;QACtC,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAqB,EAAE,aAAsB;QAC3D,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAQ,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAE3E,mBAAmB;QACnB,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAC5C,IAAI,CAAC,SAAS,EACd,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAClD,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAqB,EAAE,aAAsB;QAC5D,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAQ,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAE3E,mBAAmB;QACnB,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAC5C,IAAI,CAAC,SAAS,EACd,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAClD,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAmB,EAAE,aAAsB;QAC1D,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAQ,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAE3E,mBAAmB;QACnB,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAC5C,IAAI,CAAC,SAAS,EACd,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAClD,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,GAAG,CAAU,GAAW,EAAE,MAAc,EAAE,aAAsB;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY;aAC/B,aAAa,EAAE;aACf,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QAEpD,kBAAkB;QAClB,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAI,QAAQ,CAAC,CAAC;YACxD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAI,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAEzE,0BAA0B;QAC1B,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE;YAC7D,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAsB,EAAE,aAAsB;QAC5D,qCAAqC;QACrC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IAChD,CAAC;CACF;AAxTD,kDAwTC"}
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/query/operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SmartDBClient } from '../client';
|
|
2
|
+
import { TableOperations } from './query';
|
|
3
|
+
/**
|
|
4
|
+
* Helper type to add dynamic table access to SmartDBClient
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* ```typescript
|
|
8
|
+
* interface MySchema {
|
|
9
|
+
* users: { id: number; name: string; email: string };
|
|
10
|
+
* orders: { id: number; user_id: number; total: number };
|
|
11
|
+
* products: { id: number; name: string; price: number };
|
|
12
|
+
* }
|
|
13
|
+
*
|
|
14
|
+
* type MyDB = SmartDBWithTables<MySchema>;
|
|
15
|
+
* const db = await createSmartDB(config) as MyDB;
|
|
16
|
+
*
|
|
17
|
+
* // Now you have full type safety:
|
|
18
|
+
* const users = await db.users.findMany(); // users: { id: number; name: string; email: string }[]
|
|
19
|
+
* const order = await db.orders.findById(1); // order: { id: number; user_id: number; total: number } | null
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export type SmartDBWithTables<TSchema extends Record<string, any>> = SmartDBClient & {
|
|
23
|
+
[K in keyof TSchema]: TableOperations<TSchema[K]>;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* For cases where you don't have a schema defined,
|
|
27
|
+
* you can use this type to get basic dynamic table access
|
|
28
|
+
*/
|
|
29
|
+
export type SmartDBWithDynamicTables = SmartDBClient & {
|
|
30
|
+
[tableName: string]: TableOperations<any>;
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,aAAa,GAAG;KAClF,CAAC,IAAI,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CAClD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG;IACrD,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;CAC3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":""}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { RedisOptions } from 'ioredis';
|
|
2
|
+
import { WarmingConfig } from './warming';
|
|
2
3
|
export interface MariaDBConfig {
|
|
3
4
|
host: string;
|
|
4
5
|
port?: number;
|
|
@@ -40,8 +41,10 @@ export interface SmartDBConfig {
|
|
|
40
41
|
cache?: CacheConfig;
|
|
41
42
|
discovery?: DiscoveryConfig;
|
|
42
43
|
logging?: LoggingConfig;
|
|
44
|
+
warming?: WarmingConfig;
|
|
43
45
|
}
|
|
44
46
|
export declare const DEFAULT_CACHE_CONFIG: Required<CacheConfig>;
|
|
45
47
|
export declare const DEFAULT_DISCOVERY_CONFIG: Required<DiscoveryConfig>;
|
|
46
48
|
export declare const DEFAULT_LOGGING_CONFIG: Required<LoggingConfig>;
|
|
49
|
+
export declare const DEFAULT_WARMING_CONFIG: Required<WarmingConfig>;
|
|
47
50
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACrD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAC/D;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAGD,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAMtD,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,eAAe,CAM9D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,aAAa,CAO1D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,aAAa,CAY1D,CAAC"}
|
package/dist/types/config.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_LOGGING_CONFIG = exports.DEFAULT_DISCOVERY_CONFIG = exports.DEFAULT_CACHE_CONFIG = void 0;
|
|
3
|
+
exports.DEFAULT_WARMING_CONFIG = exports.DEFAULT_LOGGING_CONFIG = exports.DEFAULT_DISCOVERY_CONFIG = exports.DEFAULT_CACHE_CONFIG = void 0;
|
|
4
4
|
// Default configurations
|
|
5
5
|
exports.DEFAULT_CACHE_CONFIG = {
|
|
6
6
|
enabled: true,
|
|
@@ -24,4 +24,17 @@ exports.DEFAULT_LOGGING_CONFIG = {
|
|
|
24
24
|
console.log(`[${timestamp}] [${level.toUpperCase()}] ${message}${metaStr}`);
|
|
25
25
|
},
|
|
26
26
|
};
|
|
27
|
+
exports.DEFAULT_WARMING_CONFIG = {
|
|
28
|
+
enabled: false,
|
|
29
|
+
intervalMs: 60000, // 1 minute
|
|
30
|
+
topQueriesPerTable: 10,
|
|
31
|
+
minAccessCount: 5,
|
|
32
|
+
maxStatsAge: 3600000, // 1 hour
|
|
33
|
+
useSeperatePool: true,
|
|
34
|
+
warmingPoolSize: 2,
|
|
35
|
+
trackInDatabase: true,
|
|
36
|
+
statsTableName: '__sqldb_query_stats',
|
|
37
|
+
onWarmingComplete: undefined,
|
|
38
|
+
onWarmingError: undefined,
|
|
39
|
+
};
|
|
27
40
|
//# sourceMappingURL=config.js.map
|
package/dist/types/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":";;;AAqDA,yBAAyB;AACZ,QAAA,oBAAoB,GAA0B;IACzD,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,EAAE,EAAE,aAAa;IAC7B,OAAO,EAAE,KAAK;IACd,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AAEW,QAAA,wBAAwB,GAA8B;IACjE,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,CAAC,EAAE,yBAAyB;IAC7C,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,CAAC;CACjB,CAAC;AAEW,QAAA,sBAAsB,GAA4B;IAC7D,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,CAAC,KAAa,EAAE,OAAe,EAAE,IAAU,EAAE,EAAE;QACrD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,MAAM,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,GAAG,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;CACF,CAAC;AAEW,QAAA,sBAAsB,GAA4B;IAC7D,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,KAAK,EAAE,WAAW;IAC9B,kBAAkB,EAAE,EAAE;IACtB,cAAc,EAAE,CAAC;IACjB,WAAW,EAAE,OAAO,EAAE,SAAS;IAC/B,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,CAAC;IAClB,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,qBAAqB;IACrC,iBAAiB,EAAE,SAAgB;IACnC,cAAc,EAAE,SAAgB;CACjC,CAAC"}
|
package/dist/types/query.d.ts
CHANGED
|
@@ -5,6 +5,11 @@ export interface OrderByOption {
|
|
|
5
5
|
column: string;
|
|
6
6
|
direction: 'ASC' | 'DESC';
|
|
7
7
|
}
|
|
8
|
+
export interface RelationConfig {
|
|
9
|
+
dependents?: boolean | string[];
|
|
10
|
+
dependencies?: boolean | string[];
|
|
11
|
+
depth?: number;
|
|
12
|
+
}
|
|
8
13
|
export interface FindOptions {
|
|
9
14
|
limit?: number;
|
|
10
15
|
offset?: number;
|
|
@@ -12,6 +17,7 @@ export interface FindOptions {
|
|
|
12
17
|
select?: string[];
|
|
13
18
|
skipCache?: boolean;
|
|
14
19
|
correlationId?: string;
|
|
20
|
+
withRelations?: boolean | RelationConfig;
|
|
15
21
|
}
|
|
16
22
|
export interface TableOperations<T = any> {
|
|
17
23
|
findOne(where: WhereClause<T>, options?: FindOptions): Promise<T | null>;
|
|
@@ -29,6 +35,12 @@ export interface TableOperations<T = any> {
|
|
|
29
35
|
raw<R = any>(sql: string, params?: any[], correlationId?: string): Promise<R>;
|
|
30
36
|
invalidateCache(): Promise<void>;
|
|
31
37
|
warmCache(where?: WhereClause<T>, correlationId?: string): Promise<void>;
|
|
38
|
+
warmCacheWithRelations(where?: WhereClause<T>, options?: {
|
|
39
|
+
correlationId?: string;
|
|
40
|
+
depth?: number;
|
|
41
|
+
warmDependents?: boolean;
|
|
42
|
+
warmDependencies?: boolean;
|
|
43
|
+
}): Promise<void>;
|
|
32
44
|
}
|
|
33
45
|
export interface QueryResult {
|
|
34
46
|
sql: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/types/query.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG;IAC9C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,aAAa,EAAE,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/types/query.ts"],"names":[],"mappings":"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"}
|
package/dist/types/schema.d.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
export interface ColumnInfo {
|
|
2
2
|
columnName: string;
|
|
3
3
|
dataType: string;
|
|
4
|
+
columnType: string;
|
|
4
5
|
isNullable: boolean;
|
|
5
6
|
columnKey: string;
|
|
6
7
|
columnDefault: string | null;
|
|
7
8
|
extra: string;
|
|
9
|
+
characterMaximumLength?: number | null;
|
|
10
|
+
numericPrecision?: number | null;
|
|
11
|
+
numericScale?: number | null;
|
|
12
|
+
characterSetName?: string | null;
|
|
13
|
+
collationName?: string | null;
|
|
8
14
|
}
|
|
9
15
|
export interface TableSchema {
|
|
10
16
|
tableName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,aAAa,EAAE,iBAAiB,EAAE,CAAC;CACpC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export interface QueryStats {
|
|
2
|
+
queryId: string;
|
|
3
|
+
tableName: string;
|
|
4
|
+
queryType: 'findMany' | 'findOne' | 'findById' | 'count';
|
|
5
|
+
filters: string;
|
|
6
|
+
accessCount: number;
|
|
7
|
+
lastAccessedAt: Date;
|
|
8
|
+
avgExecutionTime: number;
|
|
9
|
+
lastWarmingTime?: Date;
|
|
10
|
+
}
|
|
11
|
+
export interface WarmingConfig {
|
|
12
|
+
enabled: boolean;
|
|
13
|
+
intervalMs?: number;
|
|
14
|
+
topQueriesPerTable?: number;
|
|
15
|
+
minAccessCount?: number;
|
|
16
|
+
maxStatsAge?: number;
|
|
17
|
+
useSeperatePool?: boolean;
|
|
18
|
+
warmingPoolSize?: number;
|
|
19
|
+
trackInDatabase?: boolean;
|
|
20
|
+
statsTableName?: string;
|
|
21
|
+
onWarmingComplete?: (stats: WarmingStats) => void;
|
|
22
|
+
onWarmingError?: (error: Error) => void;
|
|
23
|
+
}
|
|
24
|
+
export interface WarmingStats {
|
|
25
|
+
timestamp: Date;
|
|
26
|
+
queriesWarmed: number;
|
|
27
|
+
queriesFailed: number;
|
|
28
|
+
totalTimeMs: number;
|
|
29
|
+
cacheHitRateBefore: number;
|
|
30
|
+
cacheHitRateAfter: number;
|
|
31
|
+
tables: {
|
|
32
|
+
[tableName: string]: {
|
|
33
|
+
queriesWarmed: number;
|
|
34
|
+
avgExecutionTime: number;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export interface QueryAccessLog {
|
|
39
|
+
queryId: string;
|
|
40
|
+
tableName: string;
|
|
41
|
+
queryType: string;
|
|
42
|
+
filters: string;
|
|
43
|
+
executionTimeMs: number;
|
|
44
|
+
cacheHit: boolean;
|
|
45
|
+
timestamp: Date;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=warming.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warming.d.ts","sourceRoot":"","sources":["../../src/types/warming.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,IAAI,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAE5B,OAAO,EAAE,OAAO,CAAC;IAGjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAG5B,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAG1B,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAG1B,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAGlD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,IAAI,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG;YACnB,aAAa,EAAE,MAAM,CAAC;YACtB,gBAAgB,EAAE,MAAM,CAAC;SAC1B,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warming.js","sourceRoot":"","sources":["../../src/types/warming.ts"],"names":[],"mappings":""}
|