Skip to content

Commit db8a935

Browse files
committed
Resolve circular dependency around Subscriber using token injection
1 parent 6ab3fa4 commit db8a935

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

packages/sdk/src/encryption/SubscriberKeyExchange.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { StreamMessage, StreamMessageType } from '../protocol/StreamMessage'
1010
import { createRandomMsgChainId } from '../publish/messageChain'
1111
import { MessageSigner } from '../signature/MessageSigner'
1212
import { SignatureValidator } from '../signature/SignatureValidator'
13-
import { Subscriber } from '../subscribe/Subscriber'
13+
import type { Subscriber } from '../subscribe/Subscriber'
1414
import { LoggerFactory } from '../utils/LoggerFactory'
1515
import { pOnce, withThrottling } from '../utils/promises'
1616
import { MaxSizedSet } from '../utils/utils'
@@ -21,6 +21,7 @@ import { AsymmetricEncryptionType, ContentType, EncryptionType, GroupKeyRequest,
2121
import { KeyExchangeKeyPair } from './KeyExchangeKeyPair'
2222
import { createCompliantExchangeKeys } from '../utils/encryptionCompliance'
2323
import { StreamrClientError } from '../StreamrClientError'
24+
import { Tokens } from '../tokens'
2425

2526
const MAX_PENDING_REQUEST_COUNT = 50000 // just some limit, we can tweak the number if needed
2627

@@ -51,7 +52,7 @@ export class SubscriberKeyExchange {
5152
signatureValidator: SignatureValidator,
5253
messageSigner: MessageSigner,
5354
store: LocalGroupKeyStore,
54-
subscriber: Subscriber,
55+
@inject(Tokens.Subscriber) subscriber: Subscriber,
5556
@inject(ConfigInjectionToken) config: Pick<StrictStreamrClientConfig, 'encryption' | 'validation'>,
5657
@inject(IdentityInjectionToken) identity: Identity,
5758
loggerFactory: LoggerFactory

packages/sdk/src/register.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
import { container } from 'tsyringe'
22
import { Resends } from './subscribe/Resends'
3+
import { Subscriber } from './subscribe/Subscriber'
34
import { Tokens } from './tokens'
45

56
container.register(Tokens.Resends, {
67
useClass: Resends,
78
})
9+
10+
container.register(Tokens.Subscriber, {
11+
useClass: Subscriber,
12+
})

packages/sdk/src/tokens.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export const Tokens = {
2-
Resends: Symbol('Resends')
2+
Resends: Symbol('Resends'),
3+
Subscriber: Symbol('Subscriber')
34
}

0 commit comments

Comments
 (0)