@arikajs/database 0.0.4 → 0.0.6
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 +392 -25
- package/dist/Connections/MongoDBConnection.d.ts +81 -0
- package/dist/Connections/MongoDBConnection.d.ts.map +1 -0
- package/dist/Connections/MongoDBConnection.js +203 -0
- package/dist/Connections/MongoDBConnection.js.map +1 -0
- package/dist/Connections/MySQLConnection.d.ts +1 -0
- package/dist/Connections/MySQLConnection.d.ts.map +1 -1
- package/dist/Connections/MySQLConnection.js +47 -10
- package/dist/Connections/MySQLConnection.js.map +1 -1
- package/dist/Connections/PostgreSQLConnection.d.ts +1 -0
- package/dist/Connections/PostgreSQLConnection.d.ts.map +1 -1
- package/dist/Connections/PostgreSQLConnection.js +43 -9
- package/dist/Connections/PostgreSQLConnection.js.map +1 -1
- package/dist/Connections/SQLiteConnection.d.ts +1 -0
- package/dist/Connections/SQLiteConnection.d.ts.map +1 -1
- package/dist/Connections/SQLiteConnection.js +38 -7
- package/dist/Connections/SQLiteConnection.js.map +1 -1
- package/dist/Contracts/Database.d.ts +71 -4
- package/dist/Contracts/Database.d.ts.map +1 -1
- package/dist/Contracts/Schema.d.ts +4 -0
- package/dist/Contracts/Schema.d.ts.map +1 -1
- package/dist/Database.d.ts +30 -3
- package/dist/Database.d.ts.map +1 -1
- package/dist/Database.js +39 -1
- package/dist/Database.js.map +1 -1
- package/dist/DatabaseManager.d.ts +17 -3
- package/dist/DatabaseManager.d.ts.map +1 -1
- package/dist/DatabaseManager.js +27 -11
- package/dist/DatabaseManager.js.map +1 -1
- package/dist/Migrations/Migrator.d.ts.map +1 -1
- package/dist/Migrations/Migrator.js +35 -3
- package/dist/Migrations/Migrator.js.map +1 -1
- package/dist/Model/GlobalScope.d.ts +44 -0
- package/dist/Model/GlobalScope.d.ts.map +1 -0
- package/dist/Model/GlobalScope.js +64 -0
- package/dist/Model/GlobalScope.js.map +1 -0
- package/dist/Model/Model.d.ts +168 -4
- package/dist/Model/Model.d.ts.map +1 -1
- package/dist/Model/Model.js +476 -16
- package/dist/Model/Model.js.map +1 -1
- package/dist/Model/Observer.d.ts +39 -0
- package/dist/Model/Observer.d.ts.map +1 -0
- package/dist/Model/Observer.js +48 -0
- package/dist/Model/Observer.js.map +1 -0
- package/dist/Model/Relations.d.ts +201 -10
- package/dist/Model/Relations.d.ts.map +1 -1
- package/dist/Model/Relations.js +472 -27
- package/dist/Model/Relations.js.map +1 -1
- package/dist/Query/Expression.d.ts +16 -0
- package/dist/Query/Expression.d.ts.map +1 -0
- package/dist/Query/Expression.js +25 -0
- package/dist/Query/Expression.js.map +1 -0
- package/dist/Query/QueryBuilder.d.ts +64 -6
- package/dist/Query/QueryBuilder.d.ts.map +1 -1
- package/dist/Query/QueryBuilder.js +234 -15
- package/dist/Query/QueryBuilder.js.map +1 -1
- package/dist/Query/QueryLogger.d.ts +55 -0
- package/dist/Query/QueryLogger.d.ts.map +1 -0
- package/dist/Query/QueryLogger.js +82 -0
- package/dist/Query/QueryLogger.js.map +1 -0
- package/dist/Schema/Grammars/Grammar.d.ts +5 -0
- package/dist/Schema/Grammars/Grammar.d.ts.map +1 -1
- package/dist/Schema/Grammars/Grammar.js.map +1 -1
- package/dist/Schema/Grammars/MySQLGrammar.d.ts +1 -0
- package/dist/Schema/Grammars/MySQLGrammar.d.ts.map +1 -1
- package/dist/Schema/Grammars/MySQLGrammar.js +42 -0
- package/dist/Schema/Grammars/MySQLGrammar.js.map +1 -1
- package/dist/Schema/Grammars/PostgreSQLGrammar.d.ts +1 -0
- package/dist/Schema/Grammars/PostgreSQLGrammar.d.ts.map +1 -1
- package/dist/Schema/Grammars/PostgreSQLGrammar.js +46 -0
- package/dist/Schema/Grammars/PostgreSQLGrammar.js.map +1 -1
- package/dist/Schema/Grammars/SQLiteGrammar.d.ts +1 -0
- package/dist/Schema/Grammars/SQLiteGrammar.d.ts.map +1 -1
- package/dist/Schema/Grammars/SQLiteGrammar.js +31 -0
- package/dist/Schema/Grammars/SQLiteGrammar.js.map +1 -1
- package/dist/Schema/Schema.d.ts +6 -0
- package/dist/Schema/Schema.d.ts.map +1 -1
- package/dist/Schema/Schema.js +10 -0
- package/dist/Schema/Schema.js.map +1 -1
- package/dist/Schema/SchemaBuilder.d.ts +4 -0
- package/dist/Schema/SchemaBuilder.d.ts.map +1 -1
- package/dist/Schema/SchemaBuilder.js +15 -0
- package/dist/Schema/SchemaBuilder.js.map +1 -1
- package/dist/Transactions/TransactionManager.d.ts +28 -0
- package/dist/Transactions/TransactionManager.d.ts.map +1 -0
- package/dist/Transactions/TransactionManager.js +68 -0
- package/dist/Transactions/TransactionManager.js.map +1 -0
- package/dist/index.d.ts +11 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -1
- package/dist/index.js.map +1 -1
- package/package.json +10 -6
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Database connection configuration
|
|
3
3
|
*/
|
|
4
4
|
export interface ConnectionConfig {
|
|
5
|
-
driver: 'mysql' | 'pgsql' | 'sqlite';
|
|
5
|
+
driver: 'mysql' | 'pgsql' | 'sqlite' | 'mongodb';
|
|
6
6
|
host?: string;
|
|
7
7
|
port?: number;
|
|
8
8
|
database: string;
|
|
@@ -14,6 +14,8 @@ export interface ConnectionConfig {
|
|
|
14
14
|
min?: number;
|
|
15
15
|
max?: number;
|
|
16
16
|
};
|
|
17
|
+
read?: Partial<ConnectionConfig> | Partial<ConnectionConfig>[];
|
|
18
|
+
write?: Partial<ConnectionConfig>;
|
|
17
19
|
}
|
|
18
20
|
/**
|
|
19
21
|
* Database configuration with multiple connections
|
|
@@ -87,10 +89,30 @@ export interface QueryBuilder {
|
|
|
87
89
|
* Add a where not null clause
|
|
88
90
|
*/
|
|
89
91
|
whereNotNull(column: string): this;
|
|
92
|
+
/**
|
|
93
|
+
* Add a raw where clause
|
|
94
|
+
*/
|
|
95
|
+
whereRaw(sql: string, bindings?: any[]): this;
|
|
96
|
+
/**
|
|
97
|
+
* Add a raw OR where clause
|
|
98
|
+
*/
|
|
99
|
+
orWhereRaw(sql: string, bindings?: any[]): this;
|
|
100
|
+
/**
|
|
101
|
+
* Add an exists clause
|
|
102
|
+
*/
|
|
103
|
+
whereExists(callback: (query: any) => void, boolean?: 'and' | 'or', not?: boolean): this;
|
|
104
|
+
/**
|
|
105
|
+
* Add a not exists clause
|
|
106
|
+
*/
|
|
107
|
+
whereNotExists(callback: (query: any) => void, boolean?: 'and' | 'or'): this;
|
|
90
108
|
/**
|
|
91
109
|
* Add a select clause
|
|
92
110
|
*/
|
|
93
|
-
select(...columns: string[]): this;
|
|
111
|
+
select(...columns: (string | any)[]): this;
|
|
112
|
+
/**
|
|
113
|
+
* Add a raw select clause
|
|
114
|
+
*/
|
|
115
|
+
selectRaw(sql: string): this;
|
|
94
116
|
/**
|
|
95
117
|
* Add an order by clause
|
|
96
118
|
*/
|
|
@@ -112,9 +134,37 @@ export interface QueryBuilder {
|
|
|
112
134
|
*/
|
|
113
135
|
first(): Promise<any | null>;
|
|
114
136
|
/**
|
|
115
|
-
*
|
|
137
|
+
* Paginate the query results
|
|
138
|
+
*/
|
|
139
|
+
paginate(page?: number, perPage?: number, path?: string): Promise<{
|
|
140
|
+
data: any[];
|
|
141
|
+
meta: any;
|
|
142
|
+
links: any;
|
|
143
|
+
}>;
|
|
144
|
+
/**
|
|
145
|
+
* Paginate without counting total pages
|
|
146
|
+
*/
|
|
147
|
+
simplePaginate(page?: number, perPage?: number, path?: string): Promise<{
|
|
148
|
+
data: any[];
|
|
149
|
+
meta: any;
|
|
150
|
+
links: any;
|
|
151
|
+
}>;
|
|
152
|
+
/**
|
|
153
|
+
* Cursor paginate for high performance
|
|
116
154
|
*/
|
|
117
|
-
|
|
155
|
+
cursorPaginate(cursor?: string | null, perPage?: number, cursorColumn?: string, path?: string): Promise<{
|
|
156
|
+
data: any[];
|
|
157
|
+
meta: any;
|
|
158
|
+
links: any;
|
|
159
|
+
}>;
|
|
160
|
+
/**
|
|
161
|
+
* Chunk the query results
|
|
162
|
+
*/
|
|
163
|
+
chunk(count: number, callback: (results: any[], page: number) => Promise<boolean | void>): Promise<boolean>;
|
|
164
|
+
/**
|
|
165
|
+
* Insert a record or multiple records
|
|
166
|
+
*/
|
|
167
|
+
insert(data: Record<string, any> | Record<string, any>[]): Promise<any>;
|
|
118
168
|
/**
|
|
119
169
|
* Update records
|
|
120
170
|
*/
|
|
@@ -127,5 +177,22 @@ export interface QueryBuilder {
|
|
|
127
177
|
* Get the count of records
|
|
128
178
|
*/
|
|
129
179
|
count(column?: string): Promise<number>;
|
|
180
|
+
/**
|
|
181
|
+
* Cache the query results
|
|
182
|
+
*/
|
|
183
|
+
cache(ttl: number, key?: string): this;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Cache store implementation used by the query builder
|
|
187
|
+
*/
|
|
188
|
+
export interface QueryCache {
|
|
189
|
+
/**
|
|
190
|
+
* Get an item from the cache, or execute the given closure and store the result
|
|
191
|
+
*/
|
|
192
|
+
remember<T>(key: string, ttl: number, callback: () => Promise<T>): Promise<T>;
|
|
193
|
+
/**
|
|
194
|
+
* Remove an item from the cache
|
|
195
|
+
*/
|
|
196
|
+
forget(key: string): Promise<boolean>;
|
|
130
197
|
}
|
|
131
198
|
//# sourceMappingURL=Database.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../src/Contracts/Database.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../src/Contracts/Database.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Contracts/Schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAE1B;;OAEG;IACH,MAAM,IAAI,IAAI,CAAC;IAEf;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB;;OAEG;IACH,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAEpC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAExD;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAExC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAE3C;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAExC;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAErC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAE1C;;OAEG;IACH,UAAU,IAAI,IAAI,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAE5E;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAEzC;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAErC;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAAC;IAE9C;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvD;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExD;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Contracts/Schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAE1B;;OAEG;IACH,MAAM,IAAI,IAAI,CAAC;IAEf;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB;;OAEG;IACH,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAEpC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAExD;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAExC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAE3C;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAExC;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAErC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAE1C;;OAEG;IACH,UAAU,IAAI,IAAI,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAE5E;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAEzC;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAErC;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAAC;IAE9C;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvD;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExD;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC;IAE1E;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC;CAC7E;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC"}
|
package/dist/Database.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { DatabaseManager } from './DatabaseManager';
|
|
2
2
|
import { QueryBuilder } from './Query/QueryBuilder';
|
|
3
|
+
import { Expression } from './Query/Expression';
|
|
3
4
|
import { SchemaBuilder } from './Schema/SchemaBuilder';
|
|
5
|
+
import { Connection } from './Contracts/Database';
|
|
6
|
+
import { TransactionManager } from './Transactions/TransactionManager';
|
|
4
7
|
/**
|
|
5
8
|
* Database facade - static interface to the database manager
|
|
6
9
|
*/
|
|
@@ -23,13 +26,37 @@ export declare class Database {
|
|
|
23
26
|
*/
|
|
24
27
|
static schema(connectionName?: string): SchemaBuilder;
|
|
25
28
|
/**
|
|
26
|
-
* Execute a transaction
|
|
29
|
+
* Execute a callback within a transaction (nested savepoints supported)
|
|
27
30
|
*/
|
|
28
|
-
static transaction<T>(callback: (trx:
|
|
31
|
+
static transaction<T>(callback: (trx: Connection) => Promise<T>, connectionName?: string): Promise<T>;
|
|
32
|
+
/**
|
|
33
|
+
* Get a TransactionManager for manual begin/commit/rollback control
|
|
34
|
+
*/
|
|
35
|
+
static getTransactionManager(connectionName?: string): Promise<TransactionManager>;
|
|
36
|
+
/**
|
|
37
|
+
* Enable query logging
|
|
38
|
+
*/
|
|
39
|
+
static enableQueryLog(): void;
|
|
40
|
+
/**
|
|
41
|
+
* Disable query logging
|
|
42
|
+
*/
|
|
43
|
+
static disableQueryLog(): void;
|
|
44
|
+
/**
|
|
45
|
+
* Get all logged queries
|
|
46
|
+
*/
|
|
47
|
+
static getQueryLog(): import("./Query/QueryLogger").QueryLog[];
|
|
48
|
+
/**
|
|
49
|
+
* Flush (clear) the query log
|
|
50
|
+
*/
|
|
51
|
+
static flushQueryLog(): void;
|
|
29
52
|
/**
|
|
30
53
|
* Get a connection by name
|
|
31
54
|
*/
|
|
32
|
-
static connection(name?: string):
|
|
55
|
+
static connection(name?: string): Connection | Promise<Connection>;
|
|
56
|
+
/**
|
|
57
|
+
* Create a raw SQL expression
|
|
58
|
+
*/
|
|
59
|
+
static raw(value: string | number): Expression;
|
|
33
60
|
/**
|
|
34
61
|
* Close all connections
|
|
35
62
|
*/
|
package/dist/Database.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../src/Database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;GAEG;AACH,qBAAa,QAAQ;IACjB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAkB;IAExC;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAIjD;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,eAAe;IAOpC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY;IAItE;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa;IAIrD;;OAEG;WACU,WAAW,CAAC,CAAC,EACtB,QAAQ,EAAE,CAAC,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../src/Database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE;;GAEG;AACH,qBAAa,QAAQ;IACjB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAkB;IAExC;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAIjD;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,eAAe;IAOpC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY;IAItE;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa;IAIrD;;OAEG;WACU,WAAW,CAAC,CAAC,EACtB,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,EACzC,cAAc,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,CAAC,CAAC;IAIb;;OAEG;WACU,qBAAqB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIxF;;OAEG;IACH,MAAM,CAAC,cAAc,IAAI,IAAI;IAI7B;;OAEG;IACH,MAAM,CAAC,eAAe,IAAI,IAAI;IAI9B;;OAEG;IACH,MAAM,CAAC,WAAW;IAIlB;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM;IAI/B;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU;IAI9C;;OAEG;WACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGzC"}
|
package/dist/Database.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Database = void 0;
|
|
4
|
+
const Expression_1 = require("./Query/Expression");
|
|
5
|
+
const QueryLogger_1 = require("./Query/QueryLogger");
|
|
4
6
|
/**
|
|
5
7
|
* Database facade - static interface to the database manager
|
|
6
8
|
*/
|
|
@@ -33,17 +35,53 @@ class Database {
|
|
|
33
35
|
return Database.getManager().schema(connectionName);
|
|
34
36
|
}
|
|
35
37
|
/**
|
|
36
|
-
* Execute a transaction
|
|
38
|
+
* Execute a callback within a transaction (nested savepoints supported)
|
|
37
39
|
*/
|
|
38
40
|
static async transaction(callback, connectionName) {
|
|
39
41
|
return await Database.getManager().transaction(callback, connectionName);
|
|
40
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Get a TransactionManager for manual begin/commit/rollback control
|
|
45
|
+
*/
|
|
46
|
+
static async getTransactionManager(connectionName) {
|
|
47
|
+
return Database.getManager().getTransactionManager(connectionName);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Enable query logging
|
|
51
|
+
*/
|
|
52
|
+
static enableQueryLog() {
|
|
53
|
+
QueryLogger_1.QueryLogger.enable();
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Disable query logging
|
|
57
|
+
*/
|
|
58
|
+
static disableQueryLog() {
|
|
59
|
+
QueryLogger_1.QueryLogger.disable();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get all logged queries
|
|
63
|
+
*/
|
|
64
|
+
static getQueryLog() {
|
|
65
|
+
return QueryLogger_1.QueryLogger.getLog();
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Flush (clear) the query log
|
|
69
|
+
*/
|
|
70
|
+
static flushQueryLog() {
|
|
71
|
+
QueryLogger_1.QueryLogger.flush();
|
|
72
|
+
}
|
|
41
73
|
/**
|
|
42
74
|
* Get a connection by name
|
|
43
75
|
*/
|
|
44
76
|
static connection(name) {
|
|
45
77
|
return Database.getManager().connection(name);
|
|
46
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Create a raw SQL expression
|
|
81
|
+
*/
|
|
82
|
+
static raw(value) {
|
|
83
|
+
return new Expression_1.Expression(value);
|
|
84
|
+
}
|
|
47
85
|
/**
|
|
48
86
|
* Close all connections
|
|
49
87
|
*/
|
package/dist/Database.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Database.js","sourceRoot":"","sources":["../src/Database.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Database.js","sourceRoot":"","sources":["../src/Database.ts"],"names":[],"mappings":";;;AAEA,mDAAgD;AAEhD,qDAAkD;AAIlD;;GAEG;AACH,MAAa,QAAQ;IAGjB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAwB;QACtC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU;QACb,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,SAAiB,EAAE,cAAuB;QACnD,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,cAAuB;QACjC,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CACpB,QAAyC,EACzC,cAAuB;QAEvB,OAAO,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,cAAuB;QACtD,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc;QACjB,yBAAW,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe;QAClB,yBAAW,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW;QACd,OAAO,yBAAW,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa;QAChB,yBAAW,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAa;QAC3B,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,KAAsB;QAC7B,OAAO,IAAI,uBAAU,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ;QACjB,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC5C,CAAC;CACJ;AAnGD,4BAmGC"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { Connection, DatabaseConfig } from './Contracts/Database';
|
|
1
|
+
import { Connection, DatabaseConfig, QueryCache } from './Contracts/Database';
|
|
2
2
|
import { QueryBuilder } from './Query/QueryBuilder';
|
|
3
3
|
import { SchemaBuilder } from './Schema/SchemaBuilder';
|
|
4
|
+
import { TransactionManager } from './Transactions/TransactionManager';
|
|
4
5
|
/**
|
|
5
6
|
* Database manager - handles connections and query builders
|
|
6
7
|
*/
|
|
7
8
|
export declare class DatabaseManager {
|
|
8
9
|
private connections;
|
|
9
10
|
private config;
|
|
11
|
+
private cacheStore?;
|
|
10
12
|
constructor(config: DatabaseConfig);
|
|
11
13
|
/**
|
|
12
14
|
* Get a connection by name
|
|
@@ -21,9 +23,21 @@ export declare class DatabaseManager {
|
|
|
21
23
|
*/
|
|
22
24
|
schema(connectionName?: string): SchemaBuilder;
|
|
23
25
|
/**
|
|
24
|
-
* Execute a transaction
|
|
26
|
+
* Execute a callback within a transaction (nested savepoints supported)
|
|
25
27
|
*/
|
|
26
|
-
transaction<T>(callback: (trx:
|
|
28
|
+
transaction<T>(callback: (trx: Connection) => Promise<T>, connectionName?: string): Promise<T>;
|
|
29
|
+
/**
|
|
30
|
+
* Get a TransactionManager for manual begin/commit/rollback control
|
|
31
|
+
*/
|
|
32
|
+
getTransactionManager(connectionName?: string): Promise<TransactionManager>;
|
|
33
|
+
/**
|
|
34
|
+
* Set a query cache implementation
|
|
35
|
+
*/
|
|
36
|
+
setCache(cache: QueryCache): void;
|
|
37
|
+
/**
|
|
38
|
+
* Get the configured query cache store
|
|
39
|
+
*/
|
|
40
|
+
getCache(): QueryCache | undefined;
|
|
27
41
|
/**
|
|
28
42
|
* Close all connections
|
|
29
43
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseManager.d.ts","sourceRoot":"","sources":["../src/DatabaseManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"DatabaseManager.d.ts","sourceRoot":"","sources":["../src/DatabaseManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE;;GAEG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAa;gBAEpB,MAAM,EAAE,cAAc;IAIlC;;OAEG;IACH,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAoB3D;;OAEG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY;IAK/D;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa;IAK9C;;OAEG;IACG,WAAW,CAAC,CAAC,EACf,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,EACzC,cAAc,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,CAAC,CAAC;IAMb;;OAEG;IACG,qBAAqB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAKjF;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAIjC;;OAEG;IACH,QAAQ,IAAI,UAAU,GAAG,SAAS;IAIlC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/B;;OAEG;YACW,gBAAgB;CAsBjC"}
|
package/dist/DatabaseManager.js
CHANGED
|
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.DatabaseManager = void 0;
|
|
37
37
|
const QueryBuilder_1 = require("./Query/QueryBuilder");
|
|
38
38
|
const SchemaBuilder_1 = require("./Schema/SchemaBuilder");
|
|
39
|
+
const TransactionManager_1 = require("./Transactions/TransactionManager");
|
|
39
40
|
/**
|
|
40
41
|
* Database manager - handles connections and query builders
|
|
41
42
|
*/
|
|
@@ -77,20 +78,31 @@ class DatabaseManager {
|
|
|
77
78
|
return new SchemaBuilder_1.SchemaBuilder(connection);
|
|
78
79
|
}
|
|
79
80
|
/**
|
|
80
|
-
* Execute a transaction
|
|
81
|
+
* Execute a callback within a transaction (nested savepoints supported)
|
|
81
82
|
*/
|
|
82
83
|
async transaction(callback, connectionName) {
|
|
83
84
|
const connection = await this.connection(connectionName);
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
85
|
+
const txManager = new TransactionManager_1.TransactionManager(connection);
|
|
86
|
+
return txManager.transaction(callback);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get a TransactionManager for manual begin/commit/rollback control
|
|
90
|
+
*/
|
|
91
|
+
async getTransactionManager(connectionName) {
|
|
92
|
+
const connection = await this.connection(connectionName);
|
|
93
|
+
return new TransactionManager_1.TransactionManager(connection);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Set a query cache implementation
|
|
97
|
+
*/
|
|
98
|
+
setCache(cache) {
|
|
99
|
+
this.cacheStore = cache;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Get the configured query cache store
|
|
103
|
+
*/
|
|
104
|
+
getCache() {
|
|
105
|
+
return this.cacheStore;
|
|
94
106
|
}
|
|
95
107
|
/**
|
|
96
108
|
* Close all connections
|
|
@@ -117,6 +129,10 @@ class DatabaseManager {
|
|
|
117
129
|
const { SQLiteConnection } = await Promise.resolve().then(() => __importStar(require('./Connections/SQLiteConnection')));
|
|
118
130
|
return new SQLiteConnection(config);
|
|
119
131
|
}
|
|
132
|
+
case 'mongodb': {
|
|
133
|
+
const { MongoDBConnection } = await Promise.resolve().then(() => __importStar(require('./Connections/MongoDBConnection')));
|
|
134
|
+
return new MongoDBConnection(config);
|
|
135
|
+
}
|
|
120
136
|
default:
|
|
121
137
|
throw new Error(`Unsupported database driver: ${config.driver}`);
|
|
122
138
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseManager.js","sourceRoot":"","sources":["../src/DatabaseManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uDAAoD;AACpD,0DAAuD;
|
|
1
|
+
{"version":3,"file":"DatabaseManager.js","sourceRoot":"","sources":["../src/DatabaseManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Migrator.d.ts","sourceRoot":"","sources":["../../src/Migrations/Migrator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,qBAAa,QAAQ;IAIb,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,cAAc;IAJ1B,OAAO,CAAC,SAAS,CAAgB;gBAGrB,EAAE,EAAE,eAAe,EACnB,cAAc,EAAE,MAAM;IAGlC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BrC;;OAEG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBtC;;OAEG;YACW,qBAAqB;IAgBnC;;OAEG;YACW,MAAM;IAKpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;YACW,OAAO;
|
|
1
|
+
{"version":3,"file":"Migrator.d.ts","sourceRoot":"","sources":["../../src/Migrations/Migrator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,qBAAa,QAAQ;IAIb,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,cAAc;IAJ1B,OAAO,CAAC,SAAS,CAAgB;gBAGrB,EAAE,EAAE,eAAe,EACnB,cAAc,EAAE,MAAM;IAGlC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BrC;;OAEG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBtC;;OAEG;YACW,qBAAqB;IAgBnC;;OAEG;YACW,MAAM;IAKpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;YACW,OAAO;IA4BrB;;OAEG;YACW,YAAY;IAO1B;;OAEG;YACW,eAAe;IAI7B;;OAEG;YACW,kBAAkB;IAKhC;;OAEG;YACW,YAAY;CAM7B"}
|
|
@@ -1,4 +1,37 @@
|
|
|
1
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
|
+
})();
|
|
2
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
37
|
};
|
|
@@ -108,9 +141,8 @@ class Migrator {
|
|
|
108
141
|
*/
|
|
109
142
|
async resolve(file) {
|
|
110
143
|
const fullPath = path_1.default.resolve(this.migrationsPath, file);
|
|
111
|
-
//
|
|
112
|
-
|
|
113
|
-
const module = require(fullPath);
|
|
144
|
+
// Use dynamic import so tsx can handle .ts migration files
|
|
145
|
+
const module = await Promise.resolve(`${fullPath}`).then(s => __importStar(require(s)));
|
|
114
146
|
// Check for default export or named export
|
|
115
147
|
let MigrationClass = module.default || module;
|
|
116
148
|
// If it's still an object and has multiple exports, look for one that looks like a migration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Migrator.js","sourceRoot":"","sources":["../../src/Migrations/Migrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Migrator.js","sourceRoot":"","sources":["../../src/Migrations/Migrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interface for a Global Scope applied to every query on a model
|
|
3
|
+
*/
|
|
4
|
+
export interface GlobalScope {
|
|
5
|
+
/**
|
|
6
|
+
* Apply the scope to the given query builder
|
|
7
|
+
*/
|
|
8
|
+
apply(builder: any, model: any): void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Registry for global scopes on model classes
|
|
12
|
+
*/
|
|
13
|
+
export declare class GlobalScopeRegistry {
|
|
14
|
+
private static scopes;
|
|
15
|
+
/**
|
|
16
|
+
* Register a named global scope for a model class
|
|
17
|
+
*/
|
|
18
|
+
static register(modelName: string, scopeName: string, scope: GlobalScope): void;
|
|
19
|
+
/**
|
|
20
|
+
* Retrieve all global scopes for a model class
|
|
21
|
+
*/
|
|
22
|
+
static getScopes(modelName: string): Map<string, GlobalScope>;
|
|
23
|
+
/**
|
|
24
|
+
* Remove a specific named scope from a model
|
|
25
|
+
*/
|
|
26
|
+
static remove(modelName: string, scopeName: string): void;
|
|
27
|
+
/**
|
|
28
|
+
* Apply all registered global scopes to a query builder
|
|
29
|
+
*/
|
|
30
|
+
static applyAll(modelName: string, builder: any, model: any): void;
|
|
31
|
+
/**
|
|
32
|
+
* Clear all scopes (useful in tests)
|
|
33
|
+
*/
|
|
34
|
+
static flush(modelName?: string): void;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* A functional scope — can be registered inline without a class
|
|
38
|
+
*/
|
|
39
|
+
export declare class CallbackGlobalScope implements GlobalScope {
|
|
40
|
+
private callback;
|
|
41
|
+
constructor(callback: (builder: any, model: any) => void);
|
|
42
|
+
apply(builder: any, model: any): void;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=GlobalScope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalScope.d.ts","sourceRoot":"","sources":["../../src/Model/GlobalScope.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;CACzC;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAoD;IAEzE;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI;IAO/E;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAI7D;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAIzD;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAOlE;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;CAOzC;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IACnD,OAAO,CAAC,QAAQ,CAAqC;gBAEzC,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI;IAIxD,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;CAGxC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CallbackGlobalScope = exports.GlobalScopeRegistry = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Registry for global scopes on model classes
|
|
6
|
+
*/
|
|
7
|
+
class GlobalScopeRegistry {
|
|
8
|
+
/**
|
|
9
|
+
* Register a named global scope for a model class
|
|
10
|
+
*/
|
|
11
|
+
static register(modelName, scopeName, scope) {
|
|
12
|
+
if (!this.scopes.has(modelName)) {
|
|
13
|
+
this.scopes.set(modelName, new Map());
|
|
14
|
+
}
|
|
15
|
+
this.scopes.get(modelName).set(scopeName, scope);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Retrieve all global scopes for a model class
|
|
19
|
+
*/
|
|
20
|
+
static getScopes(modelName) {
|
|
21
|
+
return this.scopes.get(modelName) ?? new Map();
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Remove a specific named scope from a model
|
|
25
|
+
*/
|
|
26
|
+
static remove(modelName, scopeName) {
|
|
27
|
+
this.scopes.get(modelName)?.delete(scopeName);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Apply all registered global scopes to a query builder
|
|
31
|
+
*/
|
|
32
|
+
static applyAll(modelName, builder, model) {
|
|
33
|
+
const scopes = this.getScopes(modelName);
|
|
34
|
+
for (const scope of scopes.values()) {
|
|
35
|
+
scope.apply(builder, model);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Clear all scopes (useful in tests)
|
|
40
|
+
*/
|
|
41
|
+
static flush(modelName) {
|
|
42
|
+
if (modelName) {
|
|
43
|
+
this.scopes.delete(modelName);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.scopes.clear();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.GlobalScopeRegistry = GlobalScopeRegistry;
|
|
51
|
+
GlobalScopeRegistry.scopes = new Map();
|
|
52
|
+
/**
|
|
53
|
+
* A functional scope — can be registered inline without a class
|
|
54
|
+
*/
|
|
55
|
+
class CallbackGlobalScope {
|
|
56
|
+
constructor(callback) {
|
|
57
|
+
this.callback = callback;
|
|
58
|
+
}
|
|
59
|
+
apply(builder, model) {
|
|
60
|
+
this.callback(builder, model);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.CallbackGlobalScope = CallbackGlobalScope;
|
|
64
|
+
//# sourceMappingURL=GlobalScope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalScope.js","sourceRoot":"","sources":["../../src/Model/GlobalScope.ts"],"names":[],"mappings":";;;AAUA;;GAEG;AACH,MAAa,mBAAmB;IAG5B;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,SAAiB,EAAE,SAAiB,EAAE,KAAkB;QACpE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAiB;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,SAAiB,EAAE,SAAiB;QAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,SAAiB,EAAE,OAAY,EAAE,KAAU;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACzC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YAClC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,SAAkB;QAC3B,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;;AA9CL,kDA+CC;AA9CkB,0BAAM,GAA0C,IAAI,GAAG,EAAE,CAAC;AAgD7E;;GAEG;AACH,MAAa,mBAAmB;IAG5B,YAAY,QAA4C;QACpD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAY,EAAE,KAAU;QAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;CACJ;AAVD,kDAUC"}
|