comq 0.8.0 → 0.10.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.
- package/.github/dependabot.yml +2 -2
- package/.github/workflows/codeql.yml +1 -1
- package/.github/workflows/release.yaml +16 -15
- package/docs/reply-stream-topology-dark.jpg +0 -0
- package/docs/reply-stream-topology-light.jpg +0 -0
- package/examples/readme.md +19 -3
- package/examples/streams/consumer.js +36 -0
- package/examples/streams/producer.js +44 -0
- package/features/backpressure.feature +2 -2
- package/features/events.feature +5 -0
- package/features/readme.md +2 -2
- package/features/recovery.feature +0 -3
- package/features/rpc.feature +15 -10
- package/features/rpc.streams.feature +81 -0
- package/features/rpc.streams.shards.feature +37 -0
- package/features/steps/.test/context.test.js +1 -1
- package/features/steps/.test/events.test.js +2 -2
- package/features/steps/.test/rpc.test.js +1 -1
- package/features/steps/.types/context.d.ts +9 -1
- package/features/steps/common.js +12 -0
- package/features/steps/context.js +9 -2
- package/features/steps/events.js +29 -0
- package/features/steps/rpc.js +273 -0
- package/lerna.json +1 -2
- package/package.json +2 -2
- package/readme.md +159 -31
- package/source/.io/ReplyPipe.js +158 -0
- package/source/.io/ReplyStream.js +142 -0
- package/source/.io/const.js +10 -0
- package/source/.io/{replies.js → createReplyEmitter.js} +3 -6
- package/source/.io/index.js +5 -1
- package/source/attributes/failsafe.js +34 -0
- package/source/attributes/failsafe.test.js +133 -0
- package/source/attributes/index.js +13 -0
- package/source/attributes/lazy.js +79 -0
- package/source/attributes/lazy.test.js +299 -0
- package/source/attributes/memo.js +13 -0
- package/source/attributes/memo.test.js +36 -0
- package/source/attributes/recall.js +42 -0
- package/source/attributes/recall.test.js +92 -0
- package/source/attributes/track.js +32 -0
- package/source/attributes/track.test.js +133 -0
- package/source/channel.js +33 -18
- package/source/connect.js +2 -2
- package/source/connection.js +4 -11
- package/source/emitter.js +13 -0
- package/source/encode.js +1 -1
- package/source/events.js +3 -3
- package/source/io.js +184 -48
- package/source/pipeline.js +43 -0
- package/source/shards/channel.js +28 -12
- package/source/shards/connection.js +2 -2
- package/test/channel.test.js +9 -1
- package/test/encode.test.js +2 -2
- package/test/encodings.js +1 -1
- package/test/io.diagnostics.test.js +3 -3
- package/test/io.emit.test.js +18 -3
- package/test/io.request.test.js +45 -23
- package/test/pipeline.test.js +81 -0
- package/test/shards/channel.test.js +39 -3
- package/test/shards/connection.test.js +1 -1
- package/types/channel.d.ts +13 -11
- package/types/connection.d.ts +3 -3
- package/types/diagnostic.d.ts +4 -3
- package/types/encoding.d.ts +2 -2
- package/types/index.d.ts +4 -4
- package/types/io.d.ts +40 -32
package/types/io.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { Readable } from 'node:stream'
|
|
2
|
+
import type { EventEmitter } from 'node:events'
|
|
1
3
|
import * as _diagnostics from './diagnostic'
|
|
2
4
|
import * as _encoding from './encoding'
|
|
3
5
|
import * as _topology from './topology'
|
|
@@ -5,59 +7,65 @@ import * as _amqp from './amqp'
|
|
|
5
7
|
|
|
6
8
|
declare namespace comq {
|
|
7
9
|
|
|
8
|
-
type
|
|
9
|
-
type
|
|
10
|
+
type Producer<Input = any, Output = any> = (message: Input) => Output | Promise<Output>
|
|
11
|
+
type Consumer<T = any> = (message: T, headers?: _amqp.Properties) => void | Promise<void>
|
|
10
12
|
|
|
11
|
-
interface ReplyEmitter {
|
|
12
|
-
queue: string
|
|
13
|
-
|
|
14
|
-
once(name: string, callback: Function): void
|
|
15
|
-
|
|
16
|
-
emit(name: string, value: any): void
|
|
13
|
+
interface ReplyEmitter extends EventEmitter {
|
|
14
|
+
readonly queue: string
|
|
15
|
+
}
|
|
17
16
|
|
|
18
|
-
|
|
17
|
+
interface Destroyable extends EventEmitter {
|
|
18
|
+
destroy (): void
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
interface Request {
|
|
22
|
+
buffer: Buffer
|
|
23
|
+
emitter: ReplyEmitter
|
|
24
|
+
properties: _amqp.Properties
|
|
25
|
+
reply: any
|
|
26
|
+
}
|
|
22
27
|
|
|
23
28
|
interface IO extends _diagnostics.Diagnosable {
|
|
24
|
-
reply(queue: string, produce:
|
|
29
|
+
reply (queue: string, produce: Producer): Promise<void>
|
|
30
|
+
|
|
31
|
+
request<Reply = any, Request = any> (queue: string, payload: Request, encoding?: _encoding.Encoding): Promise<Reply>
|
|
32
|
+
|
|
33
|
+
request (queue: string, stream: Readable, encoding?: _encoding.Encoding): Promise<Readable>
|
|
34
|
+
|
|
35
|
+
fetch (queue: string, payload: any, encoding?: _encoding.Encoding): Promise<Readable>
|
|
36
|
+
|
|
37
|
+
consume<T = any> (exchange: string, group: string, consumer: Consumer<T>): Promise<void>
|
|
25
38
|
|
|
26
|
-
|
|
27
|
-
queue: string,
|
|
28
|
-
payload: any,
|
|
29
|
-
encoding?: _encoding.encoding,
|
|
30
|
-
replyToFormatter?: ReplyToPropertyFormatter)
|
|
31
|
-
: Promise<any>
|
|
39
|
+
consume<T = any> (exchange: string, consumer: Consumer<T>): Promise<void>
|
|
32
40
|
|
|
33
|
-
|
|
41
|
+
emit (exchange: string, payload: any, encoding?: _encoding.Encoding): Promise<void>
|
|
34
42
|
|
|
35
|
-
|
|
43
|
+
emit (exchange: string, payload: any, properties?: _amqp.Properties): Promise<void>
|
|
36
44
|
|
|
37
|
-
emit(exchange: string,
|
|
45
|
+
emit (exchange: string, stream: Readable, encoding?: _encoding.Encoding): Promise<void>
|
|
38
46
|
|
|
39
|
-
emit(exchange: string,
|
|
47
|
+
emit (exchange: string, stream: Readable, properties?: _amqp.Properties): Promise<void>
|
|
40
48
|
|
|
41
|
-
seal(): Promise<void>
|
|
49
|
+
seal (): Promise<void>
|
|
42
50
|
|
|
43
|
-
close(): Promise<void>
|
|
51
|
+
close (): Promise<void>
|
|
44
52
|
|
|
45
|
-
diagnose(event: 'open', listener: (index?: number) => void)
|
|
53
|
+
diagnose (event: 'open', listener: (index?: number) => void): void
|
|
46
54
|
|
|
47
|
-
diagnose(event: 'close', listener: (index?: number) => void)
|
|
55
|
+
diagnose (event: 'close', listener: (index?: number) => void): void
|
|
48
56
|
|
|
49
|
-
diagnose(event: 'flow', listener: (channel: _topology.type, index?: number) => void)
|
|
57
|
+
diagnose (event: 'flow', listener: (channel: _topology.type, index?: number) => void): void
|
|
50
58
|
|
|
51
|
-
diagnose(event: 'drain', listener: (channel: _topology.type, index?: number) => void)
|
|
59
|
+
diagnose (event: 'drain', listener: (channel: _topology.type, index?: number) => void): void
|
|
52
60
|
|
|
53
|
-
diagnose(event: 'remove', listener: (index?: number) => void)
|
|
61
|
+
diagnose (event: 'remove', listener: (index?: number) => void): void
|
|
54
62
|
|
|
55
|
-
diagnose(event: 'recover', listener: (channel: _topology.type, index?: number) => void)
|
|
63
|
+
diagnose (event: 'recover', listener: (channel: _topology.type, index?: number) => void): void
|
|
56
64
|
|
|
57
|
-
diagnose(event: 'discard', listener: (channel: _topology.type, message: any, index?: number) => void)
|
|
65
|
+
diagnose (event: 'discard', listener: (channel: _topology.type, message: any, index?: number) => void): void
|
|
58
66
|
}
|
|
59
67
|
}
|
|
60
68
|
|
|
61
|
-
export type
|
|
62
|
-
export type
|
|
69
|
+
export type Producer = comq.Producer
|
|
70
|
+
export type Consumer = comq.Consumer
|
|
63
71
|
export type IO = comq.IO
|