@declaro/data 2.0.0-beta.98 → 2.0.0-beta.99

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.
Files changed (33) hide show
  1. package/dist/browser/index.js +7 -7
  2. package/dist/browser/index.js.map +3 -3
  3. package/dist/node/index.cjs +59 -17
  4. package/dist/node/index.cjs.map +3 -3
  5. package/dist/node/index.js +59 -17
  6. package/dist/node/index.js.map +3 -3
  7. package/dist/ts/test/mock/repositories/mock-memory-repository.assign.test.d.ts +2 -0
  8. package/dist/ts/test/mock/repositories/mock-memory-repository.assign.test.d.ts.map +1 -0
  9. package/dist/ts/test/mock/repositories/mock-memory-repository.basic.test.d.ts +2 -0
  10. package/dist/ts/test/mock/repositories/mock-memory-repository.basic.test.d.ts.map +1 -0
  11. package/dist/ts/test/mock/repositories/mock-memory-repository.bulk-upsert.test.d.ts +2 -0
  12. package/dist/ts/test/mock/repositories/mock-memory-repository.bulk-upsert.test.d.ts.map +1 -0
  13. package/dist/ts/test/mock/repositories/mock-memory-repository.count.test.d.ts +2 -0
  14. package/dist/ts/test/mock/repositories/mock-memory-repository.count.test.d.ts.map +1 -0
  15. package/dist/ts/test/mock/repositories/mock-memory-repository.custom-lookup.test.d.ts +1 -0
  16. package/dist/ts/test/mock/repositories/mock-memory-repository.custom-lookup.test.d.ts.map +1 -0
  17. package/dist/ts/test/mock/repositories/mock-memory-repository.d.ts.map +1 -1
  18. package/dist/ts/test/mock/repositories/mock-memory-repository.search.test.d.ts +2 -0
  19. package/dist/ts/test/mock/repositories/mock-memory-repository.search.test.d.ts.map +1 -0
  20. package/dist/ts/test/mock/repositories/mock-memory-repository.upsert.test.d.ts +2 -0
  21. package/dist/ts/test/mock/repositories/mock-memory-repository.upsert.test.d.ts.map +1 -0
  22. package/package.json +5 -5
  23. package/src/test/mock/repositories/mock-memory-repository.assign.test.ts +215 -0
  24. package/src/test/mock/repositories/mock-memory-repository.basic.test.ts +129 -0
  25. package/src/test/mock/repositories/mock-memory-repository.bulk-upsert.test.ts +159 -0
  26. package/src/test/mock/repositories/mock-memory-repository.count.test.ts +98 -0
  27. package/src/test/mock/repositories/mock-memory-repository.custom-lookup.test.ts +0 -0
  28. package/src/test/mock/repositories/mock-memory-repository.search.test.ts +265 -0
  29. package/src/test/mock/repositories/mock-memory-repository.ts +67 -16
  30. package/src/test/mock/repositories/mock-memory-repository.upsert.test.ts +108 -0
  31. package/dist/ts/test/mock/repositories/mock-memory-repository.test.d.ts +0 -2
  32. package/dist/ts/test/mock/repositories/mock-memory-repository.test.d.ts.map +0 -1
  33. package/src/test/mock/repositories/mock-memory-repository.test.ts +0 -919
@@ -11371,8 +11371,19 @@ class MockMemoryRepository {
11371
11371
  if (!this.entityMetadata?.primaryKey) {
11372
11372
  throw new Error("Primary key is not defined in the schema metadata");
11373
11373
  }
11374
- const items = await Promise.all(inputs.map((input) => this.data.get(input[this.entityMetadata.primaryKey])));
11375
- return items;
11374
+ const results = [];
11375
+ for (const input of inputs) {
11376
+ let item;
11377
+ if (typeof this.args.lookup === "function") {
11378
+ item = Array.from(this.data.values()).find((data) => this.args.lookup(data, input));
11379
+ } else {
11380
+ item = this.data.get(input[this.entityMetadata.primaryKey]);
11381
+ }
11382
+ if (item) {
11383
+ results.push(item);
11384
+ }
11385
+ }
11386
+ return results;
11376
11387
  }
11377
11388
  async search(input, options) {
11378
11389
  const pagination = options?.pagination || { page: 1, pageSize: 25 };
@@ -11414,24 +11425,44 @@ class MockMemoryRepository {
11414
11425
  if (!this.entityMetadata?.primaryKey) {
11415
11426
  throw new Error("Primary key is not defined in the schema metadata");
11416
11427
  }
11417
- const item = await this.data.get(lookup[this.entityMetadata.primaryKey]);
11428
+ let item;
11429
+ let itemKey;
11430
+ if (typeof this.args.lookup === "function") {
11431
+ item = Array.from(this.data.values()).find((data) => this.args.lookup(data, lookup));
11432
+ if (item) {
11433
+ itemKey = item[this.entityMetadata.primaryKey];
11434
+ }
11435
+ } else {
11436
+ itemKey = lookup[this.entityMetadata.primaryKey];
11437
+ item = this.data.get(itemKey);
11438
+ }
11418
11439
  if (!item) {
11419
11440
  throw new Error("Item not found");
11420
11441
  }
11421
- this.trash.set(lookup[this.entityMetadata.primaryKey], item);
11422
- this.data.delete(lookup[this.entityMetadata.primaryKey]);
11442
+ this.trash.set(itemKey, item);
11443
+ this.data.delete(itemKey);
11423
11444
  return item;
11424
11445
  }
11425
11446
  async restore(lookup) {
11426
11447
  if (!this.entityMetadata?.primaryKey) {
11427
11448
  throw new Error("Primary key is not defined in the schema metadata");
11428
11449
  }
11429
- const item = await this.trash.get(lookup[this.entityMetadata.primaryKey]);
11450
+ let item;
11451
+ let itemKey;
11452
+ if (typeof this.args.lookup === "function") {
11453
+ item = Array.from(this.trash.values()).find((data) => this.args.lookup(data, lookup));
11454
+ if (item) {
11455
+ itemKey = item[this.entityMetadata.primaryKey];
11456
+ }
11457
+ } else {
11458
+ itemKey = lookup[this.entityMetadata.primaryKey];
11459
+ item = this.trash.get(itemKey);
11460
+ }
11430
11461
  if (!item) {
11431
11462
  throw new Error("Item not found in trash");
11432
11463
  }
11433
- this.trash.delete(lookup[this.entityMetadata.primaryKey]);
11434
- this.data.set(lookup[this.entityMetadata.primaryKey], item);
11464
+ this.trash.delete(itemKey);
11465
+ this.data.set(itemKey, item);
11435
11466
  return item;
11436
11467
  }
11437
11468
  async create(input) {
@@ -11454,16 +11485,27 @@ class MockMemoryRepository {
11454
11485
  if (!this.entityMetadata?.primaryKey) {
11455
11486
  throw new Error("Primary key is not defined in the schema metadata");
11456
11487
  }
11457
- const primaryKeyValue = lookup[this.entityMetadata.primaryKey];
11458
- if (!primaryKeyValue) {
11459
- throw new Error("Primary key value must be provided");
11460
- }
11461
- const existingItem = this.data.get(primaryKeyValue);
11462
- if (!existingItem) {
11463
- throw new Error("Item not found");
11488
+ let existingItem;
11489
+ let itemKey;
11490
+ if (typeof this.args.lookup === "function") {
11491
+ existingItem = Array.from(this.data.values()).find((data) => this.args.lookup(data, lookup));
11492
+ if (existingItem) {
11493
+ itemKey = existingItem[this.entityMetadata.primaryKey];
11494
+ } else {
11495
+ throw new Error("Item not found");
11496
+ }
11497
+ } else {
11498
+ itemKey = lookup[this.entityMetadata.primaryKey];
11499
+ if (!itemKey) {
11500
+ throw new Error("Primary key value must be provided");
11501
+ }
11502
+ existingItem = this.data.get(itemKey);
11503
+ if (!existingItem) {
11504
+ throw new Error("Item not found");
11505
+ }
11464
11506
  }
11465
11507
  const updatedItem = this.assignInput(existingItem, input);
11466
- this.data.set(primaryKeyValue, updatedItem);
11508
+ this.data.set(itemKey, updatedItem);
11467
11509
  return updatedItem;
11468
11510
  }
11469
11511
  async count(search, options) {
@@ -11535,5 +11577,5 @@ export {
11535
11577
  BaseModelService
11536
11578
  };
11537
11579
 
11538
- //# debugId=D05B27DAC594136E64756E2164756E21
11580
+ //# debugId=F1F1804B450A753464756E2164756E21
11539
11581
  //# sourceMappingURL=index.js.map