@message-queue-toolkit/core 5.0.1 → 5.0.3

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.
@@ -10,6 +10,9 @@ export type SpyResult<MessagePayloadSchemas extends object> = {
10
10
  };
11
11
  export declare function isHandlerSpy<T extends object>(value: unknown): value is HandlerSpy<T>;
12
12
  export type PublicHandlerSpy<MessagePayloadSchemas extends object> = Omit<HandlerSpy<MessagePayloadSchemas>, 'addProcessedMessage'>;
13
+ type DeepPartial<T> = T extends Function ? T : T extends object ? {
14
+ [P in keyof T]?: T[P] extends Array<infer U> ? Array<DeepPartial<U>> : T[P] extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : DeepPartial<T[P]>;
15
+ } : T;
13
16
  export declare class HandlerSpy<MessagePayloadSchemas extends object> {
14
17
  name: string;
15
18
  private readonly messageBuffer;
@@ -18,8 +21,9 @@ export declare class HandlerSpy<MessagePayloadSchemas extends object> {
18
21
  constructor(params?: HandlerSpyParams);
19
22
  private messageMatchesFilter;
20
23
  waitForMessageWithId(id: string, processingResult?: MessageProcessingResult): Promise<SpyResult<MessagePayloadSchemas>>;
21
- waitForMessage(fields: Partial<MessagePayloadSchemas>, processingResult?: MessageProcessingResult): Promise<SpyResult<MessagePayloadSchemas>>;
24
+ waitForMessage(fields: DeepPartial<MessagePayloadSchemas>, processingResult?: MessageProcessingResult): Promise<SpyResult<MessagePayloadSchemas>>;
22
25
  clear(): void;
23
26
  addProcessedMessage(processingResult: SpyResult<MessagePayloadSchemas>, messageId?: string): void;
24
27
  }
25
28
  export declare function resolveHandlerSpy<T extends object>(queueOptions: CommonQueueOptions): HandlerSpy<T> | undefined;
29
+ export {};
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveHandlerSpy = exports.HandlerSpy = exports.isHandlerSpy = void 0;
4
4
  const node_crypto_1 = require("node:crypto");
5
5
  const node_core_1 = require("@lokalise/node-core");
6
- const fast_equals_1 = require("fast-equals");
7
6
  const toad_cache_1 = require("toad-cache");
7
+ const matchUtils_1 = require("../utils/matchUtils");
8
8
  function isHandlerSpy(value) {
9
9
  return ((0, node_core_1.isObject)(value) &&
10
10
  (value instanceof HandlerSpy || value.name === 'HandlerSpy'));
@@ -23,10 +23,9 @@ class HandlerSpy {
23
23
  this.spyPromises = [];
24
24
  }
25
25
  messageMatchesFilter(spyResult, fields, processingResult) {
26
- return (Object.entries(fields).every(([key, value]) => {
27
- // @ts-ignore
28
- return (0, fast_equals_1.deepEqual)(spyResult.message[key], value);
29
- }) &&
26
+ return (
27
+ // @ts-ignore
28
+ (0, matchUtils_1.objectMatches)(fields, spyResult.message) &&
30
29
  (!processingResult || spyResult.processingResult === processingResult));
31
30
  }
32
31
  waitForMessageWithId(id, processingResult) {
@@ -1 +1 @@
1
- {"version":3,"file":"HandlerSpy.js","sourceRoot":"","sources":["../../../lib/queues/HandlerSpy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HandlerSpy.js","sourceRoot":"","sources":["../../../lib/queues/HandlerSpy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function objectMatches(matcher: Record<string, any>, validatedObject: Record<string, any>): boolean;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.objectMatches = void 0;
4
+ const fast_equals_1 = require("fast-equals");
5
+ function objectMatches(
6
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
+ matcher,
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
+ validatedObject) {
10
+ for (const key in matcher) {
11
+ if (!Object.prototype.hasOwnProperty.call(matcher, key))
12
+ continue;
13
+ if (!Object.prototype.hasOwnProperty.call(validatedObject, key)) {
14
+ return false;
15
+ }
16
+ if (typeof matcher[key] === 'object' && matcher[key] !== null) {
17
+ if (typeof validatedObject[key] !== 'object' || validatedObject[key] === null) {
18
+ return false;
19
+ }
20
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
21
+ if (!objectMatches(matcher[key], validatedObject[key])) {
22
+ return false;
23
+ }
24
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
25
+ }
26
+ else if (!(0, fast_equals_1.deepEqual)(matcher[key], validatedObject[key])) {
27
+ return false;
28
+ }
29
+ }
30
+ return true;
31
+ }
32
+ exports.objectMatches = objectMatches;
33
+ //# sourceMappingURL=matchUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matchUtils.js","sourceRoot":"","sources":["../../../lib/utils/matchUtils.ts"],"names":[],"mappings":";;;AAAA,6CAAuC;AAEvC,SAAgB,aAAa;AAC3B,8DAA8D;AAC9D,OAA4B;AAC5B,8DAA8D;AAC9D,eAAoC;IAEpC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;YAAE,SAAQ;QAEjE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE,CAAC;YAChE,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAC9D,IAAI,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC9E,OAAO,KAAK,CAAA;YACd,CAAC;YAED,iEAAiE;YACjE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvD,OAAO,KAAK,CAAA;YACd,CAAC;YACD,iEAAiE;QACnE,CAAC;aAAM,IAAI,CAAC,IAAA,uBAAS,EAAC,OAAO,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC1D,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AA5BD,sCA4BC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@message-queue-toolkit/core",
3
- "version": "5.0.1",
3
+ "version": "5.0.3",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "description": "Useful utilities, interfaces and base classes for message queue handling. Supports AMQP and SQS with a common abstraction on top currently",