zync-nest-data-module 1.0.0 → 1.1.38
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/.prettierrc.json +23 -0
- package/README.md +226 -439
- package/dist/backup/backup.module.d.ts +1 -1
- package/dist/backup/backup.module.js +6 -6
- package/dist/backup/backup.module.js.map +1 -1
- package/dist/backup/backup.service.d.ts +1 -0
- package/dist/backup/backup.service.js +41 -18
- package/dist/backup/backup.service.js.map +1 -1
- package/dist/backup/backup.worker.d.ts +1 -0
- package/dist/backup/backup.worker.js +43 -0
- package/dist/backup/backup.worker.js.map +1 -0
- package/dist/base/dto.d.ts +19 -0
- package/dist/base/dto.js +86 -0
- package/dist/base/dto.js.map +1 -0
- package/dist/base/index.d.ts +2 -0
- package/dist/base/index.js +19 -0
- package/dist/base/index.js.map +1 -0
- package/dist/base/resolver.d.ts +6 -0
- package/dist/base/resolver.js +54 -0
- package/dist/base/resolver.js.map +1 -0
- package/dist/database/database.module.d.ts +5 -1
- package/dist/database/database.module.js +24 -19
- package/dist/database/database.module.js.map +1 -1
- package/dist/database/database.repository.d.ts +3 -2
- package/dist/database/database.repository.js +32 -25
- package/dist/database/database.repository.js.map +1 -1
- package/dist/database/database.scheme.d.ts +2 -8
- package/dist/database/database.scheme.js +2 -2
- package/dist/database/database.scheme.js.map +1 -1
- package/dist/database/database.service.d.ts +5 -3
- package/dist/database/database.service.js +44 -17
- package/dist/database/database.service.js.map +1 -1
- package/dist/database/database.transaction.d.ts +7 -7
- package/dist/database/database.transaction.js +61 -50
- package/dist/database/database.transaction.js.map +1 -1
- package/dist/database/database.uniqueId.d.ts +8 -3
- package/dist/database/database.uniqueId.js +26 -7
- package/dist/database/database.uniqueId.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/redis/index.d.ts +2 -0
- package/dist/redis/index.js +19 -0
- package/dist/redis/index.js.map +1 -0
- package/dist/redis/redis.module.d.ts +2 -0
- package/dist/redis/redis.module.js +43 -0
- package/dist/redis/redis.module.js.map +1 -0
- package/dist/redis/redis.service.d.ts +27 -0
- package/dist/redis/redis.service.js +126 -0
- package/dist/redis/redis.service.js.map +1 -0
- package/dist/service/service.d.ts +2 -2
- package/dist/service/service.js +42 -56
- package/dist/service/service.js.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/libs/src/app.controller.ts +53 -46
- package/libs/src/app.module.ts +13 -10
- package/libs/src/backup/backup.module.ts +2 -2
- package/libs/src/backup/backup.service.ts +60 -69
- package/libs/src/backup/backup.worker.ts +35 -0
- package/libs/src/base/dto.ts +46 -0
- package/libs/src/base/index.ts +2 -0
- package/libs/src/base/resolver.ts +20 -0
- package/libs/src/database/database.module.ts +24 -22
- package/libs/src/database/database.repository.ts +47 -50
- package/libs/src/database/database.scheme.ts +2 -2
- package/libs/src/database/database.service.ts +61 -22
- package/libs/src/database/database.transaction.ts +62 -64
- package/libs/src/database/database.uniqueId.ts +39 -8
- package/libs/src/index.ts +3 -1
- package/libs/src/main.ts +8 -18
- package/libs/src/redis/index.ts +2 -0
- package/libs/src/redis/redis.interface.ts +34 -0
- package/libs/src/redis/redis.module.ts +30 -0
- package/libs/src/redis/redis.service.ts +137 -0
- package/libs/src/service/service.ts +48 -68
- package/libs/src/test/test.controller.ts +59 -0
- package/libs/src/test/test.module.ts +8 -4
- package/libs/src/test/test.redis.ts +19 -0
- package/libs/src/test/test.resolver.ts +10 -19
- package/package.json +45 -26
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare class
|
|
1
|
+
export declare class DbBackupModule {
|
|
2
2
|
}
|
|
@@ -6,19 +6,19 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
9
|
+
exports.DbBackupModule = void 0;
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
11
|
const backup_service_1 = require("./backup.service");
|
|
12
12
|
const backup_config_1 = require("./backup.config");
|
|
13
13
|
const zync_nest_library_1 = require("zync-nest-library");
|
|
14
|
-
let
|
|
14
|
+
let DbBackupModule = class DbBackupModule {
|
|
15
15
|
};
|
|
16
|
-
exports.
|
|
17
|
-
exports.
|
|
16
|
+
exports.DbBackupModule = DbBackupModule;
|
|
17
|
+
exports.DbBackupModule = DbBackupModule = __decorate([
|
|
18
18
|
(0, common_1.Module)({
|
|
19
19
|
imports: [zync_nest_library_1.ApUploadModule],
|
|
20
20
|
providers: [backup_service_1.DbBackupService, backup_config_1.DbBackupConfigService],
|
|
21
|
-
exports: [backup_service_1.DbBackupService, backup_config_1.DbBackupConfigService]
|
|
21
|
+
exports: [backup_service_1.DbBackupService, backup_config_1.DbBackupConfigService]
|
|
22
22
|
})
|
|
23
|
-
],
|
|
23
|
+
], DbBackupModule);
|
|
24
24
|
//# sourceMappingURL=backup.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.module.js","sourceRoot":"","sources":["../../libs/src/backup/backup.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAmD;AACnD,mDAAwD;AACxD,yDAAmD;AAO5C,IAAM,
|
|
1
|
+
{"version":3,"file":"backup.module.js","sourceRoot":"","sources":["../../libs/src/backup/backup.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAmD;AACnD,mDAAwD;AACxD,yDAAmD;AAO5C,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,wCAAc;yBAAd,cAAc;IAL1B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,kCAAc,CAAC;QACzB,SAAS,EAAE,CAAC,gCAAe,EAAE,qCAAqB,CAAC;QACnD,OAAO,EAAE,CAAC,gCAAe,EAAE,qCAAqB,CAAC;KAClD,CAAC;GACW,cAAc,CAAG"}
|
|
@@ -7,6 +7,7 @@ export declare class DbBackupService {
|
|
|
7
7
|
private readonly logger;
|
|
8
8
|
constructor(dbConfigService: DbBackupConfigService, uploadService: UploadService);
|
|
9
9
|
runBackup(): Promise<any>;
|
|
10
|
+
runBackupWorker(): Promise<any>;
|
|
10
11
|
createBackup(options: IDbBackupConfig): Promise<any>;
|
|
11
12
|
private validateBackupOptions;
|
|
12
13
|
private ensureDirectoryExists;
|
|
@@ -51,6 +51,9 @@ const path = __importStar(require("path"));
|
|
|
51
51
|
const util_1 = require("util");
|
|
52
52
|
const zync_nest_library_1 = require("zync-nest-library");
|
|
53
53
|
const backup_config_1 = require("./backup.config");
|
|
54
|
+
const schedule_1 = require("@nestjs/schedule");
|
|
55
|
+
const path_1 = require("path");
|
|
56
|
+
const worker_threads_1 = require("worker_threads");
|
|
54
57
|
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
55
58
|
let DbBackupService = DbBackupService_1 = class DbBackupService {
|
|
56
59
|
constructor(dbConfigService, uploadService) {
|
|
@@ -59,11 +62,35 @@ let DbBackupService = DbBackupService_1 = class DbBackupService {
|
|
|
59
62
|
this.logger = new common_1.Logger(DbBackupService_1.name);
|
|
60
63
|
}
|
|
61
64
|
async runBackup() {
|
|
65
|
+
console.log("[DB Backup] Log 1 Starting backup...");
|
|
62
66
|
const config = this.dbConfigService.getBackupConfig();
|
|
63
67
|
if (!config?.backup?.enabled) {
|
|
64
68
|
return;
|
|
65
69
|
}
|
|
66
|
-
|
|
70
|
+
console.log("[DB Backup] Log 2 Config:", config);
|
|
71
|
+
const backup = await this.createBackup(this.dbConfigService.getBackupConfig());
|
|
72
|
+
console.log("[DB Backup] Log 3 Backup:", backup);
|
|
73
|
+
return backup;
|
|
74
|
+
}
|
|
75
|
+
async runBackupWorker() {
|
|
76
|
+
console.log("[DB Backup] Log 4 Running backup worker...");
|
|
77
|
+
return new Promise((resolve, reject) => {
|
|
78
|
+
const workerPath = (0, path_1.join)(__dirname, "backup.worker.js");
|
|
79
|
+
console.log("Worker path:", workerPath);
|
|
80
|
+
const worker = new worker_threads_1.Worker(workerPath);
|
|
81
|
+
worker.on("message", (msg) => {
|
|
82
|
+
this.logger.log(`Worker finished: ${JSON.stringify(msg)}`);
|
|
83
|
+
resolve(void 0);
|
|
84
|
+
});
|
|
85
|
+
worker.on("error", (err) => {
|
|
86
|
+
this.logger.error(`Worker error: ${err.message}`);
|
|
87
|
+
reject(err);
|
|
88
|
+
});
|
|
89
|
+
worker.on("exit", (code) => {
|
|
90
|
+
if (code !== 0)
|
|
91
|
+
this.logger.warn(`Worker exited with code ${code}`);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
67
94
|
}
|
|
68
95
|
async createBackup(options) {
|
|
69
96
|
try {
|
|
@@ -106,18 +133,14 @@ let DbBackupService = DbBackupService_1 = class DbBackupService {
|
|
|
106
133
|
const connectionStrings = Array.isArray(options.mongodb.connectionStrings)
|
|
107
134
|
? options.mongodb.connectionStrings
|
|
108
135
|
: [options.mongodb.connectionStrings];
|
|
109
|
-
if (connectionStrings.length === 0 ||
|
|
110
|
-
connectionStrings.some((cs) => !cs || cs.trim() === "")) {
|
|
136
|
+
if (connectionStrings.length === 0 || connectionStrings.some((cs) => !cs || cs.trim() === "")) {
|
|
111
137
|
throw new Error("At least one valid MongoDB connection string is required");
|
|
112
138
|
}
|
|
113
139
|
if (options?.backup?.uploadToSpace) {
|
|
114
140
|
if (!options.spaces) {
|
|
115
141
|
throw new Error("DigitalOcean Spaces configuration is required");
|
|
116
142
|
}
|
|
117
|
-
if (!options.spaces.name ||
|
|
118
|
-
!options.spaces.key ||
|
|
119
|
-
!options.spaces.secret ||
|
|
120
|
-
!options.spaces.endpoint) {
|
|
143
|
+
if (!options.spaces.name || !options.spaces.key || !options.spaces.secret || !options.spaces.endpoint) {
|
|
121
144
|
throw new Error("DigitalOcean Spaces configuration is incomplete (name, key, secret, endpoint are all required)");
|
|
122
145
|
}
|
|
123
146
|
}
|
|
@@ -161,9 +184,7 @@ let DbBackupService = DbBackupService_1 = class DbBackupService {
|
|
|
161
184
|
throw new Error("DigitalOcean Spaces endpoint is required");
|
|
162
185
|
}
|
|
163
186
|
let endpoint = spacesConfig.endpoint;
|
|
164
|
-
if (endpoint &&
|
|
165
|
-
!endpoint.startsWith("http://") &&
|
|
166
|
-
!endpoint.startsWith("https://")) {
|
|
187
|
+
if (endpoint && !endpoint.startsWith("http://") && !endpoint.startsWith("https://")) {
|
|
167
188
|
endpoint = `https://${endpoint}`;
|
|
168
189
|
}
|
|
169
190
|
const fileContent = await fs_1.promises.readFile(filePath);
|
|
@@ -172,7 +193,7 @@ let DbBackupService = DbBackupService_1 = class DbBackupService {
|
|
|
172
193
|
filename: fileName,
|
|
173
194
|
disableTransformName: true,
|
|
174
195
|
filetype: "application/gzip",
|
|
175
|
-
dir: spacesConfig.dir || "db-backups"
|
|
196
|
+
dir: spacesConfig.dir || "db-backups"
|
|
176
197
|
});
|
|
177
198
|
}
|
|
178
199
|
async cleanup(backupPath, backupDir, maxBackups) {
|
|
@@ -196,7 +217,7 @@ let DbBackupService = DbBackupService_1 = class DbBackupService {
|
|
|
196
217
|
await fs_1.promises.unlink(path.join(backup.dir, file));
|
|
197
218
|
await fs_1.promises.rm(path.join(backup.dir, file?.replace(".tar.gz", "")), {
|
|
198
219
|
recursive: true,
|
|
199
|
-
force: true
|
|
220
|
+
force: true
|
|
200
221
|
});
|
|
201
222
|
}
|
|
202
223
|
this.logger.log(`Removed ${toDelete.length} old backup(s)`);
|
|
@@ -206,10 +227,7 @@ let DbBackupService = DbBackupService_1 = class DbBackupService {
|
|
|
206
227
|
try {
|
|
207
228
|
const cleanUri = connectionString.replace(/^mongodb(\+srv)?:\/\//, "");
|
|
208
229
|
const dbMatch = cleanUri.match(/\/([^/?&]+)(\?|$)/);
|
|
209
|
-
if (dbMatch &&
|
|
210
|
-
dbMatch[1] &&
|
|
211
|
-
dbMatch[1] !== "admin" &&
|
|
212
|
-
dbMatch[1] !== "test") {
|
|
230
|
+
if (dbMatch && dbMatch[1] && dbMatch[1] !== "admin" && dbMatch[1] !== "test") {
|
|
213
231
|
return dbMatch[1];
|
|
214
232
|
}
|
|
215
233
|
return null;
|
|
@@ -221,9 +239,14 @@ let DbBackupService = DbBackupService_1 = class DbBackupService {
|
|
|
221
239
|
}
|
|
222
240
|
};
|
|
223
241
|
exports.DbBackupService = DbBackupService;
|
|
242
|
+
__decorate([
|
|
243
|
+
(0, schedule_1.Cron)(schedule_1.CronExpression.EVERY_30_MINUTES),
|
|
244
|
+
__metadata("design:type", Function),
|
|
245
|
+
__metadata("design:paramtypes", []),
|
|
246
|
+
__metadata("design:returntype", Promise)
|
|
247
|
+
], DbBackupService.prototype, "runBackupWorker", null);
|
|
224
248
|
exports.DbBackupService = DbBackupService = DbBackupService_1 = __decorate([
|
|
225
249
|
(0, common_1.Injectable)(),
|
|
226
|
-
__metadata("design:paramtypes", [backup_config_1.DbBackupConfigService,
|
|
227
|
-
zync_nest_library_1.UploadService])
|
|
250
|
+
__metadata("design:paramtypes", [backup_config_1.DbBackupConfigService, zync_nest_library_1.UploadService])
|
|
228
251
|
], DbBackupService);
|
|
229
252
|
//# sourceMappingURL=backup.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.service.js","sourceRoot":"","sources":["../../libs/src/backup/backup.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,iDAAqC;AACrC,2BAAoC;AACpC,2CAA6B;AAC7B,+BAAiC;AACjC,yDAAkD;AAClD,mDAAwD;
|
|
1
|
+
{"version":3,"file":"backup.service.js","sourceRoot":"","sources":["../../libs/src/backup/backup.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const common_1 = require("@nestjs/common");
|
|
10
|
+
const core_1 = require("@nestjs/core");
|
|
11
|
+
const mongoose_1 = require("@nestjs/mongoose");
|
|
12
|
+
const nest_winston_1 = require("nest-winston");
|
|
13
|
+
const worker_threads_1 = require("worker_threads");
|
|
14
|
+
const backup_module_1 = require("./backup.module");
|
|
15
|
+
const backup_service_1 = require("./backup.service");
|
|
16
|
+
let BackupWorkerModule = class BackupWorkerModule {
|
|
17
|
+
};
|
|
18
|
+
BackupWorkerModule = __decorate([
|
|
19
|
+
(0, common_1.Module)({
|
|
20
|
+
imports: [mongoose_1.MongooseModule.forRoot(process.env.mongodb_url), backup_module_1.DbBackupModule, nest_winston_1.WinstonModule.forRoot({})],
|
|
21
|
+
providers: [],
|
|
22
|
+
exports: []
|
|
23
|
+
})
|
|
24
|
+
], BackupWorkerModule);
|
|
25
|
+
async function bootstrap() {
|
|
26
|
+
console.log("[Sales Worker] Bootstrap started");
|
|
27
|
+
try {
|
|
28
|
+
const app = await core_1.NestFactory.createApplicationContext(BackupWorkerModule, {});
|
|
29
|
+
const backupService = app.get(backup_service_1.DbBackupService);
|
|
30
|
+
await backupService.runBackup();
|
|
31
|
+
worker_threads_1.parentPort?.postMessage({ status: "completed" });
|
|
32
|
+
await app.close();
|
|
33
|
+
process.exit(0);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
console.error("[Sales Worker] Error:", error);
|
|
37
|
+
worker_threads_1.parentPort?.postMessage({ status: "error", message: error?.message, stack: error?.stack });
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (!worker_threads_1.isMainThread)
|
|
42
|
+
bootstrap();
|
|
43
|
+
//# sourceMappingURL=backup.worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.worker.js","sourceRoot":"","sources":["../../libs/src/backup/backup.worker.ts"],"names":[],"mappings":";;;;;;;;AAAA,2CAAwC;AACxC,uCAA2C;AAC3C,+CAAkD;AAClD,+CAA6C;AAC7C,mDAA0D;AAC1D,mDAAiD;AACjD,qDAAmD;AAOnD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;CAAG,CAAA;AAArB,kBAAkB;IALvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,yBAAc,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,8BAAc,EAAE,4BAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrG,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,EAAE;KACZ,CAAC;GACI,kBAAkB,CAAG;AAE3B,KAAK,UAAU,SAAS;IACtB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,wBAAwB,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QAC/E,MAAM,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,gCAAe,CAAC,CAAC;QAE/C,MAAM,aAAa,CAAC,SAAS,EAAE,CAAC;QAEhC,2BAAU,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QACjD,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAC9C,2BAAU,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,CAAC,6BAAY;IAAE,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare class BaseDto {
|
|
2
|
+
_id: string;
|
|
3
|
+
key?: string;
|
|
4
|
+
ref: string;
|
|
5
|
+
refId: string;
|
|
6
|
+
createdAt: number;
|
|
7
|
+
createdBy: string;
|
|
8
|
+
updatedAt: number;
|
|
9
|
+
updatedBy: string;
|
|
10
|
+
canDelete: boolean;
|
|
11
|
+
canUpdate: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare class BasePageInput {
|
|
14
|
+
skip: number;
|
|
15
|
+
take: number;
|
|
16
|
+
keyword: string;
|
|
17
|
+
fromDate: number;
|
|
18
|
+
toDate: number;
|
|
19
|
+
}
|
package/dist/base/dto.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.BasePageInput = exports.BaseDto = void 0;
|
|
13
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
14
|
+
let BaseDto = class BaseDto {
|
|
15
|
+
};
|
|
16
|
+
exports.BaseDto = BaseDto;
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, graphql_1.Field)(() => graphql_1.ID),
|
|
19
|
+
__metadata("design:type", String)
|
|
20
|
+
], BaseDto.prototype, "_id", void 0);
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, graphql_1.Field)({ nullable: true }),
|
|
23
|
+
__metadata("design:type", String)
|
|
24
|
+
], BaseDto.prototype, "key", void 0);
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, graphql_1.Field)({ nullable: true }),
|
|
27
|
+
__metadata("design:type", String)
|
|
28
|
+
], BaseDto.prototype, "ref", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, graphql_1.Field)(() => String, { nullable: true }),
|
|
31
|
+
__metadata("design:type", String)
|
|
32
|
+
], BaseDto.prototype, "refId", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, graphql_1.Field)({ nullable: true }),
|
|
35
|
+
__metadata("design:type", Number)
|
|
36
|
+
], BaseDto.prototype, "createdAt", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, graphql_1.Field)({ nullable: true }),
|
|
39
|
+
__metadata("design:type", String)
|
|
40
|
+
], BaseDto.prototype, "createdBy", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, graphql_1.Field)({ nullable: true }),
|
|
43
|
+
__metadata("design:type", Number)
|
|
44
|
+
], BaseDto.prototype, "updatedAt", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, graphql_1.Field)({ nullable: true }),
|
|
47
|
+
__metadata("design:type", String)
|
|
48
|
+
], BaseDto.prototype, "updatedBy", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, graphql_1.Field)({ nullable: true }),
|
|
51
|
+
__metadata("design:type", Boolean)
|
|
52
|
+
], BaseDto.prototype, "canDelete", void 0);
|
|
53
|
+
__decorate([
|
|
54
|
+
(0, graphql_1.Field)({ nullable: true }),
|
|
55
|
+
__metadata("design:type", Boolean)
|
|
56
|
+
], BaseDto.prototype, "canUpdate", void 0);
|
|
57
|
+
exports.BaseDto = BaseDto = __decorate([
|
|
58
|
+
(0, graphql_1.ObjectType)()
|
|
59
|
+
], BaseDto);
|
|
60
|
+
let BasePageInput = class BasePageInput {
|
|
61
|
+
};
|
|
62
|
+
exports.BasePageInput = BasePageInput;
|
|
63
|
+
__decorate([
|
|
64
|
+
(0, graphql_1.Field)((type) => Number, { nullable: false }),
|
|
65
|
+
__metadata("design:type", Number)
|
|
66
|
+
], BasePageInput.prototype, "skip", void 0);
|
|
67
|
+
__decorate([
|
|
68
|
+
(0, graphql_1.Field)((type) => Number, { nullable: false }),
|
|
69
|
+
__metadata("design:type", Number)
|
|
70
|
+
], BasePageInput.prototype, "take", void 0);
|
|
71
|
+
__decorate([
|
|
72
|
+
(0, graphql_1.Field)((type) => String, { nullable: true }),
|
|
73
|
+
__metadata("design:type", String)
|
|
74
|
+
], BasePageInput.prototype, "keyword", void 0);
|
|
75
|
+
__decorate([
|
|
76
|
+
(0, graphql_1.Field)((type) => Number, { nullable: true }),
|
|
77
|
+
__metadata("design:type", Number)
|
|
78
|
+
], BasePageInput.prototype, "fromDate", void 0);
|
|
79
|
+
__decorate([
|
|
80
|
+
(0, graphql_1.Field)((type) => Number, { nullable: true }),
|
|
81
|
+
__metadata("design:type", Number)
|
|
82
|
+
], BasePageInput.prototype, "toDate", void 0);
|
|
83
|
+
exports.BasePageInput = BasePageInput = __decorate([
|
|
84
|
+
(0, graphql_1.InputType)()
|
|
85
|
+
], BasePageInput);
|
|
86
|
+
//# sourceMappingURL=dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dto.js","sourceRoot":"","sources":["../../libs/src/base/dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AAG5D,IAAM,OAAO,GAAb,MAAM,OAAO;CAyBnB,CAAA;AAzBY,0BAAO;AAElB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,CAAC;;oCACJ;AAGZ;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oCACb;AAGb;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oCACd;AAEZ;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCAC1B;AAEd;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACR;AAElB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACR;AAElB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACR;AAElB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACR;AAGlB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACP;AAGnB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACP;kBAxBR,OAAO;IADnB,IAAA,oBAAU,GAAE;GACA,OAAO,CAyBnB;AAIM,IAAM,aAAa,GAAnB,MAAM,aAAa;CAazB,CAAA;AAbY,sCAAa;AAExB;IADC,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;2CAChC;AAEb;IADC,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;2CAChC;AAEb;IADC,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CAC5B;AAGhB;IADC,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CAC3B;AAGjB;IADC,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC7B;wBAZJ,aAAa;IADzB,IAAA,mBAAS,GAAE;GACC,aAAa,CAazB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./dto"), exports);
|
|
18
|
+
__exportStar(require("./resolver"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../libs/src/base/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,6CAA2B"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ApBaseResolver = void 0;
|
|
16
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
17
|
+
const dto_1 = require("./dto");
|
|
18
|
+
let ApBaseResolver = class ApBaseResolver {
|
|
19
|
+
async key(parent) {
|
|
20
|
+
return parent?.key || parent?._id;
|
|
21
|
+
}
|
|
22
|
+
async canUpdate(parent) {
|
|
23
|
+
return parent.canUpdate == undefined ? true : parent.canUpdate;
|
|
24
|
+
}
|
|
25
|
+
async canDelete(parent) {
|
|
26
|
+
return parent.canDelete == undefined ? true : parent.canDelete;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
exports.ApBaseResolver = ApBaseResolver;
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, graphql_1.ResolveField)((of) => String, { name: "key" }),
|
|
32
|
+
__param(0, (0, graphql_1.Parent)()),
|
|
33
|
+
__metadata("design:type", Function),
|
|
34
|
+
__metadata("design:paramtypes", [dto_1.BaseDto]),
|
|
35
|
+
__metadata("design:returntype", Promise)
|
|
36
|
+
], ApBaseResolver.prototype, "key", null);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, graphql_1.ResolveField)((of) => Boolean, { name: "canUpdate" }),
|
|
39
|
+
__param(0, (0, graphql_1.Parent)()),
|
|
40
|
+
__metadata("design:type", Function),
|
|
41
|
+
__metadata("design:paramtypes", [dto_1.BaseDto]),
|
|
42
|
+
__metadata("design:returntype", Promise)
|
|
43
|
+
], ApBaseResolver.prototype, "canUpdate", null);
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, graphql_1.ResolveField)((of) => Boolean, { name: "canDelete" }),
|
|
46
|
+
__param(0, (0, graphql_1.Parent)()),
|
|
47
|
+
__metadata("design:type", Function),
|
|
48
|
+
__metadata("design:paramtypes", [dto_1.BaseDto]),
|
|
49
|
+
__metadata("design:returntype", Promise)
|
|
50
|
+
], ApBaseResolver.prototype, "canDelete", null);
|
|
51
|
+
exports.ApBaseResolver = ApBaseResolver = __decorate([
|
|
52
|
+
(0, graphql_1.Resolver)((of) => dto_1.BaseDto)
|
|
53
|
+
], ApBaseResolver);
|
|
54
|
+
//# sourceMappingURL=resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../libs/src/base/resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAiE;AACjE,+BAAgC;AAGzB,IAAM,cAAc,GAApB,MAAM,cAAc;IAEZ,AAAN,KAAK,CAAC,GAAG,CAAW,MAAe;QACxC,OAAO,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,CAAC;IACpC,CAAC;IAGY,AAAN,KAAK,CAAC,SAAS,CAAW,MAAe;QAC9C,OAAO,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;IACjE,CAAC;IAGY,AAAN,KAAK,CAAC,SAAS,CAAW,MAAe;QAC9C,OAAO,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;IACjE,CAAC;CACF,CAAA;AAfY,wCAAc;AAEZ;IADZ,IAAA,sBAAY,EAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC5B,WAAA,IAAA,gBAAM,GAAE,CAAA;;qCAAS,aAAO;;yCAEzC;AAGY;IADZ,IAAA,sBAAY,EAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC7B,WAAA,IAAA,gBAAM,GAAE,CAAA;;qCAAS,aAAO;;+CAE/C;AAGY;IADZ,IAAA,sBAAY,EAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC7B,WAAA,IAAA,gBAAM,GAAE,CAAA;;qCAAS,aAAO;;+CAE/C;yBAdU,cAAc;IAD1B,IAAA,kBAAQ,EAAC,CAAC,EAAE,EAAE,EAAE,CAAC,aAAO,CAAC;GACb,cAAc,CAe1B"}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { DynamicModule } from "@nestjs/common";
|
|
2
|
+
import { ModelDefinition } from "@nestjs/mongoose";
|
|
3
|
+
export declare const CONNECTION_NAME = "ZYNC_DB_CONNECTION_NAME";
|
|
4
|
+
export declare class DatabaseModule {
|
|
5
|
+
static forFeature(models: ModelDefinition[], connectionName?: string): DynamicModule;
|
|
2
6
|
}
|
|
@@ -5,30 +5,35 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
+
var DatabaseModule_1;
|
|
8
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
10
|
+
exports.DatabaseModule = exports.CONNECTION_NAME = void 0;
|
|
10
11
|
const common_1 = require("@nestjs/common");
|
|
11
12
|
const mongoose_1 = require("@nestjs/mongoose");
|
|
12
13
|
const database_service_1 = require("./database.service");
|
|
13
14
|
const database_transaction_1 = require("./database.transaction");
|
|
14
15
|
const database_uniqueId_1 = require("./database.uniqueId");
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
exports.CONNECTION_NAME = "ZYNC_DB_CONNECTION_NAME";
|
|
17
|
+
let DatabaseModule = DatabaseModule_1 = class DatabaseModule {
|
|
18
|
+
static forFeature(models, connectionName) {
|
|
19
|
+
const MongooseModuleForFeature = connectionName
|
|
20
|
+
? mongoose_1.MongooseModule.forFeature([...models, { name: database_uniqueId_1.UniqueId.name, schema: database_uniqueId_1.UniqueIdSchema }], connectionName)
|
|
21
|
+
: mongoose_1.MongooseModule.forFeature([...models, { name: database_uniqueId_1.UniqueId.name, schema: database_uniqueId_1.UniqueIdSchema }]);
|
|
22
|
+
return {
|
|
23
|
+
module: DatabaseModule_1,
|
|
24
|
+
imports: [MongooseModuleForFeature],
|
|
25
|
+
providers: [
|
|
26
|
+
{ provide: exports.CONNECTION_NAME, useValue: connectionName },
|
|
27
|
+
database_transaction_1.TransactionManager,
|
|
28
|
+
database_uniqueId_1.ApUniqueIdGenerator,
|
|
29
|
+
database_service_1.DatabaseService
|
|
30
|
+
],
|
|
31
|
+
exports: [mongoose_1.MongooseModule, database_transaction_1.TransactionManager, database_uniqueId_1.ApUniqueIdGenerator, database_service_1.DatabaseService]
|
|
32
|
+
};
|
|
33
|
+
}
|
|
18
34
|
};
|
|
19
|
-
exports.
|
|
20
|
-
exports.
|
|
21
|
-
(0, common_1.
|
|
22
|
-
|
|
23
|
-
imports: [
|
|
24
|
-
config_1.ConfigModule.forRoot(),
|
|
25
|
-
mongoose_1.MongooseModule.forRoot(process.env.mongodb_url),
|
|
26
|
-
mongoose_1.MongooseModule.forFeature([
|
|
27
|
-
{ name: database_uniqueId_1.UniqueId.name, schema: database_uniqueId_1.UniqueIdSchema },
|
|
28
|
-
]),
|
|
29
|
-
],
|
|
30
|
-
providers: [database_transaction_1.TransactionManager, database_uniqueId_1.ApUniqueIdGenerator, database_service_1.DatabaseService],
|
|
31
|
-
exports: [database_uniqueId_1.ApUniqueIdGenerator, database_transaction_1.TransactionManager, database_service_1.DatabaseService],
|
|
32
|
-
})
|
|
33
|
-
], ApDatabaseModule);
|
|
35
|
+
exports.DatabaseModule = DatabaseModule;
|
|
36
|
+
exports.DatabaseModule = DatabaseModule = DatabaseModule_1 = __decorate([
|
|
37
|
+
(0, common_1.Module)({})
|
|
38
|
+
], DatabaseModule);
|
|
34
39
|
//# sourceMappingURL=database.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.module.js","sourceRoot":"","sources":["../../libs/src/database/database.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"database.module.js","sourceRoot":"","sources":["../../libs/src/database/database.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,+CAAmE;AACnE,yDAAqD;AACrD,iEAA4D;AAC5D,2DAAoF;AAEvE,QAAA,eAAe,GAAG,yBAAyB,CAAC;AAGlD,IAAM,cAAc,sBAApB,MAAM,cAAc;IACzB,MAAM,CAAC,UAAU,CAAC,MAAyB,EAAE,cAAuB;QAClE,MAAM,wBAAwB,GAAG,cAAc;YAC7C,CAAC,CAAC,yBAAc,CAAC,UAAU,CAAC,CAAC,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,4BAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,kCAAc,EAAE,CAAC,EAAE,cAAc,CAAC;YACzG,CAAC,CAAC,yBAAc,CAAC,UAAU,CAAC,CAAC,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,4BAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,kCAAc,EAAE,CAAC,CAAC,CAAC;QAE5F,OAAO;YACL,MAAM,EAAE,gBAAc;YACtB,OAAO,EAAE,CAAC,wBAAwB,CAAC;YACnC,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,uBAAe,EAAE,QAAQ,EAAE,cAAc,EAAE;gBACtD,yCAAkB;gBAClB,uCAAmB;gBACnB,kCAAe;aAChB;YACD,OAAO,EAAE,CAAC,yBAAc,EAAE,yCAAkB,EAAE,uCAAmB,EAAE,kCAAe,CAAC;SACpF,CAAC;IACJ,CAAC;CACF,CAAA;AAlBY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,cAAc,CAkB1B"}
|
|
@@ -14,8 +14,7 @@ export declare abstract class AbstractBaseRepository<T extends Omit<Document<any
|
|
|
14
14
|
private uniqueIdGenerator;
|
|
15
15
|
constructor(dbModel: SoftDeleteModel<T>);
|
|
16
16
|
protected abstract buildQuery(query: Partial<T>): any;
|
|
17
|
-
abstract mapData(data: any, isCreate: boolean): Promise<T>;
|
|
18
|
-
set session(v: TransactionSession);
|
|
17
|
+
protected abstract mapData?(data: any, isCreate: boolean): Promise<T>;
|
|
19
18
|
get session(): TransactionSession;
|
|
20
19
|
private get hasSession();
|
|
21
20
|
protected mapIds(query: Partial<T>): any;
|
|
@@ -37,6 +36,7 @@ export declare abstract class AbstractBaseRepository<T extends Omit<Document<any
|
|
|
37
36
|
protected _findOne(query: FilterQuery<T>): Promise<T>;
|
|
38
37
|
protected _find(query: FilterQuery<T>): Promise<T[]>;
|
|
39
38
|
protected _update(id: string, data: Partial<T>): Promise<T>;
|
|
39
|
+
private _mapData;
|
|
40
40
|
protected _updateMany(query: Partial<T>, model: Partial<T>): Promise<void>;
|
|
41
41
|
protected _delete(id: string): Promise<void>;
|
|
42
42
|
protected _deleteMany(query: Partial<T>): Promise<void>;
|
|
@@ -51,6 +51,7 @@ export declare abstract class AbstractBaseRepository<T extends Omit<Document<any
|
|
|
51
51
|
}>;
|
|
52
52
|
searchKeys?: string[];
|
|
53
53
|
ignoreKeys?: string[];
|
|
54
|
+
dateKey?: string;
|
|
54
55
|
}, addMatchCondition: (condition: any) => void): void;
|
|
55
56
|
cleanupQuery(andConditions: any[]): {
|
|
56
57
|
$match: any;
|