@common-stack/store-mongo 6.0.6-alpha.91 → 6.0.8-alpha.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.
@@ -8,7 +8,7 @@
8
8
  this.service = service;
9
9
  }
10
10
  withOptions = new DataLoader(async (options) => {
11
- const [{ searchKey, ...rest }] = options;
11
+ const [{ searchKey, comparator, ...rest }] = options;
12
12
  const ids = options.map((option) => option.id);
13
13
  const results = await this.service.getAll({
14
14
  ...rest,
@@ -17,7 +17,11 @@
17
17
  [searchKey]: { $in: ids },
18
18
  },
19
19
  });
20
- return ids.map((modelId) => results.filter((item) => item[searchKey].toString() === modelId.toString()));
20
+ return ids.map((modelId) => results.filter((item) => {
21
+ if (typeof comparator === 'function')
22
+ return comparator(modelId, item);
23
+ return item[searchKey].toString() === modelId.toString();
24
+ }));
21
25
  });
22
26
  };
23
27
  exports.BulkDataLoader = tslib.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"bulk-dataloader.cjs","sources":["../../src/dataloaders/bulk-dataloader.ts"],"sourcesContent":[null],"names":["BulkDataLoader","__decorate","injectable","__param","unmanaged"],"mappings":"wGAKaA,sBAAc,GAApB,MAAM,cAAyC,SAAQ,UAA4B,CAAA;AAC5C,IAAA,OAAA,CAAA;AAA1C,IAAA,WAAA,CAA0C,OAAwB,EAAA;AAC9D,QAAA,KAAK,CAAC,OAAO,GAAa,KAAI;YAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AAC5E,SAAC,CAAC,CAAC;QAJmC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAiB;KAKjE;IAED,WAAW,GAAG,IAAI,UAAU,CAA4B,OAAO,OAAO,KAAI;QACtE,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;AACzC,QAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACtC,YAAA,GAAG,IAAI;AACP,YAAA,QAAQ,EAAE;gBACN,GAAG,IAAI,CAAC,QAAQ;AAChB,gBAAA,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC5B,aAAA;AACJ,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC7G,KAAC,CAAC,CAAC;EACN;AApBYA,sBAAc,GAAAC,gBAAA,CAAA;AAD1B,IAAAC,oBAAU,EAAE;IAEIC,aAAA,CAAA,CAAA,EAAAC,mBAAS,EAAE,CAAA;;AADf,CAAA,EAAAJ,sBAAc,CAoB1B"}
1
+ {"version":3,"file":"bulk-dataloader.cjs","sources":["../../src/dataloaders/bulk-dataloader.ts"],"sourcesContent":[null],"names":["BulkDataLoader","__decorate","injectable","__param","unmanaged"],"mappings":"wGAKaA,sBAAc,GAApB,MAAM,cAAyC,SAAQ,UAA4B,CAAA;AAC5C,IAAA,OAAA,CAAA;AAA1C,IAAA,WAAA,CAA0C,OAAwB,EAAA;AAC9D,QAAA,KAAK,CAAC,OAAO,GAAa,KAAI;YAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AAC5E,SAAC,CAAC,CAAC;QAJmC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAiB;KAKjE;IAED,WAAW,GAAG,IAAI,UAAU,CAA4B,OAAO,OAAO,KAAI;AACtE,QAAA,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;AACrD,QAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACtC,YAAA,GAAG,IAAI;AACP,YAAA,QAAQ,EAAE;gBACN,GAAG,IAAI,CAAC,QAAQ;AAChB,gBAAA,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC5B,aAAA;AACJ,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,KACnB,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;YACpB,IAAI,OAAO,UAAU,KAAK,UAAU;AAAE,gBAAA,OAAO,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACvE,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;SAC5D,CAAC,CACL,CAAC;AACN,KAAC,CAAC,CAAC;EACN;AAzBYA,sBAAc,GAAAC,gBAAA,CAAA;AAD1B,IAAAC,oBAAU,EAAE;IAEIC,aAAA,CAAA,CAAA,EAAAC,mBAAS,EAAE,CAAA;;AADf,CAAA,EAAAJ,sBAAc,CAyB1B"}
@@ -8,7 +8,7 @@ import {__decorate,__param,__metadata}from'tslib';import DataLoader from'dataloa
8
8
  this.service = service;
9
9
  }
10
10
  withOptions = new DataLoader(async (options) => {
11
- const [{ searchKey, ...rest }] = options;
11
+ const [{ searchKey, comparator, ...rest }] = options;
12
12
  const ids = options.map((option) => option.id);
13
13
  const results = await this.service.getAll({
14
14
  ...rest,
@@ -17,7 +17,11 @@ import {__decorate,__param,__metadata}from'tslib';import DataLoader from'dataloa
17
17
  [searchKey]: { $in: ids },
18
18
  },
19
19
  });
20
- return ids.map((modelId) => results.filter((item) => item[searchKey].toString() === modelId.toString()));
20
+ return ids.map((modelId) => results.filter((item) => {
21
+ if (typeof comparator === 'function')
22
+ return comparator(modelId, item);
23
+ return item[searchKey].toString() === modelId.toString();
24
+ }));
21
25
  });
22
26
  };
23
27
  BulkDataLoader = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"bulk-dataloader.mjs","sources":["../../src/dataloaders/bulk-dataloader.ts"],"sourcesContent":[null],"names":[],"mappings":"kIAKO,IAAM,cAAc,GAApB,MAAM,cAAyC,SAAQ,UAA4B,CAAA;AAC5C,IAAA,OAAA,CAAA;AAA1C,IAAA,WAAA,CAA0C,OAAwB,EAAA;AAC9D,QAAA,KAAK,CAAC,OAAO,GAAa,KAAI;YAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AAC5E,SAAC,CAAC,CAAC;QAJmC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAiB;KAKjE;IAED,WAAW,GAAG,IAAI,UAAU,CAA4B,OAAO,OAAO,KAAI;QACtE,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;AACzC,QAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACtC,YAAA,GAAG,IAAI;AACP,YAAA,QAAQ,EAAE;gBACN,GAAG,IAAI,CAAC,QAAQ;AAChB,gBAAA,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC5B,aAAA;AACJ,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC7G,KAAC,CAAC,CAAC;EACN;AApBY,cAAc,GAAA,UAAA,CAAA;AAD1B,IAAA,UAAU,EAAE;IAEI,OAAA,CAAA,CAAA,EAAA,SAAS,EAAE,CAAA;;AADf,CAAA,EAAA,cAAc,CAoB1B"}
1
+ {"version":3,"file":"bulk-dataloader.mjs","sources":["../../src/dataloaders/bulk-dataloader.ts"],"sourcesContent":[null],"names":[],"mappings":"kIAKO,IAAM,cAAc,GAApB,MAAM,cAAyC,SAAQ,UAA4B,CAAA;AAC5C,IAAA,OAAA,CAAA;AAA1C,IAAA,WAAA,CAA0C,OAAwB,EAAA;AAC9D,QAAA,KAAK,CAAC,OAAO,GAAa,KAAI;YAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AAC5E,SAAC,CAAC,CAAC;QAJmC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAiB;KAKjE;IAED,WAAW,GAAG,IAAI,UAAU,CAA4B,OAAO,OAAO,KAAI;AACtE,QAAA,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;AACrD,QAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACtC,YAAA,GAAG,IAAI;AACP,YAAA,QAAQ,EAAE;gBACN,GAAG,IAAI,CAAC,QAAQ;AAChB,gBAAA,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC5B,aAAA;AACJ,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,KACnB,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;YACpB,IAAI,OAAO,UAAU,KAAK,UAAU;AAAE,gBAAA,OAAO,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACvE,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;SAC5D,CAAC,CACL,CAAC;AACN,KAAC,CAAC,CAAC;EACN;AAzBY,cAAc,GAAA,UAAA,CAAA;AAD1B,IAAA,UAAU,EAAE;IAEI,OAAA,CAAA,CAAA,EAAA,SAAS,EAAE,CAAA;;AADf,CAAA,EAAA,cAAc,CAyB1B"}
@@ -3,6 +3,7 @@ import { IBaseService } from './base-service';
3
3
  export type DataLoaderOptions<T> = Parameters<IBaseService<T>['getAll']>[0] & {
4
4
  id: string;
5
5
  searchKey: keyof T;
6
+ comparator?: (source: unknown, target: T) => boolean;
6
7
  };
7
8
  export type IDataLoader<T> = DataLoader<string, T> & {
8
9
  withOptions: DataLoader<DataLoaderOptions<T>, T[]>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@common-stack/store-mongo",
3
- "version": "6.0.6-alpha.91",
3
+ "version": "6.0.8-alpha.0",
4
4
  "description": "Sample core for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -23,7 +23,7 @@
23
23
  "watch": "npm run build:lib:watch"
24
24
  },
25
25
  "dependencies": {
26
- "@common-stack/core": "6.0.6-alpha.91"
26
+ "@common-stack/core": "6.0.8-alpha.0"
27
27
  },
28
28
  "devDependencies": {
29
29
  "moleculer": "^0.14.33",
@@ -40,5 +40,5 @@
40
40
  "typescript": {
41
41
  "definition": "lib/index.d.ts"
42
42
  },
43
- "gitHead": "e961c194190a018fca6bcc40999e431f57430c4c"
43
+ "gitHead": "c2cf7919f46791e092714b9db5e4d01280929437"
44
44
  }