@lokative/messaging 1.1.3 → 1.1.5

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.
@@ -4,8 +4,7 @@ export interface MessageEnvelope {
4
4
  ack(): void;
5
5
  nak(): void;
6
6
  }
7
- export interface Subscription {
8
- [Symbol.asyncIterator](): AsyncIterator<MessageEnvelope>;
7
+ export interface Subscription extends AsyncIterableIterator<MessageEnvelope> {
9
8
  }
10
9
  export interface MessagingTransport {
11
10
  connect(): Promise<void>;
@@ -47,9 +47,17 @@ let KafkaTransport = class KafkaTransport {
47
47
  let waiting = null;
48
48
  await consumer.run({
49
49
  eachMessage: async ({ topic, message }) => {
50
+ const raw = message.value?.toString() ?? '';
51
+ let data;
52
+ try {
53
+ data = JSON.parse(raw);
54
+ }
55
+ catch {
56
+ data = raw;
57
+ }
50
58
  const envelope = {
51
59
  subject: topic,
52
- data: JSON.parse(message.value?.toString() ?? '{}'),
60
+ data,
53
61
  ack: () => { }, // kafkajs auto-commits offsets
54
62
  nak: () => { },
55
63
  };
@@ -70,8 +78,9 @@ let KafkaTransport = class KafkaTransport {
70
78
  }
71
79
  return new Promise(r => { waiting = r; });
72
80
  },
81
+ [Symbol.asyncIterator]() { return this; },
73
82
  };
74
- return { [Symbol.asyncIterator]: () => iterator };
83
+ return iterator;
75
84
  }
76
85
  };
77
86
  exports.KafkaTransport = KafkaTransport;
@@ -47,18 +47,27 @@ let NatsTransport = class NatsTransport {
47
47
  if (result.done)
48
48
  return { done: true, value: undefined };
49
49
  const msg = result.value;
50
+ const raw = msg.data.toString();
51
+ let data;
52
+ try {
53
+ data = JSON.parse(raw);
54
+ }
55
+ catch {
56
+ data = raw;
57
+ }
50
58
  return {
51
59
  done: false,
52
60
  value: {
53
61
  subject: msg.subject,
54
- data: JSON.parse(msg.data.toString()),
62
+ data,
55
63
  ack: () => msg.ack(),
56
64
  nak: () => msg.nak(),
57
65
  },
58
66
  };
59
67
  },
68
+ [Symbol.asyncIterator]() { return this; },
60
69
  };
61
- return { [Symbol.asyncIterator]: () => iterator };
70
+ return iterator;
62
71
  }
63
72
  async ensureStreams(streams) {
64
73
  for (const stream of streams) {
@@ -37,9 +37,16 @@ let RedisTransport = class RedisTransport {
37
37
  const buffer = [];
38
38
  let waiting = null;
39
39
  await this.sub.subscribe(subject, (message, channel) => {
40
+ let data;
41
+ try {
42
+ data = JSON.parse(message);
43
+ }
44
+ catch {
45
+ data = message;
46
+ }
40
47
  const envelope = {
41
48
  subject: channel,
42
- data: JSON.parse(message),
49
+ data,
43
50
  ack: () => { }, // redis pub/sub has no ack mechanism
44
51
  nak: () => { },
45
52
  };
@@ -59,8 +66,9 @@ let RedisTransport = class RedisTransport {
59
66
  }
60
67
  return new Promise(r => { waiting = r; });
61
68
  },
69
+ [Symbol.asyncIterator]() { return this; },
62
70
  };
63
- return { [Symbol.asyncIterator]: () => iterator };
71
+ return iterator;
64
72
  }
65
73
  };
66
74
  exports.RedisTransport = RedisTransport;
@@ -4,8 +4,7 @@ export interface MessageEnvelope {
4
4
  ack(): void;
5
5
  nak(): void;
6
6
  }
7
- export interface Subscription {
8
- [Symbol.asyncIterator](): AsyncIterator<MessageEnvelope>;
7
+ export interface Subscription extends AsyncIterableIterator<MessageEnvelope> {
9
8
  }
10
9
  export interface MessagingTransport {
11
10
  connect(): Promise<void>;
@@ -44,9 +44,17 @@ let KafkaTransport = class KafkaTransport {
44
44
  let waiting = null;
45
45
  await consumer.run({
46
46
  eachMessage: async ({ topic, message }) => {
47
+ const raw = message.value?.toString() ?? '';
48
+ let data;
49
+ try {
50
+ data = JSON.parse(raw);
51
+ }
52
+ catch {
53
+ data = raw;
54
+ }
47
55
  const envelope = {
48
56
  subject: topic,
49
- data: JSON.parse(message.value?.toString() ?? '{}'),
57
+ data,
50
58
  ack: () => { }, // kafkajs auto-commits offsets
51
59
  nak: () => { },
52
60
  };
@@ -67,8 +75,9 @@ let KafkaTransport = class KafkaTransport {
67
75
  }
68
76
  return new Promise(r => { waiting = r; });
69
77
  },
78
+ [Symbol.asyncIterator]() { return this; },
70
79
  };
71
- return { [Symbol.asyncIterator]: () => iterator };
80
+ return iterator;
72
81
  }
73
82
  };
74
83
  KafkaTransport = __decorate([
@@ -44,18 +44,27 @@ let NatsTransport = class NatsTransport {
44
44
  if (result.done)
45
45
  return { done: true, value: undefined };
46
46
  const msg = result.value;
47
+ const raw = msg.data.toString();
48
+ let data;
49
+ try {
50
+ data = JSON.parse(raw);
51
+ }
52
+ catch {
53
+ data = raw;
54
+ }
47
55
  return {
48
56
  done: false,
49
57
  value: {
50
58
  subject: msg.subject,
51
- data: JSON.parse(msg.data.toString()),
59
+ data,
52
60
  ack: () => msg.ack(),
53
61
  nak: () => msg.nak(),
54
62
  },
55
63
  };
56
64
  },
65
+ [Symbol.asyncIterator]() { return this; },
57
66
  };
58
- return { [Symbol.asyncIterator]: () => iterator };
67
+ return iterator;
59
68
  }
60
69
  async ensureStreams(streams) {
61
70
  for (const stream of streams) {
@@ -34,9 +34,16 @@ let RedisTransport = class RedisTransport {
34
34
  const buffer = [];
35
35
  let waiting = null;
36
36
  await this.sub.subscribe(subject, (message, channel) => {
37
+ let data;
38
+ try {
39
+ data = JSON.parse(message);
40
+ }
41
+ catch {
42
+ data = message;
43
+ }
37
44
  const envelope = {
38
45
  subject: channel,
39
- data: JSON.parse(message),
46
+ data,
40
47
  ack: () => { }, // redis pub/sub has no ack mechanism
41
48
  nak: () => { },
42
49
  };
@@ -56,8 +63,9 @@ let RedisTransport = class RedisTransport {
56
63
  }
57
64
  return new Promise(r => { waiting = r; });
58
65
  },
66
+ [Symbol.asyncIterator]() { return this; },
59
67
  };
60
- return { [Symbol.asyncIterator]: () => iterator };
68
+ return iterator;
61
69
  }
62
70
  };
63
71
  RedisTransport = __decorate([
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lokative/messaging",
3
- "version": "1.1.3",
3
+ "version": "1.1.5",
4
4
  "description": "",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",