Skip to content

Commit a4e04f8

Browse files
authored
Merge pull request #329 from underctrl-io/queue
feat: message queue api
2 parents 7a77fde + f87208e commit a4e04f8

26 files changed

+1899
-2
lines changed

.github/workflows/publish-dev.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ jobs:
6060
"@commandkit/cache:packages/cache"
6161
"@commandkit/analytics:packages/analytics"
6262
"@commandkit/ai:packages/ai"
63+
"@commandkit/queue:packages/queue"
6364
)
6465
6566
for entry in "${PACKAGES[@]}"; do
@@ -82,6 +83,7 @@ jobs:
8283
"@commandkit/cache"
8384
"@commandkit/analytics"
8485
"@commandkit/ai"
86+
"@commandkit/queue"
8587
)
8688
8789
for pkg in "${PACKAGES[@]}"; do

.github/workflows/publish-latest.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ jobs:
3939
"@commandkit/i18n:packages/i18n"
4040
"@commandkit/devtools:packages/devtools"
4141
"@commandkit/cache:packages/cache"
42+
"@commandkit/queue:packages/queue"
4243
)
4344
4445
for entry in "${PACKAGES[@]}"; do
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
title: "Classes"
3+
isDefaultIndex: true
4+
generated: true
5+
---
6+
7+
import MemberInfo from '@site/src/components/MemberInfo';
8+
import GenerationInfo from '@site/src/components/GenerationInfo';
9+
import MemberDescription from '@site/src/components/MemberDescription';
10+
11+
<!-- This file was generated from the CommandKit source. Do not modify. Instead, re-run the "docgen" script -->
12+
13+
14+
import DocCardList from '@theme/DocCardList';
15+
16+
<DocCardList />
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
title: "RedisPubSubDriver"
3+
isDefaultIndex: false
4+
generated: true
5+
---
6+
7+
import MemberInfo from '@site/src/components/MemberInfo';
8+
import GenerationInfo from '@site/src/components/GenerationInfo';
9+
import MemberDescription from '@site/src/components/MemberDescription';
10+
11+
<!-- This file was generated from the CommandKit source. Do not modify. Instead, re-run the "docgen" script -->
12+
13+
14+
## RedisPubSubDriver
15+
16+
<GenerationInfo sourceFile="packages/queue/src/discordjs/index.ts" sourceLine="16" packageName="@commandkit/queue" />
17+
18+
19+
20+
```ts title="Signature"
21+
class RedisPubSubDriver<TEvent extends Record<string, any> = Record<string, any>> implements MessageQueue {
22+
constructor(broker: PubSubRedisBroker<TEvent>)
23+
send(topic: T, message: TEvent[T]) => Promise<void>;
24+
receive(topic: T, handler: Handler<TEvent>) => Promise<void>;
25+
close() => Promise<void>;
26+
}
27+
```
28+
* Implements: <code><a href='/docs/next/api-reference/queue/interfaces/message-queue#messagequeue'>MessageQueue</a></code>
29+
30+
31+
32+
<div className="members-wrapper">
33+
34+
### constructor
35+
36+
<MemberInfo kind="method" type={`(broker: PubSubRedisBroker&#60;TEvent&#62;) => RedisPubSubDriver`} />
37+
38+
39+
### send
40+
41+
<MemberInfo kind="method" type={`(topic: T, message: TEvent[T]) => Promise&#60;void&#62;`} />
42+
43+
44+
### receive
45+
46+
<MemberInfo kind="method" type={`(topic: T, handler: Handler&#60;TEvent&#62;) => Promise&#60;void&#62;`} />
47+
48+
49+
### close
50+
51+
<MemberInfo kind="method" type={`() => Promise&#60;void&#62;`} />
52+
53+
54+
55+
56+
</div>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
title: "Functions"
3+
isDefaultIndex: true
4+
generated: true
5+
---
6+
7+
import MemberInfo from '@site/src/components/MemberInfo';
8+
import GenerationInfo from '@site/src/components/GenerationInfo';
9+
import MemberDescription from '@site/src/components/MemberDescription';
10+
11+
<!-- This file was generated from the CommandKit source. Do not modify. Instead, re-run the "docgen" script -->
12+
13+
14+
import DocCardList from '@theme/DocCardList';
15+
16+
<DocCardList />
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
title: "Receive"
3+
isDefaultIndex: false
4+
generated: true
5+
---
6+
7+
import MemberInfo from '@site/src/components/MemberInfo';
8+
import GenerationInfo from '@site/src/components/GenerationInfo';
9+
import MemberDescription from '@site/src/components/MemberDescription';
10+
11+
<!-- This file was generated from the CommandKit source. Do not modify. Instead, re-run the "docgen" script -->
12+
13+
14+
## receive
15+
16+
<GenerationInfo sourceFile="packages/queue/src/index.ts" sourceLine="31" packageName="@commandkit/queue" />
17+
18+
Receive a message from a topic.
19+
20+
```ts title="Signature"
21+
function receive<T>(topic: string, handler: (message: T) => Awaitable<void>): Promise<void>
22+
```
23+
Parameters
24+
25+
### topic
26+
27+
<MemberInfo kind="parameter" type={`string`} />
28+
29+
### handler
30+
31+
<MemberInfo kind="parameter" type={`(message: T) =&#62; <a href='/docs/next/api-reference/queue/types/awaitable#awaitable'>Awaitable</a>&#60;void&#62;`} />
32+
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
title: "Send"
3+
isDefaultIndex: false
4+
generated: true
5+
---
6+
7+
import MemberInfo from '@site/src/components/MemberInfo';
8+
import GenerationInfo from '@site/src/components/GenerationInfo';
9+
import MemberDescription from '@site/src/components/MemberDescription';
10+
11+
<!-- This file was generated from the CommandKit source. Do not modify. Instead, re-run the "docgen" script -->
12+
13+
14+
## send
15+
16+
<GenerationInfo sourceFile="packages/queue/src/index.ts" sourceLine="18" packageName="@commandkit/queue" />
17+
18+
Send a message to a topic.
19+
20+
```ts title="Signature"
21+
function send<T>(topic: string, message: T): Promise<void>
22+
```
23+
Parameters
24+
25+
### topic
26+
27+
<MemberInfo kind="parameter" type={`string`} />
28+
29+
### message
30+
31+
<MemberInfo kind="parameter" type={`T`} />
32+
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
title: "SetDriver"
3+
isDefaultIndex: false
4+
generated: true
5+
---
6+
7+
import MemberInfo from '@site/src/components/MemberInfo';
8+
import GenerationInfo from '@site/src/components/GenerationInfo';
9+
import MemberDescription from '@site/src/components/MemberDescription';
10+
11+
<!-- This file was generated from the CommandKit source. Do not modify. Instead, re-run the "docgen" script -->
12+
13+
14+
## setDriver
15+
16+
<GenerationInfo sourceFile="packages/queue/src/index.ts" sourceLine="9" packageName="@commandkit/queue" />
17+
18+
Set the message queue driver.
19+
20+
```ts title="Signature"
21+
function setDriver(driver: MessageQueue): void
22+
```
23+
Parameters
24+
25+
### driver
26+
27+
<MemberInfo kind="parameter" type={`<a href='/docs/next/api-reference/queue/interfaces/message-queue#messagequeue'>MessageQueue</a>`} />
28+
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
title: "Queue"
3+
isDefaultIndex: true
4+
generated: true
5+
---
6+
7+
import MemberInfo from '@site/src/components/MemberInfo';
8+
import GenerationInfo from '@site/src/components/GenerationInfo';
9+
import MemberDescription from '@site/src/components/MemberDescription';
10+
11+
<!-- This file was generated from the CommandKit source. Do not modify. Instead, re-run the "docgen" script -->
12+
13+
14+
import DocCardList from '@theme/DocCardList';
15+
16+
<DocCardList />
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
title: "Interfaces"
3+
isDefaultIndex: true
4+
generated: true
5+
---
6+
7+
import MemberInfo from '@site/src/components/MemberInfo';
8+
import GenerationInfo from '@site/src/components/GenerationInfo';
9+
import MemberDescription from '@site/src/components/MemberDescription';
10+
11+
<!-- This file was generated from the CommandKit source. Do not modify. Instead, re-run the "docgen" script -->
12+
13+
14+
import DocCardList from '@theme/DocCardList';
15+
16+
<DocCardList />

0 commit comments

Comments
 (0)