@ciscode/database-kit 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -4
- package/README.md +487 -148
- package/dist/adapters/mongo.adapter.d.ts +53 -3
- package/dist/adapters/mongo.adapter.d.ts.map +1 -1
- package/dist/adapters/mongo.adapter.js +410 -27
- package/dist/adapters/mongo.adapter.js.map +1 -1
- package/dist/adapters/postgres.adapter.d.ts +50 -3
- package/dist/adapters/postgres.adapter.d.ts.map +1 -1
- package/dist/adapters/postgres.adapter.js +439 -45
- package/dist/adapters/postgres.adapter.js.map +1 -1
- package/dist/config/database.config.d.ts +1 -1
- package/dist/config/database.config.d.ts.map +1 -1
- package/dist/config/database.config.js +13 -13
- package/dist/config/database.config.js.map +1 -1
- package/dist/config/database.constants.js +7 -7
- package/dist/contracts/database.contracts.d.ts +283 -6
- package/dist/contracts/database.contracts.d.ts.map +1 -1
- package/dist/contracts/database.contracts.js +6 -1
- package/dist/contracts/database.contracts.js.map +1 -1
- package/dist/database-kit.module.d.ts +2 -2
- package/dist/database-kit.module.d.ts.map +1 -1
- package/dist/database-kit.module.js +1 -2
- package/dist/database-kit.module.js.map +1 -1
- package/dist/filters/database-exception.filter.d.ts +1 -1
- package/dist/filters/database-exception.filter.d.ts.map +1 -1
- package/dist/filters/database-exception.filter.js +43 -43
- package/dist/filters/database-exception.filter.js.map +1 -1
- package/dist/index.d.ts +10 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware/database.decorators.d.ts.map +1 -1
- package/dist/middleware/database.decorators.js.map +1 -1
- package/dist/services/database.service.d.ts +83 -5
- package/dist/services/database.service.d.ts.map +1 -1
- package/dist/services/database.service.js +136 -16
- package/dist/services/database.service.js.map +1 -1
- package/dist/services/logger.service.d.ts +1 -1
- package/dist/services/logger.service.d.ts.map +1 -1
- package/dist/services/logger.service.js +1 -1
- package/dist/services/logger.service.js.map +1 -1
- package/dist/utils/pagination.utils.d.ts +2 -2
- package/dist/utils/pagination.utils.d.ts.map +1 -1
- package/dist/utils/pagination.utils.js +9 -6
- package/dist/utils/pagination.utils.js.map +1 -1
- package/dist/utils/validation.utils.d.ts.map +1 -1
- package/dist/utils/validation.utils.js +5 -5
- package/dist/utils/validation.utils.js.map +1 -1
- package/package.json +28 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-kit.module.js","sourceRoot":"","sources":["../src/database-kit.module.ts"],"names":[],"mappings":";AAAA,6BAA6B;;;;;;;;;;AAE7B,
|
|
1
|
+
{"version":3,"file":"database-kit.module.js","sourceRoot":"","sources":["../src/database-kit.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ExceptionFilter, ArgumentsHost } from
|
|
1
|
+
import { ExceptionFilter, ArgumentsHost } from "@nestjs/common";
|
|
2
2
|
/**
|
|
3
3
|
* Global exception filter for handling database-related errors.
|
|
4
4
|
* Catches and formats various database errors into consistent HTTP responses.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-exception.filter.d.ts","sourceRoot":"","sources":["../../src/filters/database-exception.filter.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"database-exception.filter.d.ts","sourceRoot":"","sources":["../../src/filters/database-exception.filter.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EAEf,aAAa,EAId,MAAM,gBAAgB,CAAC;AAaxB;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;IAEnE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAqBpD;;OAEG;IACH,OAAO,CAAC,cAAc;IAwDtB;;OAEG;IACH,OAAO,CAAC,YAAY;IAYpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAyCvB;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;IACH,OAAO,CAAC,cAAc;IA+DtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,OAAO,CAAC,QAAQ;CAcjB"}
|
|
@@ -42,7 +42,7 @@ let DatabaseExceptionFilter = DatabaseExceptionFilter_1 = class DatabaseExceptio
|
|
|
42
42
|
message,
|
|
43
43
|
error,
|
|
44
44
|
timestamp: new Date().toISOString(),
|
|
45
|
-
path: (request === null || request === void 0 ? void 0 : request.url) ||
|
|
45
|
+
path: (request === null || request === void 0 ? void 0 : request.url) || "/",
|
|
46
46
|
};
|
|
47
47
|
// Log the error
|
|
48
48
|
this.logError(exception, errorResponse);
|
|
@@ -55,7 +55,7 @@ let DatabaseExceptionFilter = DatabaseExceptionFilter_1 = class DatabaseExceptio
|
|
|
55
55
|
// Handle NestJS HTTP exceptions
|
|
56
56
|
if (exception instanceof common_1.HttpException) {
|
|
57
57
|
const response = exception.getResponse();
|
|
58
|
-
const message = typeof response ===
|
|
58
|
+
const message = typeof response === "string"
|
|
59
59
|
? response
|
|
60
60
|
: response.message || exception.message;
|
|
61
61
|
return {
|
|
@@ -77,36 +77,36 @@ let DatabaseExceptionFilter = DatabaseExceptionFilter_1 = class DatabaseExceptio
|
|
|
77
77
|
return {
|
|
78
78
|
statusCode: common_1.HttpStatus.BAD_REQUEST,
|
|
79
79
|
message: exception.message,
|
|
80
|
-
error:
|
|
80
|
+
error: "ValidationError",
|
|
81
81
|
};
|
|
82
82
|
}
|
|
83
83
|
// Handle generic errors
|
|
84
84
|
if (exception instanceof Error) {
|
|
85
85
|
return {
|
|
86
86
|
statusCode: common_1.HttpStatus.INTERNAL_SERVER_ERROR,
|
|
87
|
-
message: exception.message ||
|
|
88
|
-
error: exception.name ||
|
|
87
|
+
message: exception.message || "An unexpected error occurred",
|
|
88
|
+
error: exception.name || "InternalServerError",
|
|
89
89
|
};
|
|
90
90
|
}
|
|
91
91
|
// Fallback for unknown errors
|
|
92
92
|
return {
|
|
93
93
|
statusCode: common_1.HttpStatus.INTERNAL_SERVER_ERROR,
|
|
94
|
-
message:
|
|
95
|
-
error:
|
|
94
|
+
message: "An unexpected error occurred",
|
|
95
|
+
error: "InternalServerError",
|
|
96
96
|
};
|
|
97
97
|
}
|
|
98
98
|
/**
|
|
99
99
|
* Checks if the exception is a MongoDB error.
|
|
100
100
|
*/
|
|
101
101
|
isMongoError(exception) {
|
|
102
|
-
if (!exception || typeof exception !==
|
|
102
|
+
if (!exception || typeof exception !== "object")
|
|
103
103
|
return false;
|
|
104
104
|
const err = exception;
|
|
105
|
-
return (err.name ===
|
|
106
|
-
err.name ===
|
|
107
|
-
err.name ===
|
|
108
|
-
err.name ===
|
|
109
|
-
err.name ===
|
|
105
|
+
return (err.name === "MongoError" ||
|
|
106
|
+
err.name === "MongoServerError" ||
|
|
107
|
+
err.name === "MongooseError" ||
|
|
108
|
+
err.name === "CastError" ||
|
|
109
|
+
err.name === "ValidationError");
|
|
110
110
|
}
|
|
111
111
|
/**
|
|
112
112
|
* Parses MongoDB-specific errors.
|
|
@@ -117,41 +117,41 @@ let DatabaseExceptionFilter = DatabaseExceptionFilter_1 = class DatabaseExceptio
|
|
|
117
117
|
if (err.code === 11000) {
|
|
118
118
|
return {
|
|
119
119
|
statusCode: common_1.HttpStatus.CONFLICT,
|
|
120
|
-
message:
|
|
121
|
-
error:
|
|
120
|
+
message: "A record with this value already exists",
|
|
121
|
+
error: "DuplicateKeyError",
|
|
122
122
|
};
|
|
123
123
|
}
|
|
124
124
|
// Cast error (invalid ObjectId, etc.)
|
|
125
|
-
if (err.name ===
|
|
125
|
+
if (err.name === "CastError") {
|
|
126
126
|
return {
|
|
127
127
|
statusCode: common_1.HttpStatus.BAD_REQUEST,
|
|
128
|
-
message:
|
|
129
|
-
error:
|
|
128
|
+
message: "Invalid ID format",
|
|
129
|
+
error: "CastError",
|
|
130
130
|
};
|
|
131
131
|
}
|
|
132
132
|
// Mongoose validation error
|
|
133
|
-
if (err.name ===
|
|
133
|
+
if (err.name === "ValidationError") {
|
|
134
134
|
return {
|
|
135
135
|
statusCode: common_1.HttpStatus.BAD_REQUEST,
|
|
136
136
|
message: err.message,
|
|
137
|
-
error:
|
|
137
|
+
error: "ValidationError",
|
|
138
138
|
};
|
|
139
139
|
}
|
|
140
140
|
return {
|
|
141
141
|
statusCode: common_1.HttpStatus.INTERNAL_SERVER_ERROR,
|
|
142
|
-
message:
|
|
143
|
-
error:
|
|
142
|
+
message: "Database operation failed",
|
|
143
|
+
error: "DatabaseError",
|
|
144
144
|
};
|
|
145
145
|
}
|
|
146
146
|
/**
|
|
147
147
|
* Checks if the exception is a Knex/PostgreSQL error.
|
|
148
148
|
*/
|
|
149
149
|
isKnexError(exception) {
|
|
150
|
-
if (!exception || typeof exception !==
|
|
150
|
+
if (!exception || typeof exception !== "object")
|
|
151
151
|
return false;
|
|
152
152
|
const err = exception;
|
|
153
153
|
// PostgreSQL error codes start with numbers
|
|
154
|
-
return typeof err.code ===
|
|
154
|
+
return typeof err.code === "string" && /^[0-9A-Z]{5}$/.test(err.code);
|
|
155
155
|
}
|
|
156
156
|
/**
|
|
157
157
|
* Parses PostgreSQL/Knex-specific errors.
|
|
@@ -159,59 +159,59 @@ let DatabaseExceptionFilter = DatabaseExceptionFilter_1 = class DatabaseExceptio
|
|
|
159
159
|
parseKnexError(exception) {
|
|
160
160
|
const err = exception;
|
|
161
161
|
// Unique constraint violation
|
|
162
|
-
if (err.code ===
|
|
162
|
+
if (err.code === "23505") {
|
|
163
163
|
return {
|
|
164
164
|
statusCode: common_1.HttpStatus.CONFLICT,
|
|
165
|
-
message: `A record with this value already exists${err.constraint ? ` (${err.constraint})` :
|
|
166
|
-
error:
|
|
165
|
+
message: `A record with this value already exists${err.constraint ? ` (${err.constraint})` : ""}`,
|
|
166
|
+
error: "UniqueConstraintViolation",
|
|
167
167
|
};
|
|
168
168
|
}
|
|
169
169
|
// Foreign key violation
|
|
170
|
-
if (err.code ===
|
|
170
|
+
if (err.code === "23503") {
|
|
171
171
|
return {
|
|
172
172
|
statusCode: common_1.HttpStatus.BAD_REQUEST,
|
|
173
|
-
message:
|
|
174
|
-
error:
|
|
173
|
+
message: "Referenced record does not exist",
|
|
174
|
+
error: "ForeignKeyViolation",
|
|
175
175
|
};
|
|
176
176
|
}
|
|
177
177
|
// Not null violation
|
|
178
|
-
if (err.code ===
|
|
178
|
+
if (err.code === "23502") {
|
|
179
179
|
return {
|
|
180
180
|
statusCode: common_1.HttpStatus.BAD_REQUEST,
|
|
181
|
-
message:
|
|
182
|
-
error:
|
|
181
|
+
message: "Required field is missing",
|
|
182
|
+
error: "NotNullViolation",
|
|
183
183
|
};
|
|
184
184
|
}
|
|
185
185
|
// Check constraint violation
|
|
186
|
-
if (err.code ===
|
|
186
|
+
if (err.code === "23514") {
|
|
187
187
|
return {
|
|
188
188
|
statusCode: common_1.HttpStatus.BAD_REQUEST,
|
|
189
|
-
message:
|
|
190
|
-
error:
|
|
189
|
+
message: "Value does not meet constraint requirements",
|
|
190
|
+
error: "CheckConstraintViolation",
|
|
191
191
|
};
|
|
192
192
|
}
|
|
193
193
|
// Connection errors
|
|
194
|
-
if (err.code ===
|
|
194
|
+
if (err.code === "08006" || err.code === "08001" || err.code === "08004") {
|
|
195
195
|
return {
|
|
196
196
|
statusCode: common_1.HttpStatus.SERVICE_UNAVAILABLE,
|
|
197
|
-
message:
|
|
198
|
-
error:
|
|
197
|
+
message: "Database connection error",
|
|
198
|
+
error: "ConnectionError",
|
|
199
199
|
};
|
|
200
200
|
}
|
|
201
201
|
return {
|
|
202
202
|
statusCode: common_1.HttpStatus.INTERNAL_SERVER_ERROR,
|
|
203
|
-
message:
|
|
204
|
-
error:
|
|
203
|
+
message: "Database operation failed",
|
|
204
|
+
error: "DatabaseError",
|
|
205
205
|
};
|
|
206
206
|
}
|
|
207
207
|
/**
|
|
208
208
|
* Checks if the exception is a validation error.
|
|
209
209
|
*/
|
|
210
210
|
isValidationError(exception) {
|
|
211
|
-
if (!exception || typeof exception !==
|
|
211
|
+
if (!exception || typeof exception !== "object")
|
|
212
212
|
return false;
|
|
213
213
|
const err = exception;
|
|
214
|
-
return err.name ===
|
|
214
|
+
return err.name === "ValidationError";
|
|
215
215
|
}
|
|
216
216
|
/**
|
|
217
217
|
* Logs the error with appropriate level and context.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-exception.filter.js","sourceRoot":"","sources":["../../src/filters/database-exception.filter.ts"],"names":[],"mappings":";AAAA,2CAA2C;;;;;;;;;;AAE3C,2CAOwB;AAaxB;;;;;;;;;;;;;;;;GAgBG;AAEI,IAAM,uBAAuB,+BAA7B,MAAM,uBAAuB;IAA7B;
|
|
1
|
+
{"version":3,"file":"database-exception.filter.js","sourceRoot":"","sources":["../../src/filters/database-exception.filter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @packageDocumentation
|
|
8
8
|
*/
|
|
9
|
-
export { DatabaseKitModule } from
|
|
10
|
-
export { DatabaseService } from
|
|
11
|
-
export { LoggerService } from
|
|
12
|
-
export { InjectDatabase, InjectDatabaseByToken } from
|
|
13
|
-
export { DatabaseExceptionFilter } from
|
|
14
|
-
export { DatabaseConfigHelper } from
|
|
15
|
-
export { DATABASE_TOKEN, DATABASE_OPTIONS_TOKEN, ENV_KEYS, DEFAULTS } from
|
|
16
|
-
export { DatabaseType, DatabaseConfig, MongoDatabaseConfig, PostgresDatabaseConfig, DatabaseKitModuleOptions, DatabaseKitModuleAsyncOptions, InjectionToken, OptionalFactoryDependency, Repository, PageResult, PageOptions, MongoRepositoryOptions, PostgresEntityConfig, DATABASE_KIT_CONSTANTS, } from
|
|
17
|
-
export { normalizePaginationOptions, calculatePagination, createPageResult, parseSortString, calculateOffset, } from
|
|
18
|
-
export { isValidMongoId, isValidUuid, isPositiveInteger, sanitizeFilter, validateRequiredFields, pickFields, omitFields, } from
|
|
9
|
+
export { DatabaseKitModule } from "./database-kit.module";
|
|
10
|
+
export { DatabaseService } from "./services/database.service";
|
|
11
|
+
export { LoggerService } from "./services/logger.service";
|
|
12
|
+
export { InjectDatabase, InjectDatabaseByToken, } from "./middleware/database.decorators";
|
|
13
|
+
export { DatabaseExceptionFilter } from "./filters/database-exception.filter";
|
|
14
|
+
export { DatabaseConfigHelper } from "./config/database.config";
|
|
15
|
+
export { DATABASE_TOKEN, DATABASE_OPTIONS_TOKEN, ENV_KEYS, DEFAULTS, } from "./config/database.constants";
|
|
16
|
+
export { DatabaseType, DatabaseConfig, MongoDatabaseConfig, PostgresDatabaseConfig, PoolConfig, DatabaseKitModuleOptions, DatabaseKitModuleAsyncOptions, InjectionToken, OptionalFactoryDependency, Repository, PageResult, PageOptions, TransactionIsolationLevel, TransactionOptions, TransactionContext, MongoTransactionContext, PostgresTransactionContext, TransactionCallback, HealthCheckResult, HookContext, RepositoryHooks, MongoRepositoryOptions, PostgresEntityConfig, DATABASE_KIT_CONSTANTS, } from "./contracts/database.contracts";
|
|
17
|
+
export { normalizePaginationOptions, calculatePagination, createPageResult, parseSortString, calculateOffset, } from "./utils/pagination.utils";
|
|
18
|
+
export { isValidMongoId, isValidUuid, isPositiveInteger, sanitizeFilter, validateRequiredFields, pickFields, omitFields, } from "./utils/validation.utils";
|
|
19
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAUH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAM1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAM1D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAUH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAM1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAM1D,OAAO,EACL,cAAc,EACd,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAM1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAM9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,QAAQ,EACR,QAAQ,GACT,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAEL,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EAGtB,UAAU,EAGV,wBAAwB,EACxB,6BAA6B,EAC7B,cAAc,EACd,yBAAyB,EAGzB,UAAU,EAGV,UAAU,EACV,WAAW,EAGX,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EAGnB,iBAAiB,EAGjB,WAAW,EACX,eAAe,EAGf,sBAAsB,EACtB,oBAAoB,EAGpB,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AAMxC,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,UAAU,EACV,UAAU,GACX,MAAM,0BAA0B,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,eAAe;;;AAEf;;;;;;;GAOG;AAEH,gFAAgF;AAChF,mDAAmD;AACnD,gFAAgF;AAEhF,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA;AAE1B,gFAAgF;AAChF,4CAA4C;AAC5C,gFAAgF;AAEhF,gEAA8D;AAArD,mHAAA,eAAe,OAAA;AACxB,4DAA0D;AAAjD,+GAAA,aAAa,OAAA;AAEtB,gFAAgF;AAChF,wCAAwC;AACxC,gFAAgF;AAEhF,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,eAAe;;;AAEf;;;;;;;GAOG;AAEH,gFAAgF;AAChF,mDAAmD;AACnD,gFAAgF;AAEhF,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA;AAE1B,gFAAgF;AAChF,4CAA4C;AAC5C,gFAAgF;AAEhF,gEAA8D;AAArD,mHAAA,eAAe,OAAA;AACxB,4DAA0D;AAAjD,+GAAA,aAAa,OAAA;AAEtB,gFAAgF;AAChF,wCAAwC;AACxC,gFAAgF;AAEhF,wEAG0C;AAFxC,qHAAA,cAAc,OAAA;AACd,4HAAA,qBAAqB,OAAA;AAGvB,gFAAgF;AAChF,0CAA0C;AAC1C,gFAAgF;AAEhF,iFAA8E;AAArE,oIAAA,uBAAuB,OAAA;AAEhC,gFAAgF;AAChF,qDAAqD;AACrD,gFAAgF;AAEhF,4DAAgE;AAAvD,uHAAA,oBAAoB,OAAA;AAC7B,kEAKqC;AAJnC,oHAAA,cAAc,OAAA;AACd,4HAAA,sBAAsB,OAAA;AACtB,8GAAA,QAAQ,OAAA;AACR,8GAAA,QAAQ,OAAA;AAGV,gFAAgF;AAChF,iDAAiD;AACjD,gFAAgF;AAEhF,qEA4CwC;AAFtC,YAAY;AACZ,4HAAA,sBAAsB,OAAA;AAGxB,gFAAgF;AAChF,oCAAoC;AACpC,gFAAgF;AAEhF,6DAMkC;AALhC,8HAAA,0BAA0B,OAAA;AAC1B,uHAAA,mBAAmB,OAAA;AACnB,oHAAA,gBAAgB,OAAA;AAChB,mHAAA,eAAe,OAAA;AACf,mHAAA,eAAe,OAAA;AAGjB,6DAQkC;AAPhC,kHAAA,cAAc,OAAA;AACd,+GAAA,WAAW,OAAA;AACX,qHAAA,iBAAiB,OAAA;AACjB,kHAAA,cAAc,OAAA;AACd,0HAAA,sBAAsB,OAAA;AACtB,8GAAA,UAAU,OAAA;AACV,8GAAA,UAAU,OAAA;AAGZ,gFAAgF;AAChF,iDAAiD;AACjD,gFAAgF;AAEhF,iEAAiE;AACjE,oEAAoE;AACpE,8BAA8B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.decorators.d.ts","sourceRoot":"","sources":["../../src/middleware/database.decorators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"database.decorators.d.ts","sourceRoot":"","sources":["../../src/middleware/database.decorators.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,QAAO,kBAA4C,CAAC;AAE/E;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,KAAG,kBACvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.decorators.js","sourceRoot":"","sources":["../../src/middleware/database.decorators.ts"],"names":[],"mappings":";AAAA,wCAAwC;;;AAExC,2CAAwC;
|
|
1
|
+
{"version":3,"file":"database.decorators.js","sourceRoot":"","sources":["../../src/middleware/database.decorators.ts"],"names":[],"mappings":";AAAA,wCAAwC;;;AAExC,2CAAwC;AAExC,qEAA8D;AAE9D;;;;;;;;;;GAUG;AACI,MAAM,cAAc,GAAG,GAAuB,EAAE,CAAC,IAAA,eAAM,EAAC,mCAAc,CAAC,CAAC;AAAlE,QAAA,cAAc,kBAAoD;AAE/E;;;;;;;;;;;;;;;;GAgBG;AACI,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAsB,EAAE,CACzE,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC;AADH,QAAA,qBAAqB,yBAClB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { OnModuleDestroy } from
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { OnModuleDestroy } from "@nestjs/common";
|
|
2
|
+
import { MongoAdapter } from "../adapters/mongo.adapter";
|
|
3
|
+
import { PostgresAdapter } from "../adapters/postgres.adapter";
|
|
4
|
+
import { DatabaseConfig, MongoRepositoryOptions, PostgresEntityConfig, MongoTransactionContext, PostgresTransactionContext, Repository, TransactionOptions, TransactionCallback, HealthCheckResult } from "../contracts/database.contracts";
|
|
5
5
|
/**
|
|
6
6
|
* Main database service that provides a unified interface
|
|
7
7
|
* for database operations across MongoDB and PostgreSQL.
|
|
@@ -36,7 +36,7 @@ export declare class DatabaseService implements OnModuleDestroy {
|
|
|
36
36
|
/**
|
|
37
37
|
* Returns the current database type.
|
|
38
38
|
*/
|
|
39
|
-
get type():
|
|
39
|
+
get type(): "mongo" | "postgres";
|
|
40
40
|
/**
|
|
41
41
|
* Checks if the database is connected.
|
|
42
42
|
*/
|
|
@@ -95,5 +95,83 @@ export declare class DatabaseService implements OnModuleDestroy {
|
|
|
95
95
|
* @throws Error if database type is not 'postgres'
|
|
96
96
|
*/
|
|
97
97
|
getPostgresAdapter(): PostgresAdapter;
|
|
98
|
+
/**
|
|
99
|
+
* Executes a callback within a MongoDB transaction.
|
|
100
|
+
* All database operations within the callback are atomic.
|
|
101
|
+
*
|
|
102
|
+
* **Note:** MongoDB transactions require a replica set.
|
|
103
|
+
*
|
|
104
|
+
* @param callback - Function to execute within the transaction
|
|
105
|
+
* @param options - Transaction options
|
|
106
|
+
* @returns Result of the callback function
|
|
107
|
+
* @throws Error if database type is not 'mongo' or transaction fails
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```typescript
|
|
111
|
+
* const result = await db.withMongoTransaction(async (ctx) => {
|
|
112
|
+
* const usersRepo = ctx.createRepository<User>({ model: UserModel });
|
|
113
|
+
* const user = await usersRepo.create({ name: 'John' });
|
|
114
|
+
* return user;
|
|
115
|
+
* });
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
withMongoTransaction<TResult>(callback: TransactionCallback<MongoTransactionContext, TResult>, options?: TransactionOptions): Promise<TResult>;
|
|
119
|
+
/**
|
|
120
|
+
* Executes a callback within a PostgreSQL transaction.
|
|
121
|
+
* All database operations within the callback are atomic.
|
|
122
|
+
*
|
|
123
|
+
* @param callback - Function to execute within the transaction
|
|
124
|
+
* @param options - Transaction options including isolation level
|
|
125
|
+
* @returns Result of the callback function
|
|
126
|
+
* @throws Error if database type is not 'postgres' or transaction fails
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```typescript
|
|
130
|
+
* const result = await db.withPostgresTransaction(async (ctx) => {
|
|
131
|
+
* const usersRepo = ctx.createRepository<User>({ table: 'users' });
|
|
132
|
+
* const user = await usersRepo.create({ name: 'John' });
|
|
133
|
+
* return user;
|
|
134
|
+
* }, { isolationLevel: 'serializable' });
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
withPostgresTransaction<TResult>(callback: TransactionCallback<PostgresTransactionContext, TResult>, options?: TransactionOptions): Promise<TResult>;
|
|
138
|
+
/**
|
|
139
|
+
* Generic transaction method that works with the configured database type.
|
|
140
|
+
* Automatically routes to the appropriate transaction handler.
|
|
141
|
+
*
|
|
142
|
+
* @param callback - Function to execute within the transaction
|
|
143
|
+
* @param options - Transaction options
|
|
144
|
+
* @returns Result of the callback function
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* ```typescript
|
|
148
|
+
* // Works with whatever database type is configured
|
|
149
|
+
* const result = await db.withTransaction(async (ctx) => {
|
|
150
|
+
* const repo = ctx.createRepository({ ... });
|
|
151
|
+
* return repo.create({ name: 'John' });
|
|
152
|
+
* });
|
|
153
|
+
* ```
|
|
154
|
+
*/
|
|
155
|
+
withTransaction<TResult>(callback: TransactionCallback<MongoTransactionContext | PostgresTransactionContext, TResult>, options?: TransactionOptions): Promise<TResult>;
|
|
156
|
+
/**
|
|
157
|
+
* Performs a health check on the database connection.
|
|
158
|
+
* Useful for load balancer health endpoints and monitoring.
|
|
159
|
+
*
|
|
160
|
+
* @returns Health check result with status, response time, and details
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ```typescript
|
|
164
|
+
* // In a health check endpoint
|
|
165
|
+
* @Get('/health')
|
|
166
|
+
* async healthCheck() {
|
|
167
|
+
* const result = await this.db.healthCheck();
|
|
168
|
+
* if (!result.healthy) {
|
|
169
|
+
* throw new ServiceUnavailableException(result.error);
|
|
170
|
+
* }
|
|
171
|
+
* return result;
|
|
172
|
+
* }
|
|
173
|
+
* ```
|
|
174
|
+
*/
|
|
175
|
+
healthCheck(): Promise<HealthCheckResult>;
|
|
98
176
|
}
|
|
99
177
|
//# sourceMappingURL=database.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.service.d.ts","sourceRoot":"","sources":["../../src/services/database.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"database.service.d.ts","sourceRoot":"","sources":["../../src/services/database.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EACL,cAAc,EAGd,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,iCAAiC,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBACa,eAAgB,YAAW,eAAe;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IAExC,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,eAAe,CAAC,CAAkB;gBAE9B,MAAM,EAAE,cAAc;IAKlC;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtC;;OAEG;IACH,IAAI,IAAI,IAAI,OAAO,GAAG,UAAU,CAE/B;IAED;;OAEG;IACH,WAAW,IAAI,OAAO;IAWtB;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBjC;;;;;;;;;;;;OAYG;IACH,qBAAqB,CAAC,CAAC,GAAG,OAAO,EAC/B,OAAO,EAAE,sBAAsB,GAC9B,UAAU,CAAC,CAAC,CAAC;IAchB;;;;;;;;;;;;;;;OAeG;IACH,wBAAwB,CAAC,CAAC,GAAG,OAAO,EAClC,GAAG,EAAE,oBAAoB,GACxB,UAAU,CAAC,CAAC,CAAC;IAiBhB;;;;;OAKG;IACH,eAAe,IAAI,YAAY;IAc/B;;;;;OAKG;IACH,kBAAkB,IAAI,eAAe;IAgBrC;;;;;;;;;;;;;;;;;;;OAmBG;IACG,oBAAoB,CAAC,OAAO,EAChC,QAAQ,EAAE,mBAAmB,CAAC,uBAAuB,EAAE,OAAO,CAAC,EAC/D,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,OAAO,CAAC;IAWnB;;;;;;;;;;;;;;;;;OAiBG;IACG,uBAAuB,CAAC,OAAO,EACnC,QAAQ,EAAE,mBAAmB,CAAC,0BAA0B,EAAE,OAAO,CAAC,EAClE,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,OAAO,CAAC;IAWnB;;;;;;;;;;;;;;;;OAgBG;IACG,eAAe,CAAC,OAAO,EAC3B,QAAQ,EAAE,mBAAmB,CAC3B,uBAAuB,GAAG,0BAA0B,EACpD,OAAO,CACR,EACD,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,OAAO,CAAC;IAqBnB;;;;;;;;;;;;;;;;;;OAkBG;IACG,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAqBhD"}
|