@nest-boot/mikro-orm 7.3.2 → 7.5.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.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const mikro_orm_1 = require("pgvector/mikro-orm");
4
+ const vector_type_1 = require("./vector.type");
5
+ describe("VectorType", () => {
6
+ afterEach(() => {
7
+ jest.restoreAllMocks();
8
+ });
9
+ it("should pass configured dimensions to the base vector type", () => {
10
+ const getColumnType = jest
11
+ .spyOn(mikro_orm_1.VectorType.prototype, "getColumnType")
12
+ .mockReturnValue("vector(1536)");
13
+ const platform = {};
14
+ expect(new vector_type_1.VectorType(1536).getColumnType({
15
+ fieldNames: ["embedding"],
16
+ }, platform)).toBe("vector(1536)");
17
+ expect(getColumnType).toHaveBeenCalledWith({
18
+ dimensions: 1536,
19
+ fieldNames: ["embedding"],
20
+ }, platform);
21
+ });
22
+ it("should allow property dimensions to be used when no dimensions are configured", () => {
23
+ const getColumnType = jest
24
+ .spyOn(mikro_orm_1.VectorType.prototype, "getColumnType")
25
+ .mockReturnValue("vector(768)");
26
+ expect(new vector_type_1.VectorType().getColumnType({
27
+ dimensions: 768,
28
+ }, {})).toBe("vector(768)");
29
+ expect(getColumnType).toHaveBeenCalledWith({
30
+ dimensions: 768,
31
+ }, {});
32
+ });
33
+ });
34
+ //# sourceMappingURL=vector.type.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector.type.spec.js","sourceRoot":"","sources":["../../src/property-types/vector.type.spec.ts"],"names":[],"mappings":";;AAAA,kDAAkE;AAElE,+CAA2C;AAE3C,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,aAAa,GAAG,IAAI;aACvB,KAAK,CAAC,sBAAc,CAAC,SAAS,EAAE,eAAe,CAAC;aAChD,eAAe,CAAC,cAAc,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,EAAW,CAAC;QAE7B,MAAM,CACJ,IAAI,wBAAU,CAAC,IAAI,CAAC,CAAC,aAAa,CAChC;YACE,UAAU,EAAE,CAAC,WAAW,CAAC;SACjB,EACV,QAAQ,CACT,CACF,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEvB,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CACxC;YACE,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,CAAC,WAAW,CAAC;SAC1B,EACD,QAAQ,CACT,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,MAAM,aAAa,GAAG,IAAI;aACvB,KAAK,CAAC,sBAAc,CAAC,SAAS,EAAE,eAAe,CAAC;aAChD,eAAe,CAAC,aAAa,CAAC,CAAC;QAElC,MAAM,CACJ,IAAI,wBAAU,EAAE,CAAC,aAAa,CAC5B;YACE,UAAU,EAAE,GAAG;SACP,EACV,EAAW,CACZ,CACF,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEtB,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CACxC;YACE,UAAU,EAAE,GAAG;SAChB,EACD,EAAE,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -230,21 +230,27 @@ _EntityService_instances = new WeakSet(), _EntityService_getDataLoader_get = fun
230
230
  }
231
231
  return entity;
232
232
  });
233
- entitiesOrErrors.forEach((entityOrError, index) => {
234
- if (entityOrError instanceof Error) {
235
- return entityOrError;
236
- }
237
- const { softDelete } = items[index];
238
- const softDeleteKey = this.options?.softDeleteKey ?? "deletedAt";
239
- if (softDelete && softDeleteKey in entityOrError) {
240
- entityOrError[softDeleteKey] = new Date();
241
- }
242
- else {
243
- this.em.remove(entityOrError);
244
- }
245
- });
246
- await this.em.flush();
247
- return entitiesOrErrors;
233
+ const removeHandler = async () => {
234
+ entitiesOrErrors.forEach((entityOrError, index) => {
235
+ if (entityOrError instanceof Error) {
236
+ return entityOrError;
237
+ }
238
+ const { softDelete } = items[index];
239
+ const softDeleteKey = this.options?.softDeleteKey ?? "deletedAt";
240
+ if (softDelete && softDeleteKey in entityOrError) {
241
+ entityOrError[softDeleteKey] = new Date();
242
+ }
243
+ else {
244
+ this.em.remove(entityOrError);
245
+ }
246
+ });
247
+ await this.em.flush();
248
+ return entitiesOrErrors;
249
+ };
250
+ if (this.em.isInTransaction()) {
251
+ return await removeHandler();
252
+ }
253
+ return await this.em.transactional(removeHandler);
248
254
  }, { cache: false });
249
255
  };
250
256
  //# sourceMappingURL=entity.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity.service.js","sourceRoot":"","sources":["../../src/services/entity.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.service.js","sourceRoot":"","sources":["../../src/services/entity.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@mikro-orm/core");
4
+ const common_1 = require("@nestjs/common");
5
+ const entity_service_1 = require("./entity.service");
6
+ class TestEntity {
7
+ }
8
+ function createEntity(id, data = {}) {
9
+ return Object.assign(new TestEntity(), {
10
+ id,
11
+ ...data,
12
+ });
13
+ }
14
+ function createEntityManager() {
15
+ const getById = jest.fn();
16
+ const em = {
17
+ assign: jest.fn(),
18
+ count: jest.fn(),
19
+ create: jest.fn((_entityClass, data) => createEntity(data.id, data)),
20
+ find: jest.fn(),
21
+ findOne: jest.fn(),
22
+ flush: jest.fn(),
23
+ getUnitOfWork: jest.fn(() => ({
24
+ getById,
25
+ })),
26
+ isInTransaction: jest.fn(() => false),
27
+ remove: jest.fn(),
28
+ transactional: jest.fn(async (handler) => await handler()),
29
+ };
30
+ return {
31
+ em: em,
32
+ getById,
33
+ mocks: em,
34
+ };
35
+ }
36
+ describe("EntityService", () => {
37
+ it("should create and flush an entity", async () => {
38
+ const { em, mocks } = createEntityManager();
39
+ const service = new entity_service_1.EntityService(TestEntity, em);
40
+ await expect(service.create({
41
+ id: 1,
42
+ name: "created",
43
+ })).resolves.toMatchObject({
44
+ id: 1,
45
+ name: "created",
46
+ });
47
+ expect(mocks.create).toHaveBeenCalledWith(TestEntity, {
48
+ id: 1,
49
+ name: "created",
50
+ }, {
51
+ persist: true,
52
+ });
53
+ expect(mocks.flush).toHaveBeenCalledTimes(1);
54
+ });
55
+ it("should find one entity by plain filter query", async () => {
56
+ const { em, mocks } = createEntityManager();
57
+ const entity = createEntity(1);
58
+ mocks.findOne.mockResolvedValue(entity);
59
+ const service = new entity_service_1.EntityService(TestEntity, em);
60
+ await expect(service.findOne({
61
+ name: "found",
62
+ })).resolves.toBe(entity);
63
+ expect(mocks.findOne).toHaveBeenCalledWith(TestEntity, {
64
+ name: "found",
65
+ });
66
+ });
67
+ it("should find one entity by id from unit of work", async () => {
68
+ const { em, getById, mocks } = createEntityManager();
69
+ const entity = createEntity(1);
70
+ getById.mockReturnValue(entity);
71
+ const service = new entity_service_1.EntityService(TestEntity, em);
72
+ await expect(service.findOne(1)).resolves.toBe(entity);
73
+ expect(getById).toHaveBeenCalledWith("TestEntity", 1);
74
+ expect(mocks.find).not.toHaveBeenCalled();
75
+ });
76
+ it("should fetch an entity by id when it is not in unit of work", async () => {
77
+ const { em, mocks } = createEntityManager();
78
+ const entity = createEntity(2);
79
+ mocks.find.mockResolvedValue([entity]);
80
+ const service = new entity_service_1.EntityService(TestEntity, em);
81
+ await expect(service.findOne(2)).resolves.toBe(entity);
82
+ expect(mocks.find).toHaveBeenCalledWith(TestEntity, {
83
+ id: {
84
+ $in: [2],
85
+ },
86
+ }, {
87
+ limit: 1,
88
+ });
89
+ });
90
+ it("should resolve entity references by their id", async () => {
91
+ const { em, mocks } = createEntityManager();
92
+ const entity = createEntity(3);
93
+ mocks.find.mockResolvedValue([entity]);
94
+ const service = new entity_service_1.EntityService(TestEntity, em);
95
+ await expect(service.findOne(createEntity(3))).resolves.toBe(entity);
96
+ });
97
+ it("should throw when findOneOrFail cannot find an entity", async () => {
98
+ const { em, mocks } = createEntityManager();
99
+ mocks.find.mockResolvedValue([]);
100
+ const service = new entity_service_1.EntityService(TestEntity, em);
101
+ await expect(service.findOneOrFail(404)).rejects.toBeInstanceOf(common_1.NotFoundException);
102
+ });
103
+ it("should pass through findAll and count calls", async () => {
104
+ const { em, mocks } = createEntityManager();
105
+ const entities = [createEntity(1)];
106
+ mocks.find.mockResolvedValue(entities);
107
+ mocks.count.mockResolvedValue(1);
108
+ const service = new entity_service_1.EntityService(TestEntity, em);
109
+ await expect(service.findAll({ name: "a" }, { limit: 5 })).resolves.toBe(entities);
110
+ await expect(service.count({ name: "a" }, { schema: "tenant_a" })).resolves.toBe(1);
111
+ expect(mocks.find).toHaveBeenCalledWith(TestEntity, {
112
+ name: "a",
113
+ }, {
114
+ limit: 5,
115
+ });
116
+ expect(mocks.count).toHaveBeenCalledWith(TestEntity, {
117
+ name: "a",
118
+ }, {
119
+ schema: "tenant_a",
120
+ });
121
+ });
122
+ it("should update existing entities and ignore undefined values", async () => {
123
+ const { em, mocks } = createEntityManager();
124
+ const entity = createEntity(1, {
125
+ name: "old",
126
+ });
127
+ mocks.find.mockResolvedValue([entity]);
128
+ const service = new entity_service_1.EntityService(TestEntity, em);
129
+ const options = {
130
+ mergeObjectProperties: true,
131
+ };
132
+ await expect(service.update(1, {
133
+ deletedAt: undefined,
134
+ name: "new",
135
+ }, options)).resolves.toBe(entity);
136
+ expect(mocks.assign).toHaveBeenCalledWith(entity, {
137
+ name: "new",
138
+ }, options);
139
+ expect(mocks.flush).toHaveBeenCalledTimes(1);
140
+ });
141
+ it("should throw when update cannot find an entity", async () => {
142
+ const { em, mocks } = createEntityManager();
143
+ mocks.find.mockResolvedValue([]);
144
+ const service = new entity_service_1.EntityService(TestEntity, em);
145
+ await expect(service.update(404, {
146
+ name: "missing",
147
+ })).rejects.toBeInstanceOf(common_1.NotFoundException);
148
+ });
149
+ it("should soft-delete entities when the soft-delete key exists", async () => {
150
+ const { em, mocks } = createEntityManager();
151
+ const entity = createEntity(1, {
152
+ deletedAt: undefined,
153
+ });
154
+ mocks.find.mockResolvedValue([entity]);
155
+ const service = new entity_service_1.EntityService(TestEntity, em);
156
+ await expect(service.remove(1)).resolves.toBe(entity);
157
+ expect(entity.deletedAt).toBeInstanceOf(Date);
158
+ expect(mocks.remove).not.toHaveBeenCalled();
159
+ expect(mocks.transactional).toHaveBeenCalledTimes(1);
160
+ });
161
+ it("should remove entities directly inside an existing transaction", async () => {
162
+ const { em, mocks } = createEntityManager();
163
+ const entity = createEntity(1);
164
+ mocks.find.mockResolvedValue([entity]);
165
+ mocks.isInTransaction.mockReturnValue(true);
166
+ const service = new entity_service_1.EntityService(TestEntity, em);
167
+ await expect(service.remove(1, false)).resolves.toBe(entity);
168
+ expect(mocks.remove).toHaveBeenCalledWith(entity);
169
+ expect(mocks.transactional).not.toHaveBeenCalled();
170
+ });
171
+ it("should throw when remove cannot find an entity", async () => {
172
+ const { em, mocks } = createEntityManager();
173
+ mocks.find.mockResolvedValue([]);
174
+ const service = new entity_service_1.EntityService(TestEntity, em);
175
+ await expect(service.remove(404)).rejects.toBeInstanceOf(common_1.NotFoundException);
176
+ });
177
+ it("should iterate entities by id chunks", async () => {
178
+ const { em, mocks } = createEntityManager();
179
+ const firstChunk = [createEntity(1), createEntity(2)];
180
+ const secondChunk = [createEntity(3)];
181
+ mocks.find
182
+ .mockResolvedValueOnce(firstChunk)
183
+ .mockResolvedValueOnce(secondChunk);
184
+ const callback = jest.fn();
185
+ const service = new entity_service_1.EntityService(TestEntity, em);
186
+ await expect(service.chunkById({
187
+ name: "active",
188
+ }, {
189
+ limit: 2,
190
+ }, callback)).resolves.toBe(service);
191
+ expect(callback).toHaveBeenNthCalledWith(1, firstChunk);
192
+ expect(callback).toHaveBeenNthCalledWith(2, secondChunk);
193
+ expect(mocks.find).toHaveBeenNthCalledWith(2, TestEntity, {
194
+ $and: [
195
+ {
196
+ name: "active",
197
+ },
198
+ {
199
+ id: {
200
+ $gt: 2,
201
+ },
202
+ },
203
+ ],
204
+ }, {
205
+ limit: 2,
206
+ orderBy: {
207
+ id: core_1.QueryOrder.ASC,
208
+ },
209
+ });
210
+ });
211
+ });
212
+ //# sourceMappingURL=entity.service.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.service.spec.js","sourceRoot":"","sources":["../../src/services/entity.service.spec.ts"],"names":[],"mappings":"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"}