@point-hub/papi 0.7.1 → 0.7.3
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/index.js
CHANGED
|
@@ -69755,6 +69755,15 @@ class MongoTestService {
|
|
|
69755
69755
|
this.db = this.mongoClient.db(name);
|
|
69756
69756
|
this.mongoService = new MongoService(this.db);
|
|
69757
69757
|
}
|
|
69758
|
+
get client() {
|
|
69759
|
+
return this.mongoClient;
|
|
69760
|
+
}
|
|
69761
|
+
get database() {
|
|
69762
|
+
return this.db;
|
|
69763
|
+
}
|
|
69764
|
+
get service() {
|
|
69765
|
+
return this.mongoService;
|
|
69766
|
+
}
|
|
69758
69767
|
async open() {
|
|
69759
69768
|
await this.mongoClient.connect();
|
|
69760
69769
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { Db, MongoClient } from 'mongodb';
|
|
1
2
|
import type { ISchema } from '../../interfaces/types';
|
|
3
|
+
import { MongoService } from './mongo.service';
|
|
2
4
|
/**
|
|
3
5
|
* Provides utilities for managing a MongoDB database during tests.
|
|
4
6
|
*
|
|
@@ -33,6 +35,44 @@ export declare class MongoTestService {
|
|
|
33
35
|
* @param name - Name of the test database.
|
|
34
36
|
*/
|
|
35
37
|
constructor(uri: string, name: string);
|
|
38
|
+
/**
|
|
39
|
+
* Provides access to the MongoDB client.
|
|
40
|
+
*
|
|
41
|
+
* Use this to access native MongoDB client functionality,
|
|
42
|
+
* such as creating sessions and managing transactions.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* const session = mongoTestService.client.startSession()
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
get client(): MongoClient;
|
|
50
|
+
/**
|
|
51
|
+
* Provides access to the MongoDB database.
|
|
52
|
+
*
|
|
53
|
+
* Use this to perform direct database operations in tests,
|
|
54
|
+
* such as inserting fixtures and querying documents.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* await mongoTestService.database.collection('users').insertOne({
|
|
59
|
+
* email: 'john@example.com'
|
|
60
|
+
* })
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
get database(): Db;
|
|
64
|
+
/**
|
|
65
|
+
* Provides access to the MongoDB service.
|
|
66
|
+
*
|
|
67
|
+
* Use this to perform MongoDB operations through the service abstraction
|
|
68
|
+
* instead of accessing the database directly.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* await mongoTestService.service.createUnique('users', { email: 1 })
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
get service(): MongoService;
|
|
36
76
|
/**
|
|
37
77
|
* Establishes a connection to MongoDB.
|
|
38
78
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongo-test.service.d.ts","sourceRoot":"","sources":["../../../../src/database/mongodb/mongo-test.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mongo-test.service.d.ts","sourceRoot":"","sources":["../../../../src/database/mongodb/mongo-test.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,WAAW,EAAsB,MAAM,SAAS,CAAC;AAE9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,EAAE,CAAK;IAEf;;;;;;;;OAQG;gBACS,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAWrC;;;;;;;;;;OAUG;IACH,IAAW,MAAM,IAAI,WAAW,CAE/B;IAED;;;;;;;;;;;;OAYG;IACH,IAAW,QAAQ,IAAI,EAAE,CAExB;IAED;;;;;;;;;;OAUG;IACH,IAAW,OAAO,IAAI,YAAY,CAEjC;IAED;;;;OAIG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC;;;;OAIG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;;;;;;;;;;;;;;;;;OAkBG;IACU,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCtE;;;;;;;;;;;OAWG;IACU,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1C;;;;;;;;;;;OAWG;IACU,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAShD;;;;;;;;;;;;OAYG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAOpC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { NextFunction, Request, RequestHandler, Response } from 'express';
|
|
2
|
-
import { MongoClient, ObjectId } from 'mongodb';
|
|
2
|
+
import { AggregateOptions, BulkWriteOptions, Db, DeleteOptions, FindOneOptions, FindOptions, InsertOneOptions, MongoClient, ObjectId, UpdateOptions } from 'mongodb';
|
|
3
3
|
/**
|
|
4
4
|
* Controller
|
|
5
5
|
*/
|
|
@@ -8,6 +8,7 @@ export interface IControllerInput {
|
|
|
8
8
|
res: Response;
|
|
9
9
|
next: NextFunction;
|
|
10
10
|
mongoClient: MongoClient;
|
|
11
|
+
database: Db;
|
|
11
12
|
}
|
|
12
13
|
export interface IController {
|
|
13
14
|
(input: IControllerInput): Promise<IControllerOutput | void>;
|
|
@@ -25,6 +26,7 @@ export interface IMiddlewareInput {
|
|
|
25
26
|
res: Response;
|
|
26
27
|
next: NextFunction;
|
|
27
28
|
mongoClient: MongoClient;
|
|
29
|
+
database: Db;
|
|
28
30
|
}
|
|
29
31
|
export type IAppMiddleware = (input: IMiddlewareInput) => Promise<void> | void;
|
|
30
32
|
export type IMiddleware = RequestHandler | IAppMiddleware;
|
|
@@ -32,31 +34,31 @@ export type IMiddleware = RequestHandler | IAppMiddleware;
|
|
|
32
34
|
* Repository
|
|
33
35
|
*/
|
|
34
36
|
export interface IAggregateRepository<TData> {
|
|
35
|
-
handle(filter: IDocument, options?:
|
|
37
|
+
handle(filter: IDocument, options?: AggregateOptions): Promise<IAggregateOutput<TData>>;
|
|
36
38
|
}
|
|
37
39
|
export interface ICreateManyRepository {
|
|
38
|
-
handle(documents: IDocument[], options?:
|
|
40
|
+
handle(documents: IDocument[], options?: BulkWriteOptions): Promise<ICreateManyOutput>;
|
|
39
41
|
}
|
|
40
42
|
export interface ICreateRepository {
|
|
41
|
-
handle(document: IDocument, options?:
|
|
43
|
+
handle(document: IDocument, options?: InsertOneOptions): Promise<ICreateOutput>;
|
|
42
44
|
}
|
|
43
45
|
export interface IDeleteManyRepository {
|
|
44
|
-
handle(_ids: (string | ObjectId)[], options?:
|
|
46
|
+
handle(_ids: (string | ObjectId)[], options?: DeleteOptions): Promise<IDeleteManyOutput>;
|
|
45
47
|
}
|
|
46
48
|
export interface IDeleteRepository {
|
|
47
|
-
handle(_id:
|
|
49
|
+
handle(_id: string | ObjectId, options?: DeleteOptions): Promise<IDeleteOutput>;
|
|
48
50
|
}
|
|
49
51
|
export interface IRetrieveManyRepository<TData> {
|
|
50
|
-
handle(query: IQuery, options?:
|
|
52
|
+
handle(query: IQuery, options?: FindOptions): Promise<TData>;
|
|
51
53
|
}
|
|
52
54
|
export interface IRetrieveRepository<TOutput extends object> {
|
|
53
|
-
handle(_id:
|
|
55
|
+
handle(_id: string | ObjectId, options?: FindOneOptions): Promise<TOutput>;
|
|
54
56
|
}
|
|
55
57
|
export interface IUpdateManyRepository {
|
|
56
|
-
handle(filter: IDocument, document: IDocument, options?:
|
|
58
|
+
handle(filter: IDocument, document: IDocument, options?: UpdateOptions): Promise<IUpdateManyOutput>;
|
|
57
59
|
}
|
|
58
60
|
export interface IUpdateRepository {
|
|
59
|
-
handle(_id:
|
|
61
|
+
handle(_id: string | ObjectId, document: IDocument, options?: UpdateOptions): Promise<IUpdateOutput>;
|
|
60
62
|
}
|
|
61
63
|
/**
|
|
62
64
|
* Database
|
|
@@ -142,6 +144,7 @@ export interface IMakeMiddlewareInput {
|
|
|
142
144
|
*/
|
|
143
145
|
export interface IBaseRouterInput {
|
|
144
146
|
mongoClient: MongoClient;
|
|
147
|
+
database: Db;
|
|
145
148
|
}
|
|
146
149
|
/**
|
|
147
150
|
* Schema Validation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/interfaces/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/interfaces/types.ts"],"names":[],"mappings":"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"}
|