@zakodium/adonis-mongodb 0.18.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/adonis-typings/container.d.ts +5 -0
- package/lib/adonis-typings/database.d.ts +3 -1
- package/lib/adonis-typings/decorators.d.ts +1 -0
- package/lib/adonis-typings/transaction.d.ts +40 -0
- package/lib/adonis-typings/transaction.js +2 -0
- package/lib/commands/MongodbListMigrations.d.ts +1 -0
- package/lib/commands/MongodbListMigrations.js +6 -6
- package/lib/commands/MongodbMakeMigration.js +8 -6
- package/lib/commands/MongodbMigrate.d.ts +1 -0
- package/lib/commands/MongodbMigrate.js +6 -6
- package/lib/commands/util/MigrationCommand.d.ts +2 -0
- package/lib/commands/util/MigrationCommand.js +7 -6
- package/lib/commands/util/transformMigrations.js +1 -1
- package/lib/providers/MongodbProvider.d.ts +11 -0
- package/lib/providers/MongodbProvider.js +12 -1
- package/lib/src/Auth/MongodbModelAuthProvider.d.ts +3 -0
- package/lib/src/Auth/MongodbModelAuthProvider.js +11 -4
- package/lib/src/Database/Connection.d.ts +3 -1
- package/lib/src/Database/Connection.js +34 -9
- package/lib/src/Database/ConnectionManager.d.ts +1 -0
- package/lib/src/Database/ConnectionManager.js +3 -2
- package/lib/src/Database/Database.d.ts +1 -0
- package/lib/src/Database/Database.js +5 -1
- package/lib/src/Database/TransactionEventEmitter.d.ts +9 -0
- package/lib/src/Database/TransactionEventEmitter.js +8 -0
- package/lib/src/Migration.d.ts +1 -0
- package/lib/src/Migration.js +5 -2
- package/lib/src/Model/Model.d.ts +4 -0
- package/lib/src/Model/Model.js +32 -15
- package/lib/src/Model/proxyHandler.js +1 -1
- package/lib/src/Odm/decorators.d.ts +3 -0
- package/package.json +1 -1
- package/src/Database/Connection.ts +46 -10
- package/src/Database/TransactionEventEmitter.ts +10 -0
- package/src/Model/Model.ts +2 -6
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/// <reference path="database.d.ts" />
|
|
2
|
+
/// <reference path="decorators.d.ts" />
|
|
3
|
+
/// <reference path="objectid.d.ts" />
|
|
4
|
+
/// <reference path="odm.d.ts" />
|
|
5
|
+
/// <reference path="migration.d.ts" />
|
|
1
6
|
declare module '@ioc:Adonis/Core/Application' {
|
|
2
7
|
import { DatabaseContract } from '@ioc:Zakodium/Mongodb/Database';
|
|
3
8
|
import Migration from '@ioc:Zakodium/Mongodb/Migration';
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
/// <reference path="transaction.d.ts" />
|
|
1
2
|
/// <reference types="node" />
|
|
2
3
|
declare module '@ioc:Zakodium/Mongodb/Database' {
|
|
3
4
|
import { EventEmitter } from 'node:events';
|
|
4
5
|
import { TransactionOptions, MongoClientOptions, Collection, Db, ClientSession, MongoClient, Document } from 'mongodb';
|
|
6
|
+
import { TransactionEventEmitter } from '@ioc:Zakodium/Mongodb/Database/Transaction';
|
|
5
7
|
/**
|
|
6
8
|
* Shape of the configuration in `config/mongodb.ts`.
|
|
7
9
|
*/
|
|
@@ -117,7 +119,7 @@ declare module '@ioc:Zakodium/Mongodb/Database' {
|
|
|
117
119
|
on(event: 'disconnect:error', callback: (error: Error, connection: ConnectionContract) => void): this;
|
|
118
120
|
database(): Promise<Db>;
|
|
119
121
|
collection<TSchema extends Document>(collectionName: string): Promise<Collection<TSchema>>;
|
|
120
|
-
transaction<TResult>(handler: (client: ClientSession, db: Db) => Promise<TResult>, options?: TransactionOptions): Promise<TResult>;
|
|
122
|
+
transaction<TResult>(handler: (client: ClientSession, db: Db, tx: TransactionEventEmitter) => Promise<TResult>, options?: TransactionOptions): Promise<TResult>;
|
|
121
123
|
}
|
|
122
124
|
const Database: DatabaseContract;
|
|
123
125
|
export default Database;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
declare module '@ioc:Zakodium/Mongodb/Database/Transaction' {
|
|
3
|
+
import { EventEmitter } from 'node:events';
|
|
4
|
+
import { ClientSession, Db } from 'mongodb';
|
|
5
|
+
interface TransactionEvents {
|
|
6
|
+
/**
|
|
7
|
+
* The transaction commits successfully.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* Consider you have a collection of items storing metadata of file is filesystem.
|
|
11
|
+
* Consider when you delete an item from this collection, you must delete associated file.
|
|
12
|
+
*
|
|
13
|
+
* ```ts
|
|
14
|
+
* const item = await connection.transaction((session, db, tx) => {
|
|
15
|
+
* const item = await db.collection('test').findOneAndDelete({ _id }, { session });
|
|
16
|
+
*
|
|
17
|
+
* tx.on('commit', () => {
|
|
18
|
+
* Drive.delete(deletedItem.file.path);
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* // some other logic that could fail
|
|
22
|
+
* // or await session.abortTransaction()
|
|
23
|
+
* // commit will not emit in this case
|
|
24
|
+
*
|
|
25
|
+
* return item;
|
|
26
|
+
* })
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
commit: [session: ClientSession, db: Db];
|
|
30
|
+
/**
|
|
31
|
+
* The transaction aborted (optional error).
|
|
32
|
+
* Two cases of abortion are possible:
|
|
33
|
+
* - if from `session.abortTransaction()`, no error
|
|
34
|
+
* - if from a throw, error is set
|
|
35
|
+
*/
|
|
36
|
+
abort: [session: ClientSession, db: Db, error?: Error];
|
|
37
|
+
}
|
|
38
|
+
class TransactionEventEmitter extends EventEmitter<TransactionEvents> {
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -16,6 +16,11 @@ const standalone_1 = require("@adonisjs/core/build/standalone");
|
|
|
16
16
|
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
17
17
|
const MigrationCommand_1 = __importDefault(require("./util/MigrationCommand"));
|
|
18
18
|
class MongodbListMigrations extends MigrationCommand_1.default {
|
|
19
|
+
static commandName = 'mongodb:migration:status';
|
|
20
|
+
static description = 'Show pending migrations';
|
|
21
|
+
static settings = {
|
|
22
|
+
loadApp: true,
|
|
23
|
+
};
|
|
19
24
|
async run(db) {
|
|
20
25
|
try {
|
|
21
26
|
const connection = await this.getConnection(db);
|
|
@@ -50,11 +55,6 @@ class MongodbListMigrations extends MigrationCommand_1.default {
|
|
|
50
55
|
}
|
|
51
56
|
}
|
|
52
57
|
}
|
|
53
|
-
MongodbListMigrations.commandName = 'mongodb:migration:status';
|
|
54
|
-
MongodbListMigrations.description = 'Show pending migrations';
|
|
55
|
-
MongodbListMigrations.settings = {
|
|
56
|
-
loadApp: true,
|
|
57
|
-
};
|
|
58
58
|
exports.default = MongodbListMigrations;
|
|
59
59
|
__decorate([
|
|
60
60
|
(0, standalone_1.inject)(['Zakodium/Mongodb/Database']),
|
|
@@ -62,4 +62,4 @@ __decorate([
|
|
|
62
62
|
__metadata("design:paramtypes", [Object]),
|
|
63
63
|
__metadata("design:returntype", Promise)
|
|
64
64
|
], MongodbListMigrations.prototype, "run", null);
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9uZ29kYkxpc3RNaWdyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vY29tbWFuZHMvTW9uZ29kYkxpc3RNaWdyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0VBQXlEO0FBQ3pELDREQUFrQztBQUlsQywrRUFBdUQ7QUFFdkQsTUFBcUIscUJBQXNCLFNBQVEsMEJBQWdCO0lBQzFELE1BQU0sQ0FBQyxXQUFXLEdBQUcsMEJBQTBCLENBQUM7SUFDaEQsTUFBTSxDQUFDLFdBQVcsR0FBRyx5QkFBeUIsQ0FBQztJQUMvQyxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ3ZCLE9BQU8sRUFBRSxJQUFJO0tBQ2QsQ0FBQztJQUdXLEFBQU4sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFvQjtRQUNuQyxJQUFJLENBQUM7WUFDSCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0MsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFL0QsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFFekQsTUFBTSxLQUFLLEdBQUcsSUFBSSxvQkFBUSxDQUFDO2dCQUN6QixJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUM7YUFDN0MsQ0FBQyxDQUFDO1lBRUgsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUMvQixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUN6RCxDQUFDO1lBRUY7O2VBRUc7WUFDSCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztnQkFDekQsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO2dCQUVyRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyQyxLQUFLLENBQUMsSUFBSSxDQUFDO29CQUNULElBQUk7b0JBQ0osUUFBUTt3QkFDTixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO3dCQUNoQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO29CQUNqQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7b0JBQ2hDLFdBQVcsSUFBSSxFQUFFO2lCQUNsQixDQUFDLENBQUM7WUFDTCxDQUFDO1lBRUQsc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDaEMsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDOztBQS9DSCx3Q0FnREM7QUF4Q2M7SUFEWixJQUFBLG1CQUFNLEVBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDOzs7O2dEQXdDckMifQ==
|
|
@@ -15,6 +15,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
const node_path_1 = __importDefault(require("node:path"));
|
|
16
16
|
const standalone_1 = require("@adonisjs/core/build/standalone");
|
|
17
17
|
class MongodbMakeMigration extends standalone_1.BaseCommand {
|
|
18
|
+
static commandName = 'mongodb:make:migration';
|
|
19
|
+
static description = 'Make a new migration file';
|
|
20
|
+
static settings = {
|
|
21
|
+
loadApp: true,
|
|
22
|
+
};
|
|
23
|
+
name;
|
|
24
|
+
connection;
|
|
18
25
|
async run() {
|
|
19
26
|
if (this.name.includes('/')) {
|
|
20
27
|
this.logger.error('name argument should not contain any slash');
|
|
@@ -34,11 +41,6 @@ class MongodbMakeMigration extends standalone_1.BaseCommand {
|
|
|
34
41
|
await this.generator.run();
|
|
35
42
|
}
|
|
36
43
|
}
|
|
37
|
-
MongodbMakeMigration.commandName = 'mongodb:make:migration';
|
|
38
|
-
MongodbMakeMigration.description = 'Make a new migration file';
|
|
39
|
-
MongodbMakeMigration.settings = {
|
|
40
|
-
loadApp: true,
|
|
41
|
-
};
|
|
42
44
|
exports.default = MongodbMakeMigration;
|
|
43
45
|
__decorate([
|
|
44
46
|
standalone_1.args.string({ description: 'Name of the migration file' }),
|
|
@@ -48,4 +50,4 @@ __decorate([
|
|
|
48
50
|
standalone_1.flags.string({ description: 'Database connection to use for the migration' }),
|
|
49
51
|
__metadata("design:type", String)
|
|
50
52
|
], MongodbMakeMigration.prototype, "connection", void 0);
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9uZ29kYk1ha2VNaWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9jb21tYW5kcy9Nb25nb2RiTWFrZU1pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLDBEQUE2QjtBQUU3QixnRUFBMkU7QUFFM0UsTUFBcUIsb0JBQXFCLFNBQVEsd0JBQVc7SUFDcEQsTUFBTSxDQUFDLFdBQVcsR0FBRyx3QkFBd0IsQ0FBQztJQUM5QyxNQUFNLENBQUMsV0FBVyxHQUFHLDJCQUEyQixDQUFDO0lBQ2pELE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDdkIsT0FBTyxFQUFFLElBQUk7S0FDZCxDQUFDO0lBR0ssSUFBSSxDQUFTO0lBR2IsVUFBVSxDQUFTO0lBRW5CLEtBQUssQ0FBQyxHQUFHO1FBQ2QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7WUFDaEUsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7WUFDckIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQztRQUVwQyxNQUFNLElBQUksR0FBRyxtQkFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsK0JBQStCLENBQUMsQ0FBQztRQUVuRSxJQUFJLENBQUMsU0FBUzthQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7YUFDeEUsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNWLGNBQWMsQ0FBQyxNQUFNLENBQUM7YUFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO2FBQ2pDLEtBQUssQ0FBQztZQUNMLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQ3hELENBQUMsQ0FDRixXQUFXO1NBQ2IsQ0FBQyxDQUFDO1FBQ0wsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7O0FBbkNILHVDQW9DQztBQTVCUTtJQUROLGlCQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixFQUFFLENBQUM7O2tEQUN2QztBQUdiO0lBRE4sa0JBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsOENBQThDLEVBQUUsQ0FBQzs7d0RBQ3BEIn0=
|
|
@@ -36,6 +36,11 @@ const standalone_1 = require("@adonisjs/core/build/standalone");
|
|
|
36
36
|
const mongodb_1 = require("mongodb");
|
|
37
37
|
const MigrationCommand_1 = __importStar(require("./util/MigrationCommand"));
|
|
38
38
|
class MongodbMigrate extends MigrationCommand_1.default {
|
|
39
|
+
static commandName = 'mongodb:migration:run';
|
|
40
|
+
static description = 'Execute pending migrations';
|
|
41
|
+
static settings = {
|
|
42
|
+
loadApp: true,
|
|
43
|
+
};
|
|
39
44
|
async _executeMigration(db) {
|
|
40
45
|
const connection = await this.getConnection(db);
|
|
41
46
|
const migrations = await this.getMigrations(connection.config);
|
|
@@ -146,11 +151,6 @@ class MongodbMigrate extends MigrationCommand_1.default {
|
|
|
146
151
|
}
|
|
147
152
|
}
|
|
148
153
|
}
|
|
149
|
-
MongodbMigrate.commandName = 'mongodb:migration:run';
|
|
150
|
-
MongodbMigrate.description = 'Execute pending migrations';
|
|
151
|
-
MongodbMigrate.settings = {
|
|
152
|
-
loadApp: true,
|
|
153
|
-
};
|
|
154
154
|
exports.default = MongodbMigrate;
|
|
155
155
|
__decorate([
|
|
156
156
|
(0, standalone_1.inject)(['Zakodium/Mongodb/Database']),
|
|
@@ -158,4 +158,4 @@ __decorate([
|
|
|
158
158
|
__metadata("design:paramtypes", [Object]),
|
|
159
159
|
__metadata("design:returntype", Promise)
|
|
160
160
|
], MongodbMigrate.prototype, "run", null);
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9uZ29kYk1pZ3JhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9jb21tYW5kcy9Nb25nb2RiTWlncmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0VBQXlEO0FBQ3pELHFDQUFtQztBQUtuQyw0RUFHaUM7QUFjakMsTUFBcUIsY0FBZSxTQUFRLDBCQUFnQjtJQUNuRCxNQUFNLENBQUMsV0FBVyxHQUFHLHVCQUF1QixDQUFDO0lBQzdDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsNEJBQTRCLENBQUM7SUFDbEQsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUN2QixPQUFPLEVBQUUsSUFBSTtLQUNkLENBQUM7SUFFTSxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBb0I7UUFDbEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0QsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLFVBQVUsQ0FBQyxVQUFVLENBQ25ELDhDQUEyQixDQUM1QixDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQUcsTUFBTSxVQUFVLENBQUMsVUFBVSxDQUMvQywwQ0FBdUIsQ0FDeEIsQ0FBQztRQUVGLE1BQU0sSUFBSSxHQUFHLE1BQU0saUJBQWlCLENBQUMsU0FBUyxDQUM1QztZQUNFLEdBQUcsRUFBRSxnQkFBZ0I7U0FDdEIsRUFDRDtZQUNFLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7U0FDeEIsRUFDRDtZQUNFLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FDRixDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLENBQUMsRUFBRSxDQUFDO1lB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
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/// <reference path="../../adonis-typings/database.d.ts" />
|
|
2
|
+
/// <reference path="../../adonis-typings/migration.d.ts" />
|
|
1
3
|
import { BaseCommand } from '@adonisjs/core/build/standalone';
|
|
2
4
|
import { Logger } from '@poppinss/cliui/build/src/Logger';
|
|
3
5
|
import type { ConnectionContract, DatabaseContract, MongodbConnectionConfig } from '@ioc:Zakodium/Mongodb/Database';
|
|
@@ -44,6 +44,12 @@ const folder = 'mongodb/migrations';
|
|
|
44
44
|
exports.migrationCollectionName = '__adonis_mongodb';
|
|
45
45
|
exports.migrationLockCollectionName = '__adonis_mongodb_lock';
|
|
46
46
|
class MigrationCommand extends standalone_1.BaseCommand {
|
|
47
|
+
static settings = {
|
|
48
|
+
loadApp: true,
|
|
49
|
+
};
|
|
50
|
+
static commandName = 'commandName';
|
|
51
|
+
static description = 'description';
|
|
52
|
+
connection;
|
|
47
53
|
async getConnection(db) {
|
|
48
54
|
if (this.connection && !db.manager.has(this.connection)) {
|
|
49
55
|
this.logger.error(`No MongoDB connection registered with name "${this.connection}"`);
|
|
@@ -84,14 +90,9 @@ class MigrationCommand extends standalone_1.BaseCommand {
|
|
|
84
90
|
return { Migration, description };
|
|
85
91
|
}
|
|
86
92
|
}
|
|
87
|
-
MigrationCommand.settings = {
|
|
88
|
-
loadApp: true,
|
|
89
|
-
};
|
|
90
|
-
MigrationCommand.commandName = 'commandName';
|
|
91
|
-
MigrationCommand.description = 'description';
|
|
92
93
|
exports.default = MigrationCommand;
|
|
93
94
|
__decorate([
|
|
94
95
|
standalone_1.flags.string({ description: 'Database connection to use for the migration' }),
|
|
95
96
|
__metadata("design:type", String)
|
|
96
97
|
], MigrationCommand.prototype, "connection", void 0);
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uQ29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbW1hbmRzL3V0aWwvTWlncmF0aW9uQ29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUEyQztBQUMzQywwREFBNkI7QUFFN0IsZ0VBQXFFO0FBVXJFLGdGQUUrQjtBQUUvQixNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQztBQUV2QixRQUFBLHVCQUF1QixHQUFHLGtCQUFrQixDQUFDO0FBQzdDLFFBQUEsMkJBQTJCLEdBQUcsdUJBQXVCLENBQUM7QUFVbkUsTUFBOEIsZ0JBQWlCLFNBQVEsd0JBQVc7SUFDekQsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUN2QixPQUFPLEVBQUUsSUFBSTtLQUNkLENBQUM7SUFFSyxNQUFNLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQztJQUNuQyxNQUFNLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQztJQUduQyxVQUFVLENBQVM7SUFFaEIsS0FBSyxDQUFDLGFBQWEsQ0FDM0IsRUFBb0I7UUFFcEIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDeEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsK0NBQStDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FDbEUsQ0FBQztZQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFUyxLQUFLLENBQUMsYUFBYSxDQUMzQixNQUErQjtRQUUvQixNQUFNLE9BQU8sR0FDWCxNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDL0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1lBQ25CLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWYsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ3pDLE9BQU87YUFDSixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLG1CQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQzVELEdBQUcsQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDO2dCQUNILE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBQSxrQkFBTyxFQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLEtBQUs7cUJBQ1QsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ2YsT0FBTztvQkFDTCx3REFBd0Q7b0JBQ3hELGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUMxRCxDQUFDO2dCQUNKLENBQUMsQ0FBQztxQkFDRCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLG1CQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3BELENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUVGLE9BQU8sSUFBQSw2QkFBbUIsRUFBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVTLEtBQUssQ0FBQyxlQUFlLENBQzdCLElBQVk7UUFFWixNQUFNLE1BQU0sR0FBb0IseUJBQWEsSUFBSSx1Q0FBQyxDQUFDO1FBQ25ELE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUNuRCxJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sU0FBUyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ2xELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLElBQUksOEJBQThCLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBQ0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDOztBQWhFSCxtQ0FpRUM7QUF4RFE7SUFETixrQkFBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSw4Q0FBOEMsRUFBRSxDQUFDOztvREFDcEQifQ==
|
|
@@ -41,4 +41,4 @@ function transformMigrations(rawMigrations, logger) {
|
|
|
41
41
|
return migrations;
|
|
42
42
|
}
|
|
43
43
|
exports.default = transformMigrations;
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtTWlncmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbW1hbmRzL3V0aWwvdHJhbnNmb3JtTWlncmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBEQUE2QjtBQUk3QixNQUFNLGNBQWMsR0FBRyx3QkFBd0IsQ0FBQztBQU9oRCxTQUF3QixtQkFBbUIsQ0FDekMsYUFBeUIsRUFDekIsTUFBZTtJQUVmLGdDQUFnQztJQUNoQyxNQUFNLFVBQVUsR0FBMkIsYUFBYTtTQUNyRCxJQUFJLEVBQUU7U0FDTixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDYixtQkFBSTtTQUNELFFBQVEsQ0FBQyxDQUFDLEVBQUUsbUJBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUIsYUFBYSxDQUFDLG1CQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxtQkFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3BEO1NBQ0EsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksRUFBRSxtQkFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsbUJBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0QsSUFBSSxFQUFFLGFBQWE7S0FDcEIsQ0FBQyxDQUFDLENBQUM7SUFFTiw2QkFBNkI7SUFDN0IsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLEtBQUssTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUN4QyxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ25ELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0MsVUFBVSxHQUFHLElBQUksQ0FBQztZQUNsQixJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLE1BQU0sQ0FBQyxLQUFLLENBQ1YsMkJBQTJCLElBQUksb0NBQW9DLENBQ3BFLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCx3Q0FBd0M7SUFDeEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQ3hCLFVBQVUsQ0FBQyxNQUFNLENBQ2YsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQ2xCLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUN4RSxDQUNGLENBQUM7SUFDRixJQUFJLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FDYix5Q0FBeUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQzthQUNyRCxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUM7YUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ2hCLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQW5ERCxzQ0FtREMifQ==
|
|
@@ -1,10 +1,21 @@
|
|
|
1
|
+
/// <reference path="../adonis-typings/container.d.ts" />
|
|
1
2
|
/// <reference types="@adonisjs/application/build/adonis-typings/application" />
|
|
3
|
+
/// <reference types="@adonisjs/application/build/adonis-typings/application" />
|
|
4
|
+
/// <reference types="@adonisjs/drive/build/adonis-typings/container" />
|
|
5
|
+
/// <reference types="@adonisjs/http-server/build/adonis-typings/container" />
|
|
6
|
+
/// <reference types="@adonisjs/auth/build/adonis-typings/container" />
|
|
7
|
+
/// <reference types="@adonisjs/core/build/adonis-typings/container" />
|
|
8
|
+
/// <reference types="@adonisjs/events/build/adonis-typings/container" />
|
|
9
|
+
/// <reference types="@adonisjs/hash/build/adonis-typings/container" />
|
|
10
|
+
/// <reference types="@adonisjs/encryption/build/adonis-typings/container" />
|
|
11
|
+
/// <reference types="@adonisjs/validator/build/adonis-typings/container" />
|
|
2
12
|
import { ApplicationContract } from '@ioc:Adonis/Core/Application';
|
|
3
13
|
export default class MongodbProvider {
|
|
4
14
|
protected app: ApplicationContract;
|
|
5
15
|
constructor(app: ApplicationContract);
|
|
6
16
|
private registerOdm;
|
|
7
17
|
private registerDatabase;
|
|
18
|
+
private registerTransactionEvent;
|
|
8
19
|
private registerMigration;
|
|
9
20
|
register(): void;
|
|
10
21
|
boot(): void;
|
|
@@ -6,10 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const mongodb_1 = require("mongodb");
|
|
7
7
|
const MongodbModelAuthProvider_1 = require("../src/Auth/MongodbModelAuthProvider");
|
|
8
8
|
const Database_1 = require("../src/Database/Database");
|
|
9
|
+
const TransactionEventEmitter_1 = require("../src/Database/TransactionEventEmitter");
|
|
9
10
|
const Migration_1 = __importDefault(require("../src/Migration"));
|
|
10
11
|
const Model_1 = require("../src/Model/Model");
|
|
11
12
|
const decorators_1 = require("../src/Odm/decorators");
|
|
12
13
|
class MongodbProvider {
|
|
14
|
+
app;
|
|
13
15
|
constructor(app) {
|
|
14
16
|
this.app = app;
|
|
15
17
|
}
|
|
@@ -22,6 +24,7 @@ class MongodbProvider {
|
|
|
22
24
|
BaseModel: Model_1.BaseModel,
|
|
23
25
|
BaseAutoIncrementModel: Model_1.BaseAutoIncrementModel,
|
|
24
26
|
field: decorators_1.field,
|
|
27
|
+
computed: decorators_1.computed,
|
|
25
28
|
};
|
|
26
29
|
});
|
|
27
30
|
}
|
|
@@ -31,6 +34,13 @@ class MongodbProvider {
|
|
|
31
34
|
return new Database_1.Database(config.get('mongodb', {}), logger);
|
|
32
35
|
});
|
|
33
36
|
}
|
|
37
|
+
registerTransactionEvent() {
|
|
38
|
+
this.app.container.singleton('Zakodium/Mongodb/Database/Transaction', () => {
|
|
39
|
+
return {
|
|
40
|
+
TransactionEventEmitter: TransactionEventEmitter_1.TransactionEventEmitter,
|
|
41
|
+
};
|
|
42
|
+
});
|
|
43
|
+
}
|
|
34
44
|
registerMigration() {
|
|
35
45
|
this.app.container.singleton('Zakodium/Mongodb/Migration', () => {
|
|
36
46
|
return (0, Migration_1.default)(this.app.container.resolveBinding('Zakodium/Mongodb/Database'));
|
|
@@ -38,6 +48,7 @@ class MongodbProvider {
|
|
|
38
48
|
}
|
|
39
49
|
register() {
|
|
40
50
|
this.registerOdm();
|
|
51
|
+
this.registerTransactionEvent();
|
|
41
52
|
this.registerDatabase();
|
|
42
53
|
this.registerMigration();
|
|
43
54
|
}
|
|
@@ -53,4 +64,4 @@ class MongodbProvider {
|
|
|
53
64
|
}
|
|
54
65
|
}
|
|
55
66
|
exports.default = MongodbProvider;
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9uZ29kYlByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vcHJvdmlkZXJzL01vbmdvZGJQcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFDQUFtQztBQVFuQyxtRkFBbUY7QUFDbkYsdURBQW9EO0FBQ3BELHFGQUFrRjtBQUNsRixpRUFBK0M7QUFDL0MsOENBQXVFO0FBQ3ZFLHNEQUF3RDtBQUV4RCxNQUFxQixlQUFlO0lBQ0w7SUFBN0IsWUFBNkIsR0FBd0I7UUFBeEIsUUFBRyxHQUFILEdBQUcsQ0FBcUI7SUFBRyxDQUFDO0lBRWpELFdBQVc7UUFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtZQUN4RCxpQkFBUyxDQUFDLFlBQVksQ0FDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLENBQy9ELENBQUM7WUFDRiw4QkFBc0IsQ0FBQyxZQUFZLENBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxDQUMvRCxDQUFDO1lBRUYsT0FBTztnQkFDTCxRQUFRLEVBQVIsa0JBQVE7Z0JBQ1IsU0FBUyxFQUFFLGlCQUE0QztnQkFDdkQsc0JBQXNCLEVBQ3BCLDhCQUFzRTtnQkFDeEUsS0FBSyxFQUFMLGtCQUFLO2dCQUNMLFFBQVEsRUFBUixxQkFBUTthQUNULENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLDJCQUEyQixFQUFFLEdBQUcsRUFBRTtZQUM3RCxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDcEMsT0FBTyxJQUFJLG1CQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sd0JBQXdCO1FBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FDMUIsdUNBQXVDLEVBQ3ZDLEdBQUcsRUFBRTtZQUNILE9BQU87Z0JBQ0wsdUJBQXVCLEVBQXZCLGlEQUF1QjthQUN4QixDQUFDO1FBQ0osQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUU7WUFDOUQsT0FBTyxJQUFBLG1CQUFlLEVBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxDQUMvRCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztZQUN4RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNyRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxlQUFlLEVBQUUsc0RBQTJCLENBQUMsQ0FBQztRQUN4RSxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUFRO1FBQ25CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FDaEQsMkJBQTJCLENBQzVCLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBckVELGtDQXFFQyJ9
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/// <reference path="../../adonis-typings/decorators.d.ts" />
|
|
2
|
+
/// <reference path="../../adonis-typings/objectid.d.ts" />
|
|
3
|
+
/// <reference path="../../adonis-typings/odm.d.ts" />
|
|
1
4
|
/// <reference types="@adonisjs/auth" />
|
|
2
5
|
/// <reference types="@adonisjs/hash/build/adonis-typings" />
|
|
3
6
|
import { AuthManagerContract, ProviderUserContract, UserProviderContract } from '@ioc:Adonis/Addons/Auth';
|
|
@@ -4,6 +4,10 @@ exports.getMongodbModelAuthProvider = void 0;
|
|
|
4
4
|
const utils_1 = require("@poppinss/utils");
|
|
5
5
|
const mongodb_1 = require("mongodb");
|
|
6
6
|
class MongodbModelAuthProviderUser {
|
|
7
|
+
user;
|
|
8
|
+
identifierKey;
|
|
9
|
+
identifierKeyType;
|
|
10
|
+
hash;
|
|
7
11
|
constructor(
|
|
8
12
|
// `this.user` can be any Model, so we use `any` to avoid indexing issues later.
|
|
9
13
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -39,12 +43,15 @@ class MongodbModelAuthProviderUser {
|
|
|
39
43
|
}
|
|
40
44
|
}
|
|
41
45
|
class MongodbModelAuthUserProvider {
|
|
46
|
+
auth;
|
|
47
|
+
config;
|
|
48
|
+
uids = ['email'];
|
|
49
|
+
identifierKey = '_id';
|
|
50
|
+
identifierKeyType = 'objectid';
|
|
51
|
+
hash;
|
|
42
52
|
constructor(auth, config) {
|
|
43
53
|
this.auth = auth;
|
|
44
54
|
this.config = config;
|
|
45
|
-
this.uids = ['email'];
|
|
46
|
-
this.identifierKey = '_id';
|
|
47
|
-
this.identifierKeyType = 'objectid';
|
|
48
55
|
if (config.uids) {
|
|
49
56
|
if (config.uids.length === 0) {
|
|
50
57
|
throw new Error('config.uids must have at least one element');
|
|
@@ -94,4 +101,4 @@ function getMongodbModelAuthProvider(auth, _mapping, config) {
|
|
|
94
101
|
return new MongodbModelAuthUserProvider(auth, config);
|
|
95
102
|
}
|
|
96
103
|
exports.getMongodbModelAuthProvider = getMongodbModelAuthProvider;
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9uZ29kYk1vZGVsQXV0aFByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0F1dGgvTW9uZ29kYk1vZGVsQXV0aFByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUE4QztBQUM5QyxxQ0FBbUM7QUFjbkMsTUFBTSw0QkFBNEI7SUFNdkI7SUFDQztJQUNBO0lBQ0E7SUFOVjtJQUNFLGdGQUFnRjtJQUNoRiw4REFBOEQ7SUFDdkQsSUFBUyxFQUNSLGFBQXFCLEVBQ3JCLGlCQUFtRCxFQUNuRCxJQUF3QjtRQUh6QixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ1Isa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQztRQUNuRCxTQUFJLEdBQUosSUFBSSxDQUFvQjtJQUMvQixDQUFDO0lBRUcsS0FBSztRQUNWLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDMUMsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLGNBQWMsQ0FBQyxhQUFxQjtRQUN6QyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUNiLHlFQUF5RSxDQUMxRSxDQUFDO1FBQ0osQ0FBQztRQUVE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
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
/// <reference path="../../adonis-typings/database.d.ts" />
|
|
1
2
|
/// <reference types="@adonisjs/logger/build/adonis-typings/logger" />
|
|
2
3
|
/// <reference types="node" />
|
|
3
4
|
import { EventEmitter } from 'node:events';
|
|
4
5
|
import { MongoClient, Db, Collection, ClientSession, Document, TransactionOptions } from 'mongodb';
|
|
5
6
|
import { LoggerContract } from '@ioc:Adonis/Core/Logger';
|
|
6
7
|
import type { MongodbConnectionConfig, ConnectionContract } from '@ioc:Zakodium/Mongodb/Database';
|
|
8
|
+
import { TransactionEventEmitter } from './TransactionEventEmitter';
|
|
7
9
|
export declare interface Connection {
|
|
8
10
|
on(event: 'connect', callback: (connection: ConnectionContract) => void): this;
|
|
9
11
|
on(event: 'error', callback: (error: Error, connection: ConnectionContract) => void): this;
|
|
@@ -25,5 +27,5 @@ export declare class Connection extends EventEmitter implements ConnectionContra
|
|
|
25
27
|
disconnect(): Promise<void>;
|
|
26
28
|
database(): Promise<Db>;
|
|
27
29
|
collection<TSchema extends Document>(collectionName: string): Promise<Collection<TSchema>>;
|
|
28
|
-
transaction<TResult>(handler: (session: ClientSession, db: Db) => Promise<TResult>, options?: TransactionOptions): Promise<TResult>;
|
|
30
|
+
transaction<TResult>(handler: (session: ClientSession, db: Db, transactionEventEmitter: TransactionEventEmitter) => Promise<TResult>, options?: TransactionOptions): Promise<TResult>;
|
|
29
31
|
}
|
|
@@ -4,13 +4,21 @@ exports.Connection = void 0;
|
|
|
4
4
|
const node_events_1 = require("node:events");
|
|
5
5
|
const utils_1 = require("@poppinss/utils");
|
|
6
6
|
const mongodb_1 = require("mongodb");
|
|
7
|
+
const TransactionEventEmitter_1 = require("./TransactionEventEmitter");
|
|
7
8
|
var ConnectionStatus;
|
|
8
9
|
(function (ConnectionStatus) {
|
|
9
10
|
ConnectionStatus["CONNECTED"] = "CONNECTED";
|
|
10
11
|
ConnectionStatus["DISCONNECTED"] = "DISCONNECTED";
|
|
11
12
|
})(ConnectionStatus || (ConnectionStatus = {}));
|
|
12
|
-
// eslint-disable-next-line
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
|
|
13
14
|
class Connection extends node_events_1.EventEmitter {
|
|
15
|
+
client;
|
|
16
|
+
name;
|
|
17
|
+
ready;
|
|
18
|
+
config;
|
|
19
|
+
logger;
|
|
20
|
+
status;
|
|
21
|
+
connectPromise;
|
|
14
22
|
constructor(name, config, logger) {
|
|
15
23
|
super();
|
|
16
24
|
this.name = name;
|
|
@@ -71,15 +79,32 @@ class Connection extends node_events_1.EventEmitter {
|
|
|
71
79
|
}
|
|
72
80
|
async transaction(handler, options) {
|
|
73
81
|
const db = await this._ensureDb();
|
|
74
|
-
let
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
82
|
+
let session;
|
|
83
|
+
const emitter = new TransactionEventEmitter_1.TransactionEventEmitter();
|
|
84
|
+
return this.client
|
|
85
|
+
.withSession((_session) => _session.withTransaction(async (_session) => {
|
|
86
|
+
session = _session;
|
|
87
|
+
return handler(session, db, emitter);
|
|
88
|
+
}, options))
|
|
89
|
+
.then((result) => {
|
|
90
|
+
// https://github.com/mongodb/node-mongodb-native/blob/v6.7.0/src/transactions.ts#L147
|
|
91
|
+
// https://github.com/mongodb/node-mongodb-native/blob/v6.7.0/src/transactions.ts#L54
|
|
92
|
+
// session.transaction.isCommitted is not a sufficient indicator,
|
|
93
|
+
// because it's true if transaction commits or aborts.
|
|
94
|
+
const isCommitted = session.transaction.isCommitted;
|
|
95
|
+
const isAborted =
|
|
96
|
+
// https://github.com/mongodb/node-mongodb-native/blob/v6.7.0/src/transactions.ts#L11
|
|
97
|
+
Reflect.get(session.transaction, 'state') === 'TRANSACTION_ABORTED';
|
|
98
|
+
emitter.emit(isCommitted && isAborted ? 'abort' : 'commit', session, db);
|
|
99
|
+
return result;
|
|
100
|
+
// If an error occurs in this scope,
|
|
101
|
+
// it will not be caught by this then's error handler, but by the caller's catch.
|
|
102
|
+
// This is what we want, as an error in this scope should not trigger the abort event.
|
|
103
|
+
}, (error) => {
|
|
104
|
+
emitter.emit('abort', session, db, error);
|
|
105
|
+
throw error;
|
|
79
106
|
});
|
|
80
|
-
// @ts-expect-error The `await` ensures `result` has a value.
|
|
81
|
-
return result;
|
|
82
107
|
}
|
|
83
108
|
}
|
|
84
109
|
exports.Connection = Connection;
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29ubmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9EYXRhYmFzZS9Db25uZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUEyQztBQUUzQywyQ0FBNEM7QUFDNUMscUNBT2lCO0FBUWpCLHVFQUFvRTtBQUVwRSxJQUFLLGdCQUdKO0FBSEQsV0FBSyxnQkFBZ0I7SUFDbkIsMkNBQXVCLENBQUE7SUFDdkIsaURBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQUhJLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFHcEI7QUEwQkQsNEVBQTRFO0FBQzVFLE1BQWEsVUFBVyxTQUFRLDBCQUFZO0lBQzFCLE1BQU0sQ0FBYztJQUNwQixJQUFJLENBQVM7SUFDdEIsS0FBSyxDQUFVO0lBQ04sTUFBTSxDQUEwQjtJQUV4QyxNQUFNLENBQWlCO0lBQ3ZCLE1BQU0sQ0FBbUI7SUFDekIsY0FBYyxDQUFxQjtJQUUzQyxZQUNFLElBQVksRUFDWixNQUErQixFQUMvQixNQUFzQjtRQUV0QixLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO1FBQzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxxQkFBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQzdDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhO1NBQzdCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFTyxLQUFLLENBQUMsU0FBUztRQUNyQixLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQixJQUFJLENB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
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference path="../../adonis-typings/database.d.ts" />
|
|
1
2
|
/// <reference types="@adonisjs/logger/build/adonis-typings/logger" />
|
|
2
3
|
import { LoggerContract } from '@ioc:Adonis/Core/Logger';
|
|
3
4
|
import type { ConnectionManagerContract, ConnectionNode, MongodbConnectionConfig } from '@ioc:Zakodium/Mongodb/Database';
|
|
@@ -4,9 +4,10 @@ exports.ConnectionManager = void 0;
|
|
|
4
4
|
const utils_1 = require("@poppinss/utils");
|
|
5
5
|
const Connection_1 = require("./Connection");
|
|
6
6
|
class ConnectionManager {
|
|
7
|
+
logger;
|
|
8
|
+
connections = new Map();
|
|
7
9
|
constructor(logger) {
|
|
8
10
|
this.logger = logger;
|
|
9
|
-
this.connections = new Map();
|
|
10
11
|
}
|
|
11
12
|
validateConnection(connectionName) {
|
|
12
13
|
validateConnectionName(connectionName);
|
|
@@ -82,4 +83,4 @@ function validateConnectionName(connectionName) {
|
|
|
82
83
|
throw new TypeError('connectionName must be a non-empty string');
|
|
83
84
|
}
|
|
84
85
|
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29ubmVjdGlvbk1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvRGF0YWJhc2UvQ29ubmVjdGlvbk1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQTRDO0FBVTVDLDZDQUEwQztBQUUxQyxNQUFhLGlCQUFpQjtJQUdEO0lBRnBCLFdBQVcsR0FBNkMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUV6RSxZQUEyQixNQUFzQjtRQUF0QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtJQUFHLENBQUM7SUFFN0Msa0JBQWtCLENBQUMsY0FBc0I7UUFDL0Msc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdkMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxpQkFBUyxDQUNqQiwrQ0FBK0MsY0FBYyxHQUFHLEVBQ2hFLEdBQUcsRUFDSCx5QkFBeUIsQ0FDMUIsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRU8sYUFBYSxDQUFDLFVBQThCO1FBQ2xELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RCxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLGNBQWMsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLFVBQThCO1FBQ2hELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RCxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLGNBQWMsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRU8sYUFBYSxDQUFDLFVBQThCO1FBQ2xELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RCxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLGNBQWMsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRU0sR0FBRyxDQUFDLGNBQXNCLEVBQUUsTUFBK0I7UUFDaEUsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdkMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQ2IsMkJBQTJCLGNBQWMsa0JBQWtCLENBQzVELENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSx1QkFBVSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZFLFVBQVUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDekUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDeEUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUMxRSxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDL0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FDL0IsQ0FBQztRQUNGLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FDbEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FDL0IsQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRTtZQUNuQyxJQUFJLEVBQUUsY0FBYztZQUNwQixNQUFNO1lBQ04sVUFBVTtZQUNWLEtBQUssRUFBRSxZQUFZO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPLENBQUMsY0FBc0I7UUFDbkMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNELFVBQVUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLEdBQUcsQ0FBQyxjQUFzQjtRQUMvQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVNLEdBQUcsQ0FBQyxjQUFzQjtRQUMvQixzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxXQUFXLENBQUMsY0FBc0I7UUFDdkMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNELE9BQU8sVUFBVSxDQUFDLEtBQUssS0FBSyxNQUFNLENBQUM7SUFDckMsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLLENBQUMsY0FBc0I7UUFDdkMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNELE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQVE7UUFDbkIsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDaEQsVUFBVSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FDbkMsQ0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBbEdELDhDQWtHQztBQUVELFNBQVMsc0JBQXNCLENBQUMsY0FBc0I7SUFDcEQsSUFBSSxPQUFPLGNBQWMsS0FBSyxRQUFRLElBQUksY0FBYyxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sSUFBSSxTQUFTLENBQUMsMkNBQTJDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0FBQ0gsQ0FBQyJ9
|
|
@@ -3,6 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Database = void 0;
|
|
4
4
|
const ConnectionManager_1 = require("./ConnectionManager");
|
|
5
5
|
class Database {
|
|
6
|
+
config;
|
|
7
|
+
logger;
|
|
8
|
+
manager;
|
|
9
|
+
primaryConnectionName;
|
|
6
10
|
constructor(config, logger) {
|
|
7
11
|
this.config = config;
|
|
8
12
|
this.logger = logger;
|
|
@@ -34,4 +38,4 @@ class Database {
|
|
|
34
38
|
}
|
|
35
39
|
}
|
|
36
40
|
exports.Database = Database;
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvRGF0YWJhc2UvRGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBVUEsMkRBQXdEO0FBRXhELE1BQWEsUUFBUTtJQUtUO0lBQ0E7SUFMTSxPQUFPLENBQTRCO0lBQ25DLHFCQUFxQixDQUFTO0lBRTlDLFlBQ1UsTUFBcUIsRUFDckIsTUFBc0I7UUFEdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUU5QixJQUFJLE9BQU8sTUFBTSxDQUFDLFVBQVUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMxQyxNQUFNLElBQUksU0FBUyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELElBQUksT0FBTyxNQUFNLENBQUMsV0FBVyxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzFFLE1BQU0sSUFBSSxTQUFTLENBQUMsc0NBQXNDLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDL0MsSUFBSSxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdkUsTUFBTSxJQUFJLFNBQVMsQ0FDakIsMkVBQTJFLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUN6RyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxxQ0FBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN2QyxLQUFLLE1BQU0sQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDeEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDckQsQ0FBQztJQUNILENBQUM7SUFFTSxVQUFVLENBQ2YsY0FBYyxHQUFHLElBQUksQ0FBQyxxQkFBcUI7UUFFM0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDckQsQ0FBQztJQUVNLFdBQVcsQ0FDaEIsT0FBNEQsRUFDNUQsT0FBNEI7UUFFNUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNGO0FBOUNELDRCQThDQyJ9
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { EventEmitter } from 'node:events';
|
|
3
|
+
import { ClientSession, Db } from 'mongodb';
|
|
4
|
+
export interface TransactionEvents {
|
|
5
|
+
commit: [session: ClientSession, db: Db];
|
|
6
|
+
abort: [session: ClientSession, db: Db, error?: Error];
|
|
7
|
+
}
|
|
8
|
+
export declare class TransactionEventEmitter extends EventEmitter<TransactionEvents> {
|
|
9
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TransactionEventEmitter = void 0;
|
|
4
|
+
const node_events_1 = require("node:events");
|
|
5
|
+
class TransactionEventEmitter extends node_events_1.EventEmitter {
|
|
6
|
+
}
|
|
7
|
+
exports.TransactionEventEmitter = TransactionEventEmitter;
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb25FdmVudEVtaXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvRGF0YWJhc2UvVHJhbnNhY3Rpb25FdmVudEVtaXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTJDO0FBUzNDLE1BQWEsdUJBQXdCLFNBQVEsMEJBQStCO0NBQUc7QUFBL0UsMERBQStFIn0=
|
package/lib/src/Migration.d.ts
CHANGED
package/lib/src/Migration.js
CHANGED
|
@@ -10,8 +10,11 @@ var MigrationType;
|
|
|
10
10
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
11
|
function createMigration(Database) {
|
|
12
12
|
class Migration {
|
|
13
|
+
$operations = [];
|
|
14
|
+
$connection;
|
|
15
|
+
$logger;
|
|
16
|
+
$collectionList;
|
|
13
17
|
constructor(connection, logger) {
|
|
14
|
-
this.$operations = [];
|
|
15
18
|
this.$connection = Database.connection(connection);
|
|
16
19
|
this.$logger = logger;
|
|
17
20
|
}
|
|
@@ -121,4 +124,4 @@ function isDropIndex(op) {
|
|
|
121
124
|
function isCustom(op) {
|
|
122
125
|
return op.type === MigrationType.Custom;
|
|
123
126
|
}
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL01pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWNBLElBQUssYUFLSjtBQUxELFdBQUssYUFBYTtJQUNoQixzREFBcUMsQ0FBQTtJQUNyQyx3Q0FBdUIsQ0FBQTtJQUN2Qiw0Q0FBMkIsQ0FBQTtJQUMzQixrQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTEksYUFBYSxLQUFiLGFBQWEsUUFLakI7QUFnQ0QsOERBQThEO0FBQzlELFNBQXdCLGVBQWUsQ0FBQyxRQUEwQjtJQUNoRSxNQUFlLFNBQVM7UUFDZCxXQUFXLEdBQXlCLEVBQUUsQ0FBQztRQUN2QyxXQUFXLENBQXFCO1FBQ2hDLE9BQU8sQ0FBUztRQUNoQixlQUFlLENBQVc7UUFFbEMsWUFBbUIsVUFBOEIsRUFBRSxNQUFjO1lBQy9ELElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN4QixDQUFDO1FBRU0saUJBQWlCLENBQUMsZUFBeUI7WUFDaEQsS0FBSyxNQUFNLGNBQWMsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7UUFDSCxDQUFDO1FBRU0sZ0JBQWdCLENBQUMsY0FBc0I7WUFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLElBQUksRUFBRSxhQUFhLENBQUMsZ0JBQWdCO2dCQUNwQyxjQUFjO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVNLFNBQVMsQ0FDZCxjQUFzQixFQUN0QixTQUFpQixFQUNqQixPQUE0QjtZQUU1QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztnQkFDcEIsSUFBSSxFQUFFLGFBQWEsQ0FBQyxTQUFTO2dCQUM3Qixj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
|
package/lib/src/Model/Model.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/// <reference path="../../adonis-typings/decorators.d.ts" />
|
|
2
|
+
/// <reference path="../../adonis-typings/objectid.d.ts" />
|
|
3
|
+
/// <reference path="../../adonis-typings/odm.d.ts" />
|
|
4
|
+
/// <reference path="../../adonis-typings/database.d.ts" />
|
|
1
5
|
import { BulkWriteOptions, ClientSession, Collection, CountDocumentsOptions, DeleteOptions, Document, ExplainVerbosityLike, Filter, FindOptions, InsertOneOptions, SortDirection } from 'mongodb';
|
|
2
6
|
import { DatabaseContract } from '@ioc:Zakodium/Mongodb/Database';
|
|
3
7
|
import { MongodbDocument, QueryContract, NoExtraProperties, ModelAttributes, ModelAdapterOptions, ModelDocumentOptions, FieldOptions, QuerySortObject, ForbiddenQueryOptions, ComputedOptions } from '@ioc:Zakodium/Mongodb/Odm';
|
package/lib/src/Model/Model.js
CHANGED
|
@@ -24,6 +24,15 @@ const forbiddenQueryOptions = [
|
|
|
24
24
|
'explain',
|
|
25
25
|
];
|
|
26
26
|
class Query {
|
|
27
|
+
filter;
|
|
28
|
+
options;
|
|
29
|
+
ModelConstructor;
|
|
30
|
+
localCustomSort = false;
|
|
31
|
+
localOptions = {
|
|
32
|
+
sort: {
|
|
33
|
+
_id: 'descending',
|
|
34
|
+
},
|
|
35
|
+
};
|
|
27
36
|
getDriverOptions() {
|
|
28
37
|
return { ...mergeDriverOptions(this.options), ...this.localOptions };
|
|
29
38
|
}
|
|
@@ -33,12 +42,6 @@ class Query {
|
|
|
33
42
|
this.filter = filter;
|
|
34
43
|
this.options = options;
|
|
35
44
|
this.ModelConstructor = ModelConstructor;
|
|
36
|
-
this.localCustomSort = false;
|
|
37
|
-
this.localOptions = {
|
|
38
|
-
sort: {
|
|
39
|
-
_id: 'descending',
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
45
|
if (options?.driverOptions) {
|
|
43
46
|
for (const key of forbiddenQueryOptions) {
|
|
44
47
|
if (key in options.driverOptions) {
|
|
@@ -151,15 +154,28 @@ function ensureSort(options) {
|
|
|
151
154
|
_id: -1,
|
|
152
155
|
};
|
|
153
156
|
}
|
|
154
|
-
function hasOwn(object, key) {
|
|
155
|
-
return Object.prototype.hasOwnProperty.call(object, key);
|
|
156
|
-
}
|
|
157
157
|
class BaseModel {
|
|
158
|
+
static connection;
|
|
159
|
+
static collectionName;
|
|
160
|
+
static booted;
|
|
161
|
+
static $fieldsDefinitions;
|
|
162
|
+
/**
|
|
163
|
+
* A set of properties marked as computed. Computed properties are included in
|
|
164
|
+
* the `toJSON` result, else they behave the same way as any other instance
|
|
165
|
+
* property.
|
|
166
|
+
*/
|
|
167
|
+
static $computedDefinitions;
|
|
168
|
+
_id;
|
|
169
|
+
createdAt;
|
|
170
|
+
updatedAt;
|
|
171
|
+
$original;
|
|
172
|
+
$attributes;
|
|
173
|
+
$isPersisted = false;
|
|
174
|
+
$isLocal = true;
|
|
175
|
+
$isDeleted = false;
|
|
176
|
+
$collection = null;
|
|
177
|
+
$options;
|
|
158
178
|
constructor(dbObj, options, alreadyExists = false) {
|
|
159
|
-
this.$isPersisted = false;
|
|
160
|
-
this.$isLocal = true;
|
|
161
|
-
this.$isDeleted = false;
|
|
162
|
-
this.$collection = null;
|
|
163
179
|
if (dbObj) {
|
|
164
180
|
this.$original = alreadyExists ? (0, lodash_1.cloneDeep)(dbObj) : {};
|
|
165
181
|
this.$attributes = dbObj;
|
|
@@ -179,6 +195,7 @@ class BaseModel {
|
|
|
179
195
|
// eslint-disable-next-line no-constructor-return
|
|
180
196
|
return new Proxy(this, proxyHandler_1.proxyHandler);
|
|
181
197
|
}
|
|
198
|
+
static $database;
|
|
182
199
|
static $setDatabase(database) {
|
|
183
200
|
this.$database = database;
|
|
184
201
|
}
|
|
@@ -220,7 +237,7 @@ class BaseModel {
|
|
|
220
237
|
* Define the property when not defined on self. This makes sure that all
|
|
221
238
|
* subclasses boot on their own.
|
|
222
239
|
*/
|
|
223
|
-
if (!hasOwn(this, 'booted')) {
|
|
240
|
+
if (!Object.hasOwn(this, 'booted')) {
|
|
224
241
|
this.booted = false;
|
|
225
242
|
}
|
|
226
243
|
/**
|
|
@@ -536,4 +553,4 @@ class BaseAutoIncrementModel extends BaseModel {
|
|
|
536
553
|
}
|
|
537
554
|
}
|
|
538
555
|
exports.BaseAutoIncrementModel = BaseAutoIncrementModel;
|
|
539
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvTW9kZWwvTW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOERBQWlDO0FBRWpDLDJDQUFrRTtBQUNsRSxtQ0FBK0Q7QUFnQi9ELDBEQUFrQztBQWdCbEMsaURBQThDO0FBRTlDLFNBQVMsa0JBQWtCLENBRXpCLE9BQStDO0lBQy9DLElBQUksQ0FBQyxPQUFPO1FBQUUsT0FBTyxFQUFzQixDQUFDO0lBQzVDLE9BQU87UUFDTCxHQUFHLE9BQU8sQ0FBQyxhQUFhO1FBQ3hCLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTTtLQUNKLENBQUM7QUFDeEIsQ0FBQztBQVFELE1BQU0scUJBQXFCLEdBQTRCO0lBQ3JELE1BQU07SUFDTixNQUFNO0lBQ04sT0FBTztJQUNQLFNBQVM7Q0FDVixDQUFDO0FBRUYsTUFBTSxLQUFLO0lBVUQsZ0JBQWdCO1FBR3RCLE9BQU8sRUFBRSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2RSxDQUFDO0lBRUQsWUFDVSxNQUF3RCxFQUN4RCxPQU9LO0lBQ2IsZ0VBQWdFO0lBQ3hELGdCQUEyQjtRQVYzQixXQUFNLEdBQU4sTUFBTSxDQUFrRDtRQUN4RCxZQUFPLEdBQVAsT0FBTyxDQU9GO1FBRUwscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFXO1FBeEI3QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFzQjtZQUN4QyxJQUFJLEVBQUU7Z0JBQ0osR0FBRyxFQUFFLFlBQVk7YUFDbEI7U0FDRixDQUFDO1FBcUJBLElBQUksT0FBTyxFQUFFLGFBQWEsRUFBRTtZQUMxQixLQUFLLE1BQU0sR0FBRyxJQUFJLHFCQUFxQixFQUFFO2dCQUN2QyxJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFO29CQUNoQyxNQUFN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
|
|
556
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvTW9kZWwvTW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOERBQWlDO0FBRWpDLDJDQUFrRTtBQUNsRSxtQ0FBK0Q7QUFnQi9ELDBEQUFrQztBQWdCbEMsaURBQThDO0FBRTlDLFNBQVMsa0JBQWtCLENBRXpCLE9BQStDO0lBQy9DLElBQUksQ0FBQyxPQUFPO1FBQUUsT0FBTyxFQUFzQixDQUFDO0lBQzVDLE9BQU87UUFDTCxHQUFHLE9BQU8sQ0FBQyxhQUFhO1FBQ3hCLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTTtLQUNKLENBQUM7QUFDeEIsQ0FBQztBQVFELE1BQU0scUJBQXFCLEdBQTRCO0lBQ3JELE1BQU07SUFDTixNQUFNO0lBQ04sT0FBTztJQUNQLFNBQVM7Q0FDVixDQUFDO0FBRUYsTUFBTSxLQUFLO0lBaUJDO0lBQ0E7SUFTQTtJQXhCRixlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLFlBQVksR0FBc0I7UUFDeEMsSUFBSSxFQUFFO1lBQ0osR0FBRyxFQUFFLFlBQVk7U0FDbEI7S0FDRixDQUFDO0lBRU0sZ0JBQWdCO1FBR3RCLE9BQU8sRUFBRSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2RSxDQUFDO0lBRUQsWUFDVSxNQUF3RCxFQUN4RCxPQU9LO0lBQ2IsZ0VBQWdFO0lBQ3hELGdCQUEyQjtRQVYzQixXQUFNLEdBQU4sTUFBTSxDQUFrRDtRQUN4RCxZQUFPLEdBQVAsT0FBTyxDQU9GO1FBRUwscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFXO1FBRW5DLElBQUksT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDO1lBQzNCLEtBQUssTUFBTSxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxHQUFHLElBQUksT0FBTyxDQUFD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
|
|
@@ -22,4 +22,4 @@ exports.proxyHandler = {
|
|
|
22
22
|
throw new Error('Getting model keys is disallowed. If you want to use object spread on the current data, do { ...model.$attributes }');
|
|
23
23
|
},
|
|
24
24
|
};
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHlIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL01vZGVsL3Byb3h5SGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHYSxRQUFBLFlBQVksR0FBc0I7SUFDN0MsR0FBRyxDQUFDLE1BQVcsRUFBRSxJQUFxQixFQUFFLFFBQWE7UUFDbkQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFdBQStCLENBQUM7UUFDckQsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLElBQWMsQ0FBQyxFQUFFLENBQUM7WUFDdkMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQy9CLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUNELEdBQUcsQ0FBQyxNQUFXLEVBQUUsSUFBcUIsRUFBRSxLQUFVO1FBQ2hELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQy9CLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELE9BQU87UUFDTCxNQUFNLElBQUksS0FBSyxDQUNiLHFIQUFxSCxDQUN0SCxDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUMifQ==
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/// <reference path="../../adonis-typings/decorators.d.ts" />
|
|
2
|
+
/// <reference path="../../adonis-typings/objectid.d.ts" />
|
|
3
|
+
/// <reference path="../../adonis-typings/odm.d.ts" />
|
|
1
4
|
import { ComputedDecorator, FieldDecorator } from '@ioc:Zakodium/Mongodb/Odm';
|
|
2
5
|
export declare const field: FieldDecorator;
|
|
3
6
|
/**
|
package/package.json
CHANGED
|
@@ -16,6 +16,8 @@ import type {
|
|
|
16
16
|
ConnectionContract,
|
|
17
17
|
} from '@ioc:Zakodium/Mongodb/Database';
|
|
18
18
|
|
|
19
|
+
import { TransactionEventEmitter } from './TransactionEventEmitter';
|
|
20
|
+
|
|
19
21
|
enum ConnectionStatus {
|
|
20
22
|
CONNECTED = 'CONNECTED',
|
|
21
23
|
DISCONNECTED = 'DISCONNECTED',
|
|
@@ -45,7 +47,7 @@ export declare interface Connection {
|
|
|
45
47
|
): this;
|
|
46
48
|
}
|
|
47
49
|
|
|
48
|
-
// eslint-disable-next-line
|
|
50
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
|
|
49
51
|
export class Connection extends EventEmitter implements ConnectionContract {
|
|
50
52
|
public readonly client: MongoClient;
|
|
51
53
|
public readonly name: string;
|
|
@@ -131,17 +133,51 @@ export class Connection extends EventEmitter implements ConnectionContract {
|
|
|
131
133
|
}
|
|
132
134
|
|
|
133
135
|
public async transaction<TResult>(
|
|
134
|
-
handler: (
|
|
136
|
+
handler: (
|
|
137
|
+
session: ClientSession,
|
|
138
|
+
db: Db,
|
|
139
|
+
transactionEventEmitter: TransactionEventEmitter,
|
|
140
|
+
) => Promise<TResult>,
|
|
135
141
|
options?: TransactionOptions,
|
|
136
142
|
): Promise<TResult> {
|
|
137
143
|
const db = await this._ensureDb();
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
144
|
+
|
|
145
|
+
let session: ClientSession;
|
|
146
|
+
const emitter = new TransactionEventEmitter();
|
|
147
|
+
|
|
148
|
+
return this.client
|
|
149
|
+
.withSession((_session) =>
|
|
150
|
+
_session.withTransaction(async (_session) => {
|
|
151
|
+
session = _session;
|
|
152
|
+
return handler(session, db, emitter);
|
|
153
|
+
}, options),
|
|
154
|
+
)
|
|
155
|
+
.then(
|
|
156
|
+
(result) => {
|
|
157
|
+
// https://github.com/mongodb/node-mongodb-native/blob/v6.7.0/src/transactions.ts#L147
|
|
158
|
+
// https://github.com/mongodb/node-mongodb-native/blob/v6.7.0/src/transactions.ts#L54
|
|
159
|
+
// session.transaction.isCommitted is not a sufficient indicator,
|
|
160
|
+
// because it's true if transaction commits or aborts.
|
|
161
|
+
const isCommitted = session.transaction.isCommitted;
|
|
162
|
+
const isAborted =
|
|
163
|
+
// https://github.com/mongodb/node-mongodb-native/blob/v6.7.0/src/transactions.ts#L11
|
|
164
|
+
Reflect.get(session.transaction, 'state') === 'TRANSACTION_ABORTED';
|
|
165
|
+
|
|
166
|
+
emitter.emit(
|
|
167
|
+
isCommitted && isAborted ? 'abort' : 'commit',
|
|
168
|
+
session,
|
|
169
|
+
db,
|
|
170
|
+
);
|
|
171
|
+
|
|
172
|
+
return result;
|
|
173
|
+
// If an error occurs in this scope,
|
|
174
|
+
// it will not be caught by this then's error handler, but by the caller's catch.
|
|
175
|
+
// This is what we want, as an error in this scope should not trigger the abort event.
|
|
176
|
+
},
|
|
177
|
+
(error) => {
|
|
178
|
+
emitter.emit('abort', session, db, error);
|
|
179
|
+
throw error;
|
|
180
|
+
},
|
|
181
|
+
);
|
|
146
182
|
}
|
|
147
183
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
|
|
3
|
+
import { ClientSession, Db } from 'mongodb';
|
|
4
|
+
|
|
5
|
+
export interface TransactionEvents {
|
|
6
|
+
commit: [session: ClientSession, db: Db];
|
|
7
|
+
abort: [session: ClientSession, db: Db, error?: Error];
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export class TransactionEventEmitter extends EventEmitter<TransactionEvents> {}
|
package/src/Model/Model.ts
CHANGED
|
@@ -239,10 +239,6 @@ function ensureSort(options?: FindOptions): void {
|
|
|
239
239
|
};
|
|
240
240
|
}
|
|
241
241
|
|
|
242
|
-
function hasOwn(object: unknown, key: string): boolean {
|
|
243
|
-
return Object.prototype.hasOwnProperty.call(object, key);
|
|
244
|
-
}
|
|
245
|
-
|
|
246
242
|
interface DataToSet {
|
|
247
243
|
[key: string]: unknown;
|
|
248
244
|
createdAt: Date;
|
|
@@ -358,7 +354,7 @@ export class BaseModel {
|
|
|
358
354
|
* Define the property when not defined on self. This makes sure that all
|
|
359
355
|
* subclasses boot on their own.
|
|
360
356
|
*/
|
|
361
|
-
if (!hasOwn(this, 'booted')) {
|
|
357
|
+
if (!Object.hasOwn(this, 'booted')) {
|
|
362
358
|
this.booted = false;
|
|
363
359
|
}
|
|
364
360
|
|
|
@@ -775,7 +771,7 @@ export class BaseModel {
|
|
|
775
771
|
}
|
|
776
772
|
|
|
777
773
|
export class BaseAutoIncrementModel extends BaseModel {
|
|
778
|
-
public readonly _id: number;
|
|
774
|
+
public declare readonly _id: number;
|
|
779
775
|
|
|
780
776
|
public async save(
|
|
781
777
|
options?: ModelDocumentOptions<InsertOneOptions>,
|