@nest-boot/mikro-orm 7.0.0-beta.11

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 nest-boot
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,5 @@
1
+ export { MikroOrmModuleOptions } from "./interfaces";
2
+ export { MikroOrmModule } from "./mikro-orm.module";
3
+ export * from "./services/entity.service";
4
+ export * from "./utils/load-config-from-env.util";
5
+ export * from "@mikro-orm/nestjs";
package/dist/index.js ADDED
@@ -0,0 +1,23 @@
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
+ exports.MikroOrmModule = void 0;
18
+ var mikro_orm_module_1 = require("./mikro-orm.module");
19
+ Object.defineProperty(exports, "MikroOrmModule", { enumerable: true, get: function () { return mikro_orm_module_1.MikroOrmModule; } });
20
+ __exportStar(require("./services/entity.service"), exports);
21
+ __exportStar(require("./utils/load-config-from-env.util"), exports);
22
+ __exportStar(require("@mikro-orm/nestjs"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AACvB,4DAA0C;AAC1C,oEAAkD;AAClD,oDAAkC"}
@@ -0,0 +1 @@
1
+ export * from "./mikro-orm-module-options.interface";
@@ -0,0 +1,18 @@
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("./mikro-orm-module-options.interface"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uEAAqD"}
@@ -0,0 +1,2 @@
1
+ import { MikroOrmModuleOptions as BaseMikroOrmModuleOptions } from "@mikro-orm/nestjs";
2
+ export type MikroOrmModuleOptions = Omit<BaseMikroOrmModuleOptions, "registerRequestContext">;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=mikro-orm-module-options.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mikro-orm-module-options.interface.js","sourceRoot":"","sources":["../../src/interfaces/mikro-orm-module-options.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { MikroOrmModuleOptions } from "./interfaces/mikro-orm-module-options.interface";
2
+ export declare const ConfigurableModuleClass: import("@nestjs/common").ConfigurableModuleCls<MikroOrmModuleOptions, "forRoot", "create", {}>, MODULE_OPTIONS_TOKEN: string | symbol, OPTIONS_TYPE: MikroOrmModuleOptions & Partial<{}>, ASYNC_OPTIONS_TYPE: import("@nestjs/common").ConfigurableModuleAsyncOptions<MikroOrmModuleOptions, "create"> & Partial<{}>;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ASYNC_OPTIONS_TYPE = exports.OPTIONS_TYPE = exports.MODULE_OPTIONS_TOKEN = exports.ConfigurableModuleClass = void 0;
5
+ const common_1 = require("@nestjs/common");
6
+ _a = new common_1.ConfigurableModuleBuilder()
7
+ .setClassMethodName("forRoot")
8
+ .build(), exports.ConfigurableModuleClass = _a.ConfigurableModuleClass, exports.MODULE_OPTIONS_TOKEN = _a.MODULE_OPTIONS_TOKEN, exports.OPTIONS_TYPE = _a.OPTIONS_TYPE, exports.ASYNC_OPTIONS_TYPE = _a.ASYNC_OPTIONS_TYPE;
9
+ //# sourceMappingURL=mikro-orm.module-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mikro-orm.module-definition.js","sourceRoot":"","sources":["../src/mikro-orm.module-definition.ts"],"names":[],"mappings":";;;;AAAA,2CAA2D;AAI9C,KAKT,IAAI,kCAAyB,EAAyB;KACvD,kBAAkB,CAAC,SAAS,CAAC;KAC7B,KAAK,EAAE,EANR,+BAAuB,+BACvB,4BAAoB,4BACpB,oBAAY,oBACZ,0BAAkB,yBAGT"}
@@ -0,0 +1,16 @@
1
+ import { MikroORM } from "@mikro-orm/core";
2
+ import { MikroOrmModule as BaseMikroOrmModule } from "@mikro-orm/nestjs";
3
+ import { DynamicModule, OnModuleInit } from "@nestjs/common";
4
+ import { MikroOrmModuleOptions } from "./interfaces/mikro-orm-module-options.interface";
5
+ import { ASYNC_OPTIONS_TYPE, ConfigurableModuleClass, OPTIONS_TYPE } from "./mikro-orm.module-definition";
6
+ export declare class MikroOrmModule extends ConfigurableModuleClass implements OnModuleInit {
7
+ private readonly orm;
8
+ constructor(orm: MikroORM);
9
+ private static patchDynamicModule;
10
+ static forRoot(options: typeof OPTIONS_TYPE): DynamicModule;
11
+ static forRootAsync(options: typeof ASYNC_OPTIONS_TYPE & Pick<MikroOrmModuleOptions, "driver">): DynamicModule;
12
+ static forFeature(...args: Parameters<typeof BaseMikroOrmModule.forFeature>): DynamicModule;
13
+ static forMiddleware(...args: Parameters<typeof BaseMikroOrmModule.forMiddleware>): DynamicModule;
14
+ static clearStorage(...args: Parameters<typeof BaseMikroOrmModule.clearStorage>): void;
15
+ onModuleInit(): void;
16
+ }
@@ -0,0 +1,73 @@
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.MikroOrmModule = void 0;
13
+ const core_1 = require("@mikro-orm/core");
14
+ const nestjs_1 = require("@mikro-orm/nestjs");
15
+ const request_context_1 = require("@nest-boot/request-context");
16
+ const common_1 = require("@nestjs/common");
17
+ const mikro_orm_module_definition_1 = require("./mikro-orm.module-definition");
18
+ const load_config_from_env_util_1 = require("./utils/load-config-from-env.util");
19
+ let MikroOrmModule = class MikroOrmModule extends mikro_orm_module_definition_1.ConfigurableModuleClass {
20
+ constructor(orm) {
21
+ super();
22
+ this.orm = orm;
23
+ }
24
+ static patchDynamicModule(dynamicModule) {
25
+ dynamicModule.exports = [mikro_orm_module_definition_1.MODULE_OPTIONS_TOKEN];
26
+ return dynamicModule;
27
+ }
28
+ static forRoot(options) {
29
+ return this.patchDynamicModule(super.forRoot(options));
30
+ }
31
+ static forRootAsync(options) {
32
+ return this.patchDynamicModule(super.forRootAsync(options));
33
+ }
34
+ static forFeature(...args) {
35
+ return nestjs_1.MikroOrmModule.forFeature(...args);
36
+ }
37
+ static forMiddleware(...args) {
38
+ return nestjs_1.MikroOrmModule.forMiddleware(...args);
39
+ }
40
+ static clearStorage(...args) {
41
+ // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression
42
+ return nestjs_1.MikroOrmModule.clearStorage(...args);
43
+ }
44
+ onModuleInit() {
45
+ request_context_1.RequestContext.registerMiddleware("mikro-orm", (ctx, next) => {
46
+ return core_1.RequestContext.create(this.orm.em, () => {
47
+ ctx.set(core_1.EntityManager, this.orm.em);
48
+ return next();
49
+ });
50
+ });
51
+ }
52
+ };
53
+ exports.MikroOrmModule = MikroOrmModule;
54
+ exports.MikroOrmModule = MikroOrmModule = __decorate([
55
+ (0, common_1.Global)(),
56
+ (0, common_1.Module)({
57
+ imports: [
58
+ request_context_1.RequestContextModule,
59
+ nestjs_1.MikroOrmModule.forRootAsync({
60
+ inject: [{ token: mikro_orm_module_definition_1.MODULE_OPTIONS_TOKEN, optional: true }],
61
+ useFactory: async (options = {}) => {
62
+ return {
63
+ registerRequestContext: false,
64
+ ...(await (0, load_config_from_env_util_1.loadConfigFromEnv)()),
65
+ ...options,
66
+ };
67
+ },
68
+ }),
69
+ ],
70
+ }),
71
+ __metadata("design:paramtypes", [core_1.MikroORM])
72
+ ], MikroOrmModule);
73
+ //# sourceMappingURL=mikro-orm.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mikro-orm.module.js","sourceRoot":"","sources":["../src/mikro-orm.module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAIyB;AACzB,8CAAyE;AACzE,gEAGoC;AACpC,2CAA6E;AAG7E,+EAKuC;AACvC,iFAAsE;AAkB/D,IAAM,cAAc,GAApB,MAAM,cACX,SAAQ,qDAAuB;IAG/B,YAA6B,GAAa;QACxC,KAAK,EAAE,CAAC;QADmB,QAAG,GAAH,GAAG,CAAU;IAE1C,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,aAA4B;QAC5D,aAAa,CAAC,OAAO,GAAG,CAAC,kDAAoB,CAAC,CAAC;QAC/C,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,OAA4B;QACzC,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,YAAY,CACjB,OAA0E;QAE1E,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,IAAsD;QACzE,OAAO,uBAAkB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,aAAa,CAClB,GAAG,IAAyD;QAE5D,OAAO,uBAAkB,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,YAAY,CACjB,GAAG,IAAwD;QAE3D,2EAA2E;QAC3E,OAAO,uBAAkB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,YAAY;QACV,gCAAc,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAC3D,OAAO,qBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE;gBAClD,GAAG,CAAC,GAAG,CAAC,oBAAa,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACpC,OAAO,IAAI,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAhDY,wCAAc;yBAAd,cAAc;IAhB1B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,sCAAoB;YACpB,uBAAkB,CAAC,YAAY,CAAC;gBAC9B,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,kDAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACzD,UAAU,EAAE,KAAK,EAAE,UAAiC,EAAE,EAAE,EAAE;oBACxD,OAAO;wBACL,sBAAsB,EAAE,KAAK;wBAC7B,GAAG,CAAC,MAAM,IAAA,6CAAiB,GAAE,CAAC;wBAC9B,GAAG,OAAO;qBACX,CAAC;gBACJ,CAAC;aACF,CAAC;SACH;KACF,CAAC;qCAKkC,eAAQ;GAJ/B,cAAc,CAgD1B"}
@@ -0,0 +1,22 @@
1
+ import { type AssignOptions, type EntityData, type EntityDTO, EntityManager, type ExpandQuery, FilterQuery, FindOptions, type FromEntityType, type IsSubset, type Loaded, type PopulatePath } from "@mikro-orm/core";
2
+ import type { RequiredEntityData } from "@mikro-orm/core/typings";
3
+ import { Type } from "@nestjs/common";
4
+ export interface IdEntity {
5
+ id: number | string | bigint;
6
+ }
7
+ export type IdOrEntity<Entity extends IdEntity> = IdEntity["id"] | Entity;
8
+ export type ChunkByIdOptions<Entity, Hint extends string = never, Fields extends string = PopulatePath.ALL, Excludes extends string = never> = Omit<FindOptions<Entity, Hint, Fields, Excludes>, "offset" | "orderBy">;
9
+ export declare class EntityService<Entity extends IdEntity> {
10
+ #private;
11
+ protected readonly entityClass: Type<Entity>;
12
+ protected readonly em: EntityManager;
13
+ constructor(entityClass: Type<Entity>, em: EntityManager);
14
+ create(data: RequiredEntityData<Entity>): Promise<Entity>;
15
+ findOne(idOrEntityOrWhere: IdOrEntity<Entity> | FilterQuery<Entity>): Promise<Entity | null>;
16
+ findOneOrFail(idOrEntityOrWhere: IdOrEntity<Entity> | FilterQuery<Entity>): Promise<Entity>;
17
+ findAll(where: FilterQuery<Entity>, options?: FindOptions<Entity>): Promise<Entity[]>;
18
+ count(where: FilterQuery<Entity>, options?: FindOptions<Entity>): Promise<number>;
19
+ update<Naked extends FromEntityType<Entity> = FromEntityType<Entity>, Convert extends boolean = false, Data extends EntityData<Naked, Convert> | Partial<EntityDTO<Naked>> = EntityData<Naked, Convert> | Partial<EntityDTO<Naked>>>(idOrEntity: IdOrEntity<Entity>, data: Data & IsSubset<EntityData<Naked, Convert>, Data>, options?: AssignOptions<Convert>): Promise<Entity>;
20
+ remove(idOrEntity: IdOrEntity<Entity>): Promise<Entity>;
21
+ chunkById<Hint extends string = never, Fields extends string = PopulatePath.ALL, Excludes extends string = never>(where: ExpandQuery<Entity>, options: ChunkByIdOptions<Entity, Hint, Fields, Excludes>, callback: (entities: Loaded<Entity, Hint, Fields, Excludes>[]) => Promise<void>): Promise<this>;
22
+ }
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
7
+ var __importDefault = (this && this.__importDefault) || function (mod) {
8
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9
+ };
10
+ var _EntityService_instances, _EntityService_getDataLoader_get, _EntityService_createDataLoader_get, _EntityService_updateDataLoader_get, _EntityService_removeDataLoader_get;
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.EntityService = void 0;
13
+ const core_1 = require("@mikro-orm/core");
14
+ const common_1 = require("@nestjs/common");
15
+ const dataloader_1 = __importDefault(require("dataloader"));
16
+ const lodash_1 = __importDefault(require("lodash"));
17
+ class EntityService {
18
+ constructor(entityClass, em) {
19
+ _EntityService_instances.add(this);
20
+ this.entityClass = entityClass;
21
+ this.em = em;
22
+ }
23
+ create(data) {
24
+ return __classPrivateFieldGet(this, _EntityService_instances, "a", _EntityService_createDataLoader_get).load(data);
25
+ }
26
+ async findOne(idOrEntityOrWhere) {
27
+ if (lodash_1.default.isPlainObject(idOrEntityOrWhere)) {
28
+ return await this.em.findOne(this.entityClass, idOrEntityOrWhere);
29
+ }
30
+ else {
31
+ return await __classPrivateFieldGet(this, _EntityService_instances, "a", _EntityService_getDataLoader_get).load(idOrEntityOrWhere);
32
+ }
33
+ }
34
+ async findOneOrFail(idOrEntityOrWhere) {
35
+ const entity = await this.findOne(idOrEntityOrWhere);
36
+ if (entity === null) {
37
+ throw new common_1.NotFoundException(`${lodash_1.default.capitalize(this.entityClass.name)} not found`);
38
+ }
39
+ return entity;
40
+ }
41
+ async findAll(where, options) {
42
+ return await this.em.find(this.entityClass, where, options);
43
+ }
44
+ async count(where, options) {
45
+ return await this.em.count(this.entityClass, where, options);
46
+ }
47
+ async update(idOrEntity, data, options) {
48
+ const entity = await __classPrivateFieldGet(this, _EntityService_instances, "a", _EntityService_updateDataLoader_get).load({
49
+ idOrEntity,
50
+ data,
51
+ options,
52
+ });
53
+ if (entity instanceof Error) {
54
+ throw entity;
55
+ }
56
+ return entity;
57
+ }
58
+ async remove(idOrEntity) {
59
+ const entity = await __classPrivateFieldGet(this, _EntityService_instances, "a", _EntityService_removeDataLoader_get).load(idOrEntity);
60
+ if (entity instanceof Error) {
61
+ throw entity;
62
+ }
63
+ return entity;
64
+ }
65
+ async chunkById(where, options, callback) {
66
+ let lastId;
67
+ let count = 0;
68
+ do {
69
+ const entities = await this.em.find(this.entityClass, {
70
+ $and: [
71
+ where,
72
+ ...(typeof lastId !== "undefined" ? [{ id: { $gt: lastId } }] : []),
73
+ ],
74
+ }, {
75
+ ...options,
76
+ orderBy: { id: core_1.QueryOrder.ASC },
77
+ });
78
+ count = entities.length;
79
+ if (count > 0) {
80
+ lastId = entities[count - 1]?.id;
81
+ }
82
+ else {
83
+ break;
84
+ }
85
+ await callback(entities);
86
+ } while (count === (options.limit ?? 0));
87
+ return this;
88
+ }
89
+ }
90
+ exports.EntityService = EntityService;
91
+ _EntityService_instances = new WeakSet(), _EntityService_getDataLoader_get = function _EntityService_getDataLoader_get() {
92
+ return new dataloader_1.default(async (idsOrEntities) => {
93
+ const ids = idsOrEntities.filter((idOrEntity) => typeof idOrEntity !== "object");
94
+ const entities = await this.em.find(this.entityClass, {
95
+ id: { $in: ids },
96
+ }, { limit: ids.length });
97
+ return idsOrEntities.map((idOrEntity) => {
98
+ if (typeof idOrEntity === "object") {
99
+ return idOrEntity;
100
+ }
101
+ return entities.find((entity) => entity.id === idOrEntity) ?? null;
102
+ });
103
+ }, { cache: false });
104
+ }, _EntityService_createDataLoader_get = function _EntityService_createDataLoader_get() {
105
+ return new dataloader_1.default(async (data) => {
106
+ const entities = data.map((item) => {
107
+ return this.em.create(this.entityClass, item, {
108
+ persist: true,
109
+ });
110
+ });
111
+ await this.em.flush();
112
+ return entities;
113
+ }, { cache: false });
114
+ }, _EntityService_updateDataLoader_get = function _EntityService_updateDataLoader_get() {
115
+ return new dataloader_1.default(async (items) => {
116
+ const entitiesOrErrors = (await Promise.all(items.map(({ idOrEntity }) => this.findOne(idOrEntity)))).map((entity) => {
117
+ if (entity === null) {
118
+ return new common_1.NotFoundException(`${this.entityClass.name.toLowerCase()}.not_found`);
119
+ }
120
+ return entity;
121
+ });
122
+ entitiesOrErrors.forEach((entityOrError, index) => {
123
+ if (entityOrError instanceof Error) {
124
+ return entityOrError;
125
+ }
126
+ const { data, options } = items[index];
127
+ // 过滤掉 undefined 的值
128
+ const filteredData = Object.fromEntries(Object.entries(data).filter(([, value]) => value !== undefined));
129
+ this.em.assign(entityOrError, filteredData, options);
130
+ });
131
+ await this.em.flush();
132
+ return entitiesOrErrors;
133
+ }, { cache: false });
134
+ }, _EntityService_removeDataLoader_get = function _EntityService_removeDataLoader_get() {
135
+ return new dataloader_1.default(async (idsOrEntities) => {
136
+ const entitiesOrErrors = (await Promise.all(idsOrEntities.map((idOrEntity) => this.findOne(idOrEntity)))).map((entity) => {
137
+ if (entity === null) {
138
+ return new common_1.NotFoundException(`${this.entityClass.name.toLowerCase()}.not_found`);
139
+ }
140
+ this.em.remove(entity);
141
+ return entity;
142
+ });
143
+ await this.em.flush();
144
+ return entitiesOrErrors;
145
+ }, { cache: false });
146
+ };
147
+ //# sourceMappingURL=entity.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.service.js","sourceRoot":"","sources":["../../src/services/entity.service.ts"],"names":[],"mappings":"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"}