@bhushanpawar/sqldb 1.0.5 → 1.0.7
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/dist/cache/cache-manager.d.ts +18 -1
- package/dist/cache/cache-manager.d.ts.map +1 -1
- package/dist/cache/cache-manager.js +76 -2
- package/dist/cache/cache-manager.js.map +1 -1
- package/dist/cli/index.js +0 -0
- package/dist/client.d.ts +54 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +124 -1
- package/dist/client.js.map +1 -1
- package/dist/connection/mariadb.d.ts +15 -0
- package/dist/connection/mariadb.d.ts.map +1 -1
- package/dist/connection/mariadb.js +56 -1
- package/dist/connection/mariadb.js.map +1 -1
- package/dist/discovery/relationship-parser.d.ts.map +1 -1
- package/dist/discovery/relationship-parser.js +8 -1
- package/dist/discovery/relationship-parser.js.map +1 -1
- package/dist/discovery/schema-reader.d.ts +2 -0
- package/dist/discovery/schema-reader.d.ts.map +1 -1
- package/dist/discovery/schema-reader.js +91 -0
- package/dist/discovery/schema-reader.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/query/operations.d.ts +35 -1
- package/dist/query/operations.d.ts.map +1 -1
- package/dist/query/operations.js +307 -4
- package/dist/query/operations.js.map +1 -1
- package/dist/query/query-tracker.d.ts +30 -0
- package/dist/query/query-tracker.d.ts.map +1 -1
- package/dist/query/query-tracker.js +86 -1
- package/dist/query/query-tracker.js.map +1 -1
- package/dist/search/inverted-index-manager.d.ts +76 -0
- package/dist/search/inverted-index-manager.d.ts.map +1 -0
- package/dist/search/inverted-index-manager.js +371 -0
- package/dist/search/inverted-index-manager.js.map +1 -0
- package/dist/search/search-ranker.d.ts +91 -0
- package/dist/search/search-ranker.d.ts.map +1 -0
- package/dist/search/search-ranker.js +281 -0
- package/dist/search/search-ranker.js.map +1 -0
- package/dist/search/tokenizer.d.ts +80 -0
- package/dist/search/tokenizer.d.ts.map +1 -0
- package/dist/search/tokenizer.js +398 -0
- package/dist/search/tokenizer.js.map +1 -0
- package/dist/types/cache.d.ts +16 -0
- package/dist/types/cache.d.ts.map +1 -1
- package/dist/types/cache.js.map +1 -1
- package/dist/types/config.d.ts +10 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +13 -1
- package/dist/types/config.js.map +1 -1
- package/dist/types/query.d.ts +4 -0
- package/dist/types/query.d.ts.map +1 -1
- package/dist/types/schema.d.ts +35 -0
- package/dist/types/schema.d.ts.map +1 -1
- package/dist/types/search.d.ts +223 -0
- package/dist/types/search.d.ts.map +1 -0
- package/dist/types/search.js +54 -0
- package/dist/types/search.js.map +1 -0
- package/dist/types/warming.d.ts +1 -1
- package/dist/types/warming.d.ts.map +1 -1
- package/dist/utils/case-converter.d.ts +38 -0
- package/dist/utils/case-converter.d.ts.map +1 -0
- package/dist/utils/case-converter.js +90 -0
- package/dist/utils/case-converter.js.map +1 -0
- package/dist/warming/auto-warming-manager.d.ts.map +1 -1
- package/dist/warming/auto-warming-manager.js +5 -0
- package/dist/warming/auto-warming-manager.js.map +1 -1
- package/package.json +7 -3
- package/dist/best-practice-example.d.ts +0 -35
- package/dist/best-practice-example.d.ts.map +0 -1
- package/dist/best-practice-example.js +0 -171
- package/dist/best-practice-example.js.map +0 -1
- package/dist/db-schema.d.ts +0 -413
- package/dist/db-schema.d.ts.map +0 -1
- package/dist/db-schema.js +0 -1149
- package/dist/db-schema.js.map +0 -1
- package/dist/demo-debug.d.ts +0 -2
- package/dist/demo-debug.d.ts.map +0 -1
- package/dist/demo-debug.js +0 -36
- package/dist/demo-debug.js.map +0 -1
- package/dist/smart-cache/cache/cache-key-builder.d.ts +0 -17
- package/dist/smart-cache/cache/cache-key-builder.d.ts.map +0 -1
- package/dist/smart-cache/cache/cache-key-builder.js +0 -100
- package/dist/smart-cache/cache/cache-key-builder.js.map +0 -1
- package/dist/smart-cache/cache/cache-manager.d.ts +0 -22
- package/dist/smart-cache/cache/cache-manager.d.ts.map +0 -1
- package/dist/smart-cache/cache/cache-manager.js +0 -124
- package/dist/smart-cache/cache/cache-manager.js.map +0 -1
- package/dist/smart-cache/cache/invalidation.d.ts +0 -15
- package/dist/smart-cache/cache/invalidation.d.ts.map +0 -1
- package/dist/smart-cache/cache/invalidation.js +0 -59
- package/dist/smart-cache/cache/invalidation.js.map +0 -1
- package/dist/smart-cache/client.d.ts +0 -36
- package/dist/smart-cache/client.d.ts.map +0 -1
- package/dist/smart-cache/client.js +0 -138
- package/dist/smart-cache/client.js.map +0 -1
- package/dist/smart-cache/connection/mariadb.d.ts +0 -14
- package/dist/smart-cache/connection/mariadb.d.ts.map +0 -1
- package/dist/smart-cache/connection/mariadb.js +0 -82
- package/dist/smart-cache/connection/mariadb.js.map +0 -1
- package/dist/smart-cache/connection/redis.d.ts +0 -20
- package/dist/smart-cache/connection/redis.d.ts.map +0 -1
- package/dist/smart-cache/connection/redis.js +0 -168
- package/dist/smart-cache/connection/redis.js.map +0 -1
- package/dist/smart-cache/discovery/dependency-graph.d.ts +0 -20
- package/dist/smart-cache/discovery/dependency-graph.d.ts.map +0 -1
- package/dist/smart-cache/discovery/dependency-graph.js +0 -89
- package/dist/smart-cache/discovery/dependency-graph.js.map +0 -1
- package/dist/smart-cache/discovery/relationship-parser.d.ts +0 -10
- package/dist/smart-cache/discovery/relationship-parser.d.ts.map +0 -1
- package/dist/smart-cache/discovery/relationship-parser.js +0 -40
- package/dist/smart-cache/discovery/relationship-parser.js.map +0 -1
- package/dist/smart-cache/discovery/schema-reader.d.ts +0 -15
- package/dist/smart-cache/discovery/schema-reader.d.ts.map +0 -1
- package/dist/smart-cache/discovery/schema-reader.js +0 -82
- package/dist/smart-cache/discovery/schema-reader.js.map +0 -1
- package/dist/smart-cache/examples/basic-usage.d.ts +0 -3
- package/dist/smart-cache/examples/basic-usage.d.ts.map +0 -1
- package/dist/smart-cache/examples/basic-usage.js +0 -105
- package/dist/smart-cache/examples/basic-usage.js.map +0 -1
- package/dist/smart-cache/examples/hooks-example.d.ts +0 -3
- package/dist/smart-cache/examples/hooks-example.d.ts.map +0 -1
- package/dist/smart-cache/examples/hooks-example.js +0 -133
- package/dist/smart-cache/examples/hooks-example.js.map +0 -1
- package/dist/smart-cache/examples/relationships-example.d.ts +0 -3
- package/dist/smart-cache/examples/relationships-example.d.ts.map +0 -1
- package/dist/smart-cache/examples/relationships-example.js +0 -88
- package/dist/smart-cache/examples/relationships-example.js.map +0 -1
- package/dist/smart-cache/hooks/hooks-manager.d.ts +0 -22
- package/dist/smart-cache/hooks/hooks-manager.d.ts.map +0 -1
- package/dist/smart-cache/hooks/hooks-manager.js +0 -117
- package/dist/smart-cache/hooks/hooks-manager.js.map +0 -1
- package/dist/smart-cache/index.d.ts +0 -19
- package/dist/smart-cache/index.d.ts.map +0 -1
- package/dist/smart-cache/index.js +0 -49
- package/dist/smart-cache/index.js.map +0 -1
- package/dist/smart-cache/query/operations.d.ts +0 -31
- package/dist/smart-cache/query/operations.d.ts.map +0 -1
- package/dist/smart-cache/query/operations.js +0 -187
- package/dist/smart-cache/query/operations.js.map +0 -1
- package/dist/smart-cache/query/query-builder.d.ts +0 -15
- package/dist/smart-cache/query/query-builder.d.ts.map +0 -1
- package/dist/smart-cache/query/query-builder.js +0 -169
- package/dist/smart-cache/query/query-builder.js.map +0 -1
- package/dist/smart-cache/query/table-proxy.d.ts +0 -11
- package/dist/smart-cache/query/table-proxy.d.ts.map +0 -1
- package/dist/smart-cache/query/table-proxy.js +0 -25
- package/dist/smart-cache/query/table-proxy.js.map +0 -1
- package/dist/smart-cache/types/cache.d.ts +0 -29
- package/dist/smart-cache/types/cache.d.ts.map +0 -1
- package/dist/smart-cache/types/cache.js +0 -10
- package/dist/smart-cache/types/cache.js.map +0 -1
- package/dist/smart-cache/types/config.d.ts +0 -47
- package/dist/smart-cache/types/config.d.ts.map +0 -1
- package/dist/smart-cache/types/config.js +0 -27
- package/dist/smart-cache/types/config.js.map +0 -1
- package/dist/smart-cache/types/query.d.ts +0 -36
- package/dist/smart-cache/types/query.d.ts.map +0 -1
- package/dist/smart-cache/types/query.js +0 -3
- package/dist/smart-cache/types/query.js.map +0 -1
- package/dist/smart-cache/types/schema.d.ts +0 -25
- package/dist/smart-cache/types/schema.d.ts.map +0 -1
- package/dist/smart-cache/types/schema.js +0 -3
- package/dist/smart-cache/types/schema.js.map +0 -1
- package/dist/trial.d.ts +0 -7
- package/dist/trial.d.ts.map +0 -1
- package/dist/trial.js +0 -30
- package/dist/trial.js.map +0 -1
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SmartDBClient = void 0;
|
|
4
|
-
const config_1 = require("./types/config");
|
|
5
|
-
const mariadb_1 = require("./connection/mariadb");
|
|
6
|
-
const redis_1 = require("./connection/redis");
|
|
7
|
-
const schema_reader_1 = require("./discovery/schema-reader");
|
|
8
|
-
const relationship_parser_1 = require("./discovery/relationship-parser");
|
|
9
|
-
const dependency_graph_1 = require("./discovery/dependency-graph");
|
|
10
|
-
const cache_manager_1 = require("./cache/cache-manager");
|
|
11
|
-
const invalidation_1 = require("./cache/invalidation");
|
|
12
|
-
const query_builder_1 = require("./query/query-builder");
|
|
13
|
-
const operations_1 = require("./query/operations");
|
|
14
|
-
const table_proxy_1 = require("./query/table-proxy");
|
|
15
|
-
const hooks_manager_1 = require("./hooks/hooks-manager");
|
|
16
|
-
class SmartDBClient {
|
|
17
|
-
constructor(config) {
|
|
18
|
-
this.initialized = false;
|
|
19
|
-
this.discoveredTables = new Set();
|
|
20
|
-
this.config = {
|
|
21
|
-
...config,
|
|
22
|
-
cache: { ...config_1.DEFAULT_CACHE_CONFIG, ...config.cache },
|
|
23
|
-
discovery: { ...config_1.DEFAULT_DISCOVERY_CONFIG, ...config.discovery },
|
|
24
|
-
logging: { ...config_1.DEFAULT_LOGGING_CONFIG, ...config.logging },
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
async initialize() {
|
|
28
|
-
if (this.initialized) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
this.log('info', 'Initializing SmartDBClient...');
|
|
32
|
-
// Initialize connection managers
|
|
33
|
-
this.dbManager = new mariadb_1.MariaDBConnectionManager(this.config.mariadb);
|
|
34
|
-
await this.dbManager.connect();
|
|
35
|
-
this.log('info', 'MariaDB connected');
|
|
36
|
-
this.redisManager = new redis_1.RedisConnectionManager(this.config.redis);
|
|
37
|
-
await this.redisManager.connect();
|
|
38
|
-
this.log('info', 'Redis connected');
|
|
39
|
-
// Initialize core components
|
|
40
|
-
this.queryBuilder = new query_builder_1.QueryBuilder();
|
|
41
|
-
this.dependencyGraph = new dependency_graph_1.DependencyGraph(this.config.discovery.maxGraphDepth);
|
|
42
|
-
this.cacheManager = new cache_manager_1.CacheManager(this.redisManager, this.config.cache, this.config.redis.keyPrefix);
|
|
43
|
-
this.invalidationManager = new invalidation_1.InvalidationManager(this.cacheManager, this.dependencyGraph);
|
|
44
|
-
this.hooks = new hooks_manager_1.HooksManager();
|
|
45
|
-
this.tableProxyFactory = new table_proxy_1.TableProxyFactory(this);
|
|
46
|
-
// Run schema discovery
|
|
47
|
-
if (this.config.discovery.autoDiscover) {
|
|
48
|
-
await this.discoverSchema();
|
|
49
|
-
}
|
|
50
|
-
// Set up refresh interval if configured
|
|
51
|
-
if (this.config.discovery.refreshInterval && this.config.discovery.refreshInterval > 0) {
|
|
52
|
-
setInterval(() => this.refreshSchema(), this.config.discovery.refreshInterval);
|
|
53
|
-
}
|
|
54
|
-
this.initialized = true;
|
|
55
|
-
this.log('info', 'SmartDBClient initialized successfully');
|
|
56
|
-
// Create dynamic table accessors using Proxy
|
|
57
|
-
return new Proxy(this, {
|
|
58
|
-
get(target, prop) {
|
|
59
|
-
// If prop exists on target, return it
|
|
60
|
-
if (prop in target) {
|
|
61
|
-
return target[prop];
|
|
62
|
-
}
|
|
63
|
-
// Otherwise, treat it as a table name
|
|
64
|
-
if (typeof prop === 'string' && !prop.startsWith('_')) {
|
|
65
|
-
return target.getTableOperations(prop);
|
|
66
|
-
}
|
|
67
|
-
return undefined;
|
|
68
|
-
},
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
async discoverSchema() {
|
|
72
|
-
this.log('info', 'Discovering database schema...');
|
|
73
|
-
const schemaReader = new schema_reader_1.SchemaReader(this.dbManager, this.config.discovery);
|
|
74
|
-
const relationshipParser = new relationship_parser_1.RelationshipParser(this.dbManager);
|
|
75
|
-
// Discover tables
|
|
76
|
-
const tables = await schemaReader.discoverTables();
|
|
77
|
-
this.log('info', `Discovered ${tables.length} tables`);
|
|
78
|
-
for (const table of tables) {
|
|
79
|
-
this.discoveredTables.add(table.tableName);
|
|
80
|
-
}
|
|
81
|
-
// Discover relationships
|
|
82
|
-
const relationships = await relationshipParser.parseRelationships();
|
|
83
|
-
this.log('info', `Discovered ${relationships.length} relationships`);
|
|
84
|
-
// Build dependency graph
|
|
85
|
-
this.dependencyGraph.buildFromRelationships(relationships);
|
|
86
|
-
const graphInfo = this.dependencyGraph.getGraphInfo();
|
|
87
|
-
this.log('info', `Dependency graph built`, graphInfo);
|
|
88
|
-
}
|
|
89
|
-
async refreshSchema() {
|
|
90
|
-
this.log('info', 'Refreshing database schema...');
|
|
91
|
-
this.discoveredTables.clear();
|
|
92
|
-
this.dependencyGraph.clear();
|
|
93
|
-
await this.discoverSchema();
|
|
94
|
-
this.log('info', 'Schema refreshed successfully');
|
|
95
|
-
}
|
|
96
|
-
getTableOperations(tableName) {
|
|
97
|
-
if (!this.initialized) {
|
|
98
|
-
throw new Error('SmartDBClient not initialized. Call initialize() first.');
|
|
99
|
-
}
|
|
100
|
-
return new operations_1.TableOperationsImpl(tableName, this.dbManager, this.cacheManager, this.invalidationManager, this.queryBuilder, this.config.cache);
|
|
101
|
-
}
|
|
102
|
-
getCacheManager() {
|
|
103
|
-
return this.cacheManager;
|
|
104
|
-
}
|
|
105
|
-
getInvalidationManager() {
|
|
106
|
-
return this.invalidationManager;
|
|
107
|
-
}
|
|
108
|
-
getDependencyGraph() {
|
|
109
|
-
return this.dependencyGraph;
|
|
110
|
-
}
|
|
111
|
-
getDiscoveredTables() {
|
|
112
|
-
return Array.from(this.discoveredTables);
|
|
113
|
-
}
|
|
114
|
-
async healthCheck() {
|
|
115
|
-
const mariadbHealthy = await this.dbManager.healthCheck();
|
|
116
|
-
const redisHealthy = await this.redisManager.healthCheck();
|
|
117
|
-
return {
|
|
118
|
-
mariadb: mariadbHealthy,
|
|
119
|
-
redis: redisHealthy,
|
|
120
|
-
overall: mariadbHealthy && redisHealthy,
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
async close() {
|
|
124
|
-
this.log('info', 'Closing SmartDBClient...');
|
|
125
|
-
await this.cacheManager.clear();
|
|
126
|
-
await this.dbManager.close();
|
|
127
|
-
await this.redisManager.close();
|
|
128
|
-
this.initialized = false;
|
|
129
|
-
this.log('info', 'SmartDBClient closed');
|
|
130
|
-
}
|
|
131
|
-
log(level, message, meta) {
|
|
132
|
-
if (this.config.logging?.logger) {
|
|
133
|
-
this.config.logging.logger(level, message, meta);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
exports.SmartDBClient = SmartDBClient;
|
|
138
|
-
//# sourceMappingURL=client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/smart-cache/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import * as mariadb from 'mariadb';
|
|
2
|
-
import { MariaDBConfig } from '../types/config';
|
|
3
|
-
export declare class MariaDBConnectionManager {
|
|
4
|
-
private pool;
|
|
5
|
-
private config;
|
|
6
|
-
constructor(config: MariaDBConfig);
|
|
7
|
-
connect(): Promise<mariadb.Pool>;
|
|
8
|
-
getConnection(): Promise<mariadb.PoolConnection>;
|
|
9
|
-
query<T = any>(sql: string, params?: any[]): Promise<T>;
|
|
10
|
-
healthCheck(): Promise<boolean>;
|
|
11
|
-
close(): Promise<void>;
|
|
12
|
-
isConnected(): boolean;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=mariadb.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mariadb.d.ts","sourceRoot":"","sources":["../../../src/smart-cache/connection/mariadb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBAAa,wBAAwB;IACnC,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE,aAAa;IAI3B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;IAchC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;IAKhD,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAKvD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAS/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,WAAW,IAAI,OAAO;CAGvB"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.MariaDBConnectionManager = void 0;
|
|
37
|
-
const mariadb = __importStar(require("mariadb"));
|
|
38
|
-
class MariaDBConnectionManager {
|
|
39
|
-
constructor(config) {
|
|
40
|
-
this.pool = null;
|
|
41
|
-
this.config = config;
|
|
42
|
-
}
|
|
43
|
-
async connect() {
|
|
44
|
-
if (this.pool) {
|
|
45
|
-
return this.pool;
|
|
46
|
-
}
|
|
47
|
-
this.pool = mariadb.createPool({
|
|
48
|
-
...this.config,
|
|
49
|
-
port: this.config.port || 3306,
|
|
50
|
-
connectionLimit: this.config.connectionLimit || 10,
|
|
51
|
-
});
|
|
52
|
-
return this.pool;
|
|
53
|
-
}
|
|
54
|
-
async getConnection() {
|
|
55
|
-
const pool = await this.connect();
|
|
56
|
-
return pool.getConnection();
|
|
57
|
-
}
|
|
58
|
-
async query(sql, params) {
|
|
59
|
-
const pool = await this.connect();
|
|
60
|
-
return pool.query(sql, params);
|
|
61
|
-
}
|
|
62
|
-
async healthCheck() {
|
|
63
|
-
try {
|
|
64
|
-
await this.query('SELECT 1');
|
|
65
|
-
return true;
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
return false;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
async close() {
|
|
72
|
-
if (this.pool) {
|
|
73
|
-
await this.pool.end();
|
|
74
|
-
this.pool = null;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
isConnected() {
|
|
78
|
-
return this.pool !== null;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
exports.MariaDBConnectionManager = MariaDBConnectionManager;
|
|
82
|
-
//# sourceMappingURL=mariadb.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mariadb.js","sourceRoot":"","sources":["../../../src/smart-cache/connection/mariadb.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAmC;AAGnC,MAAa,wBAAwB;IAInC,YAAY,MAAqB;QAHzB,SAAI,GAAwB,IAAI,CAAC;QAIvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;YAC7B,GAAG,IAAI,CAAC,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI;YAC9B,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE;SACnD,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,KAAK,CAAU,GAAW,EAAE,MAAc;QAC9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,CAAC;IACH,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;IAC5B,CAAC;CACF;AAnDD,4DAmDC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import Redis from 'ioredis';
|
|
2
|
-
import { RedisConfig } from '../types/config';
|
|
3
|
-
export declare class RedisConnectionManager {
|
|
4
|
-
private client;
|
|
5
|
-
private config;
|
|
6
|
-
private isHealthy;
|
|
7
|
-
constructor(config: RedisConfig);
|
|
8
|
-
connect(): Promise<Redis>;
|
|
9
|
-
get(key: string): Promise<string | null>;
|
|
10
|
-
set(key: string, value: string, ttlSeconds?: number): Promise<void>;
|
|
11
|
-
del(key: string | string[]): Promise<number>;
|
|
12
|
-
exists(key: string): Promise<boolean>;
|
|
13
|
-
scan(pattern: string): Promise<string[]>;
|
|
14
|
-
deletePattern(pattern: string): Promise<number>;
|
|
15
|
-
healthCheck(): Promise<boolean>;
|
|
16
|
-
close(): Promise<void>;
|
|
17
|
-
isConnected(): boolean;
|
|
18
|
-
getClient(): Redis | null;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=redis.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../../src/smart-cache/connection/redis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAuB,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAkB;gBAEvB,MAAM,EAAE,WAAW;IAIzB,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;IAsDzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAaxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAc5C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAcrC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA4BxC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ/C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAU/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B,WAAW,IAAI,OAAO;IAItB,SAAS,IAAI,KAAK,GAAG,IAAI;CAG1B"}
|
|
@@ -1,168 +0,0 @@
|
|
|
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.RedisConnectionManager = void 0;
|
|
7
|
-
const ioredis_1 = __importDefault(require("ioredis"));
|
|
8
|
-
class RedisConnectionManager {
|
|
9
|
-
constructor(config) {
|
|
10
|
-
this.client = null;
|
|
11
|
-
this.isHealthy = false;
|
|
12
|
-
this.config = config;
|
|
13
|
-
}
|
|
14
|
-
async connect() {
|
|
15
|
-
if (this.client && this.isHealthy) {
|
|
16
|
-
return this.client;
|
|
17
|
-
}
|
|
18
|
-
const options = {
|
|
19
|
-
host: this.config.host,
|
|
20
|
-
port: this.config.port || 6379,
|
|
21
|
-
password: this.config.password,
|
|
22
|
-
db: this.config.db || 0,
|
|
23
|
-
keyPrefix: this.config.keyPrefix || 'sdc:',
|
|
24
|
-
retryStrategy: (times) => {
|
|
25
|
-
const delay = Math.min(times * 50, 2000);
|
|
26
|
-
return delay;
|
|
27
|
-
},
|
|
28
|
-
...this.config.options,
|
|
29
|
-
};
|
|
30
|
-
this.client = new ioredis_1.default(options);
|
|
31
|
-
this.client.on('connect', () => {
|
|
32
|
-
this.isHealthy = true;
|
|
33
|
-
});
|
|
34
|
-
this.client.on('error', (error) => {
|
|
35
|
-
this.isHealthy = false;
|
|
36
|
-
console.error('[Redis] Connection error:', error.message);
|
|
37
|
-
});
|
|
38
|
-
this.client.on('close', () => {
|
|
39
|
-
this.isHealthy = false;
|
|
40
|
-
});
|
|
41
|
-
// Wait for initial connection
|
|
42
|
-
await new Promise((resolve, reject) => {
|
|
43
|
-
const timeout = setTimeout(() => {
|
|
44
|
-
reject(new Error('Redis connection timeout'));
|
|
45
|
-
}, 10000);
|
|
46
|
-
this.client.once('ready', () => {
|
|
47
|
-
clearTimeout(timeout);
|
|
48
|
-
this.isHealthy = true;
|
|
49
|
-
resolve();
|
|
50
|
-
});
|
|
51
|
-
this.client.once('error', (err) => {
|
|
52
|
-
clearTimeout(timeout);
|
|
53
|
-
reject(err);
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
return this.client;
|
|
57
|
-
}
|
|
58
|
-
async get(key) {
|
|
59
|
-
if (!this.isHealthy) {
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
|
-
try {
|
|
63
|
-
const client = await this.connect();
|
|
64
|
-
return await client.get(key);
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
console.error('[Redis] Get error:', error);
|
|
68
|
-
return null;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
async set(key, value, ttlSeconds) {
|
|
72
|
-
if (!this.isHealthy) {
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
try {
|
|
76
|
-
const client = await this.connect();
|
|
77
|
-
if (ttlSeconds) {
|
|
78
|
-
await client.set(key, value, 'EX', ttlSeconds);
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
await client.set(key, value);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
catch (error) {
|
|
85
|
-
console.error('[Redis] Set error:', error);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
async del(key) {
|
|
89
|
-
if (!this.isHealthy) {
|
|
90
|
-
return 0;
|
|
91
|
-
}
|
|
92
|
-
try {
|
|
93
|
-
const client = await this.connect();
|
|
94
|
-
const keys = Array.isArray(key) ? key : [key];
|
|
95
|
-
return await client.del(...keys);
|
|
96
|
-
}
|
|
97
|
-
catch (error) {
|
|
98
|
-
console.error('[Redis] Del error:', error);
|
|
99
|
-
return 0;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
async exists(key) {
|
|
103
|
-
if (!this.isHealthy) {
|
|
104
|
-
return false;
|
|
105
|
-
}
|
|
106
|
-
try {
|
|
107
|
-
const client = await this.connect();
|
|
108
|
-
const result = await client.exists(key);
|
|
109
|
-
return result === 1;
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
console.error('[Redis] Exists error:', error);
|
|
113
|
-
return false;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
async scan(pattern) {
|
|
117
|
-
if (!this.isHealthy) {
|
|
118
|
-
return [];
|
|
119
|
-
}
|
|
120
|
-
try {
|
|
121
|
-
const client = await this.connect();
|
|
122
|
-
const keys = [];
|
|
123
|
-
let cursor = '0';
|
|
124
|
-
do {
|
|
125
|
-
const [nextCursor, matchedKeys] = await client.scan(cursor, 'MATCH', pattern, 'COUNT', 100);
|
|
126
|
-
cursor = nextCursor;
|
|
127
|
-
keys.push(...matchedKeys);
|
|
128
|
-
} while (cursor !== '0');
|
|
129
|
-
return keys;
|
|
130
|
-
}
|
|
131
|
-
catch (error) {
|
|
132
|
-
console.error('[Redis] Scan error:', error);
|
|
133
|
-
return [];
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
async deletePattern(pattern) {
|
|
137
|
-
const keys = await this.scan(pattern);
|
|
138
|
-
if (keys.length === 0) {
|
|
139
|
-
return 0;
|
|
140
|
-
}
|
|
141
|
-
return await this.del(keys);
|
|
142
|
-
}
|
|
143
|
-
async healthCheck() {
|
|
144
|
-
try {
|
|
145
|
-
const client = await this.connect();
|
|
146
|
-
const result = await client.ping();
|
|
147
|
-
return result === 'PONG';
|
|
148
|
-
}
|
|
149
|
-
catch (error) {
|
|
150
|
-
return false;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
async close() {
|
|
154
|
-
if (this.client) {
|
|
155
|
-
await this.client.quit();
|
|
156
|
-
this.client = null;
|
|
157
|
-
this.isHealthy = false;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
isConnected() {
|
|
161
|
-
return this.client !== null && this.isHealthy;
|
|
162
|
-
}
|
|
163
|
-
getClient() {
|
|
164
|
-
return this.client;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
exports.RedisConnectionManager = RedisConnectionManager;
|
|
168
|
-
//# sourceMappingURL=redis.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/smart-cache/connection/redis.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { TableRelationship } from '../types/schema';
|
|
2
|
-
export declare class DependencyGraph {
|
|
3
|
-
private dependents;
|
|
4
|
-
private dependencies;
|
|
5
|
-
private maxDepth;
|
|
6
|
-
constructor(maxDepth?: number);
|
|
7
|
-
addRelationship(relationship: TableRelationship): void;
|
|
8
|
-
buildFromRelationships(relationships: TableRelationship[]): void;
|
|
9
|
-
getDependents(table: string): string[];
|
|
10
|
-
getDependencies(table: string): string[];
|
|
11
|
-
getInvalidationTargets(table: string): string[];
|
|
12
|
-
private bfsTraversal;
|
|
13
|
-
getAllTables(): string[];
|
|
14
|
-
clear(): void;
|
|
15
|
-
getGraphInfo(): {
|
|
16
|
-
tables: number;
|
|
17
|
-
relationships: number;
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=dependency-graph.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-graph.d.ts","sourceRoot":"","sources":["../../../src/smart-cache/discovery/dependency-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,qBAAa,eAAe;IAE1B,OAAO,CAAC,UAAU,CAAuC;IAGzD,OAAO,CAAC,YAAY,CAAuC;IAE3D,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,GAAE,MAAU;IAIhC,eAAe,CAAC,YAAY,EAAE,iBAAiB,GAAG,IAAI;IAgBtD,sBAAsB,CAAC,aAAa,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAMhE,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAItC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAIxC,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAS/C,OAAO,CAAC,YAAY;IA+BpB,YAAY,IAAI,MAAM,EAAE;IAcxB,KAAK,IAAI,IAAI;IAKb,YAAY,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE;CAa1D"}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DependencyGraph = void 0;
|
|
4
|
-
class DependencyGraph {
|
|
5
|
-
constructor(maxDepth = 3) {
|
|
6
|
-
// Adjacency list: table -> set of tables that depend on it (have FK to it)
|
|
7
|
-
this.dependents = new Map();
|
|
8
|
-
// Adjacency list: table -> set of tables it depends on (has FK to)
|
|
9
|
-
this.dependencies = new Map();
|
|
10
|
-
this.maxDepth = maxDepth;
|
|
11
|
-
}
|
|
12
|
-
addRelationship(relationship) {
|
|
13
|
-
const { fromTable, toTable } = relationship;
|
|
14
|
-
// fromTable depends on toTable (fromTable has FK to toTable)
|
|
15
|
-
if (!this.dependencies.has(fromTable)) {
|
|
16
|
-
this.dependencies.set(fromTable, new Set());
|
|
17
|
-
}
|
|
18
|
-
this.dependencies.get(fromTable).add(toTable);
|
|
19
|
-
// toTable has fromTable as dependent (fromTable references toTable)
|
|
20
|
-
if (!this.dependents.has(toTable)) {
|
|
21
|
-
this.dependents.set(toTable, new Set());
|
|
22
|
-
}
|
|
23
|
-
this.dependents.get(toTable).add(fromTable);
|
|
24
|
-
}
|
|
25
|
-
buildFromRelationships(relationships) {
|
|
26
|
-
for (const rel of relationships) {
|
|
27
|
-
this.addRelationship(rel);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
getDependents(table) {
|
|
31
|
-
return Array.from(this.dependents.get(table) || []);
|
|
32
|
-
}
|
|
33
|
-
getDependencies(table) {
|
|
34
|
-
return Array.from(this.dependencies.get(table) || []);
|
|
35
|
-
}
|
|
36
|
-
getInvalidationTargets(table) {
|
|
37
|
-
const visited = new Set();
|
|
38
|
-
const targets = [];
|
|
39
|
-
this.bfsTraversal(table, visited, targets, 0);
|
|
40
|
-
return targets;
|
|
41
|
-
}
|
|
42
|
-
bfsTraversal(table, visited, targets, depth) {
|
|
43
|
-
if (visited.has(table) || depth > this.maxDepth) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
visited.add(table);
|
|
47
|
-
targets.push(table);
|
|
48
|
-
// Get all tables that depend on this table
|
|
49
|
-
const dependents = this.getDependents(table);
|
|
50
|
-
for (const dependent of dependents) {
|
|
51
|
-
this.bfsTraversal(dependent, visited, targets, depth + 1);
|
|
52
|
-
}
|
|
53
|
-
// Optionally, also traverse dependencies (tables this table depends on)
|
|
54
|
-
// This is useful for bidirectional invalidation
|
|
55
|
-
const dependencies = this.getDependencies(table);
|
|
56
|
-
for (const dependency of dependencies) {
|
|
57
|
-
if (!visited.has(dependency) && depth < this.maxDepth) {
|
|
58
|
-
this.bfsTraversal(dependency, visited, targets, depth + 1);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
getAllTables() {
|
|
63
|
-
const tables = new Set();
|
|
64
|
-
for (const table of this.dependents.keys()) {
|
|
65
|
-
tables.add(table);
|
|
66
|
-
}
|
|
67
|
-
for (const table of this.dependencies.keys()) {
|
|
68
|
-
tables.add(table);
|
|
69
|
-
}
|
|
70
|
-
return Array.from(tables);
|
|
71
|
-
}
|
|
72
|
-
clear() {
|
|
73
|
-
this.dependents.clear();
|
|
74
|
-
this.dependencies.clear();
|
|
75
|
-
}
|
|
76
|
-
getGraphInfo() {
|
|
77
|
-
const allTables = this.getAllTables();
|
|
78
|
-
let relationshipCount = 0;
|
|
79
|
-
for (const deps of this.dependencies.values()) {
|
|
80
|
-
relationshipCount += deps.size;
|
|
81
|
-
}
|
|
82
|
-
return {
|
|
83
|
-
tables: allTables.length,
|
|
84
|
-
relationships: relationshipCount,
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
exports.DependencyGraph = DependencyGraph;
|
|
89
|
-
//# sourceMappingURL=dependency-graph.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-graph.js","sourceRoot":"","sources":["../../../src/smart-cache/discovery/dependency-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { MariaDBConnectionManager } from '../connection/mariadb';
|
|
2
|
-
import { TableRelationship } from '../types/schema';
|
|
3
|
-
export declare class RelationshipParser {
|
|
4
|
-
private dbManager;
|
|
5
|
-
constructor(dbManager: MariaDBConnectionManager);
|
|
6
|
-
parseRelationships(): Promise<TableRelationship[]>;
|
|
7
|
-
private getCurrentDatabase;
|
|
8
|
-
private getForeignKeyRelationships;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=relationship-parser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"relationship-parser.d.ts","sourceRoot":"","sources":["../../../src/smart-cache/discovery/relationship-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAA2B;gBAEhC,SAAS,EAAE,wBAAwB;IAIzC,kBAAkB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAK1C,kBAAkB;YAKlB,0BAA0B;CA0BzC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RelationshipParser = void 0;
|
|
4
|
-
class RelationshipParser {
|
|
5
|
-
constructor(dbManager) {
|
|
6
|
-
this.dbManager = dbManager;
|
|
7
|
-
}
|
|
8
|
-
async parseRelationships() {
|
|
9
|
-
const database = await this.getCurrentDatabase();
|
|
10
|
-
return await this.getForeignKeyRelationships(database);
|
|
11
|
-
}
|
|
12
|
-
async getCurrentDatabase() {
|
|
13
|
-
const result = await this.dbManager.query('SELECT DATABASE() as db');
|
|
14
|
-
return result[0].db;
|
|
15
|
-
}
|
|
16
|
-
async getForeignKeyRelationships(database) {
|
|
17
|
-
const sql = `
|
|
18
|
-
SELECT
|
|
19
|
-
kcu.CONSTRAINT_NAME as constraintName,
|
|
20
|
-
kcu.TABLE_NAME as fromTable,
|
|
21
|
-
kcu.COLUMN_NAME as fromColumn,
|
|
22
|
-
kcu.REFERENCED_TABLE_NAME as toTable,
|
|
23
|
-
kcu.REFERENCED_COLUMN_NAME as toColumn
|
|
24
|
-
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu
|
|
25
|
-
WHERE kcu.TABLE_SCHEMA = ?
|
|
26
|
-
AND kcu.REFERENCED_TABLE_NAME IS NOT NULL
|
|
27
|
-
ORDER BY kcu.TABLE_NAME, kcu.CONSTRAINT_NAME
|
|
28
|
-
`;
|
|
29
|
-
const result = await this.dbManager.query(sql, [database]);
|
|
30
|
-
return result.map((row) => ({
|
|
31
|
-
constraintName: row.constraintName,
|
|
32
|
-
fromTable: row.fromTable,
|
|
33
|
-
fromColumn: row.fromColumn,
|
|
34
|
-
toTable: row.toTable,
|
|
35
|
-
toColumn: row.toColumn,
|
|
36
|
-
}));
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.RelationshipParser = RelationshipParser;
|
|
40
|
-
//# sourceMappingURL=relationship-parser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"relationship-parser.js","sourceRoot":"","sources":["../../../src/smart-cache/discovery/relationship-parser.ts"],"names":[],"mappings":";;;AAGA,MAAa,kBAAkB;IAG7B,YAAY,SAAmC;QAC7C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACjD,OAAO,MAAM,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,MAAM,MAAM,GAAQ,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC1E,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,0BAA0B,CACtC,QAAgB;QAEhB,MAAM,GAAG,GAAG;;;;;;;;;;;KAWX,CAAC;QAEF,MAAM,MAAM,GAAQ,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEhE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YAC/B,cAAc,EAAE,GAAG,CAAC,cAAc;YAClC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC,CAAC,CAAC;IACN,CAAC;CACF;AA3CD,gDA2CC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { MariaDBConnectionManager } from '../connection/mariadb';
|
|
2
|
-
import { TableSchema } from '../types/schema';
|
|
3
|
-
import { DiscoveryConfig } from '../types/config';
|
|
4
|
-
export declare class SchemaReader {
|
|
5
|
-
private dbManager;
|
|
6
|
-
private config;
|
|
7
|
-
constructor(dbManager: MariaDBConnectionManager, config: DiscoveryConfig);
|
|
8
|
-
discoverTables(): Promise<TableSchema[]>;
|
|
9
|
-
private getCurrentDatabase;
|
|
10
|
-
private getTableNames;
|
|
11
|
-
private filterTables;
|
|
12
|
-
private getTableColumns;
|
|
13
|
-
private findPrimaryKey;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=schema-reader.d.ts.map
|