@aws-amplify/pubsub 4.2.11 → 4.3.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/CHANGELOG.md +11 -0
- package/dist/aws-amplify-pubsub.js +9 -2
- package/dist/aws-amplify-pubsub.js.map +1 -1
- package/dist/aws-amplify-pubsub.min.js +1 -1
- package/dist/aws-amplify-pubsub.min.js.map +1 -1
- package/lib/Providers/AWSAppSyncProvider.d.ts +3 -0
- package/lib/Providers/AWSAppSyncProvider.js +3 -0
- package/lib/Providers/AWSAppSyncProvider.js.map +1 -1
- package/lib/Providers/AWSAppSyncRealTimeProvider.d.ts +17 -2
- package/lib/Providers/AWSAppSyncRealTimeProvider.js +8 -5
- package/lib/Providers/AWSAppSyncRealTimeProvider.js.map +1 -1
- package/lib/Providers/AWSIotProvider.d.ts +6 -1
- package/lib/Providers/AWSIotProvider.js +3 -2
- package/lib/Providers/AWSIotProvider.js.map +1 -1
- package/lib/Providers/MqttOverWSProvider.d.ts +10 -6
- package/lib/Providers/MqttOverWSProvider.js.map +1 -1
- package/lib/Providers/PubSubProvider.d.ts +7 -7
- package/lib/Providers/PubSubProvider.js.map +1 -1
- package/lib/PubSub.d.ts +3 -3
- package/lib/PubSub.js.map +1 -1
- package/lib/types/Provider.d.ts +3 -3
- package/lib/types/PubSub.d.ts +5 -1
- package/lib-esm/Providers/AWSAppSyncProvider.d.ts +3 -0
- package/lib-esm/Providers/AWSAppSyncProvider.js +3 -0
- package/lib-esm/Providers/AWSAppSyncProvider.js.map +1 -1
- package/lib-esm/Providers/AWSAppSyncRealTimeProvider.d.ts +17 -2
- package/lib-esm/Providers/AWSAppSyncRealTimeProvider.js +8 -5
- package/lib-esm/Providers/AWSAppSyncRealTimeProvider.js.map +1 -1
- package/lib-esm/Providers/AWSIotProvider.d.ts +6 -1
- package/lib-esm/Providers/AWSIotProvider.js +3 -2
- package/lib-esm/Providers/AWSIotProvider.js.map +1 -1
- package/lib-esm/Providers/MqttOverWSProvider.d.ts +10 -6
- package/lib-esm/Providers/MqttOverWSProvider.js.map +1 -1
- package/lib-esm/Providers/PubSubProvider.d.ts +7 -7
- package/lib-esm/Providers/PubSubProvider.js.map +1 -1
- package/lib-esm/PubSub.d.ts +3 -3
- package/lib-esm/PubSub.js.map +1 -1
- package/lib-esm/types/Provider.d.ts +3 -3
- package/lib-esm/types/PubSub.d.ts +5 -1
- package/package.json +5 -5
- package/src/Providers/AWSAppSyncProvider.ts +27 -26
- package/src/Providers/AWSAppSyncRealTimeProvider.ts +37 -29
- package/src/Providers/AWSIotProvider.ts +10 -1
- package/src/Providers/MqttOverWSProvider.ts +15 -17
- package/src/Providers/PubSubProvider.ts +8 -8
- package/src/PubSub.ts +4 -4
- package/src/types/Provider.ts +3 -7
- package/src/types/PubSub.ts +6 -1
|
@@ -15,7 +15,7 @@ import { v4 as uuid } from 'uuid';
|
|
|
15
15
|
import Observable from 'zen-observable-ts';
|
|
16
16
|
|
|
17
17
|
import { AbstractPubSubProvider } from './PubSubProvider';
|
|
18
|
-
import {
|
|
18
|
+
import { ProviderOptions, SubscriptionObserver } from '../types';
|
|
19
19
|
import { ConsoleLogger as Logger } from '@aws-amplify/core';
|
|
20
20
|
|
|
21
21
|
const logger = new Logger('MqttOverWSProvider');
|
|
@@ -34,11 +34,16 @@ export function mqttTopicMatch(filter: string, topic: string) {
|
|
|
34
34
|
return length === topicArray.length;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
export interface
|
|
37
|
+
export interface MqttProviderOptions extends ProviderOptions {
|
|
38
38
|
clientId?: string;
|
|
39
39
|
url?: string;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
/**
|
|
43
|
+
* @deprecated Migrated to MqttProviderOptions
|
|
44
|
+
*/
|
|
45
|
+
export type MqttProvidertOptions = MqttProviderOptions;
|
|
46
|
+
|
|
42
47
|
class ClientsQueue {
|
|
43
48
|
private promises: Map<string, Promise<any>> = new Map();
|
|
44
49
|
|
|
@@ -69,7 +74,7 @@ const topicSymbol = typeof Symbol !== 'undefined' ? Symbol('topic') : '@@topic';
|
|
|
69
74
|
export class MqttOverWSProvider extends AbstractPubSubProvider {
|
|
70
75
|
private _clientsQueue = new ClientsQueue();
|
|
71
76
|
|
|
72
|
-
constructor(options:
|
|
77
|
+
constructor(options: MqttProviderOptions = {}) {
|
|
73
78
|
super({ ...options, clientId: options.clientId || uuid() });
|
|
74
79
|
}
|
|
75
80
|
|
|
@@ -128,10 +133,7 @@ export class MqttOverWSProvider extends AbstractPubSubProvider {
|
|
|
128
133
|
}
|
|
129
134
|
}
|
|
130
135
|
|
|
131
|
-
public async newClient({
|
|
132
|
-
url,
|
|
133
|
-
clientId,
|
|
134
|
-
}: MqttProvidertOptions): Promise<any> {
|
|
136
|
+
public async newClient({ url, clientId }: MqttProviderOptions): Promise<any> {
|
|
135
137
|
logger.debug('Creating new MQTT client', clientId);
|
|
136
138
|
|
|
137
139
|
// @ts-ignore
|
|
@@ -161,7 +163,7 @@ export class MqttOverWSProvider extends AbstractPubSubProvider {
|
|
|
161
163
|
|
|
162
164
|
protected async connect(
|
|
163
165
|
clientId: string,
|
|
164
|
-
options:
|
|
166
|
+
options: MqttProviderOptions = {}
|
|
165
167
|
): Promise<any> {
|
|
166
168
|
return await this.clientsQueue.get(clientId, clientId =>
|
|
167
169
|
this.newClient({ ...options, clientId })
|
|
@@ -189,15 +191,11 @@ export class MqttOverWSProvider extends AbstractPubSubProvider {
|
|
|
189
191
|
targetTopics.forEach(topic => client.send(topic, message));
|
|
190
192
|
}
|
|
191
193
|
|
|
192
|
-
protected _topicObservers: Map<
|
|
193
|
-
|
|
194
|
-
Set<SubscriptionObserver<any>>
|
|
195
|
-
> = new Map();
|
|
194
|
+
protected _topicObservers: Map<string, Set<SubscriptionObserver<any>>> =
|
|
195
|
+
new Map();
|
|
196
196
|
|
|
197
|
-
protected _clientIdObservers: Map<
|
|
198
|
-
|
|
199
|
-
Set<SubscriptionObserver<any>>
|
|
200
|
-
> = new Map();
|
|
197
|
+
protected _clientIdObservers: Map<string, Set<SubscriptionObserver<any>>> =
|
|
198
|
+
new Map();
|
|
201
199
|
|
|
202
200
|
private _onMessage(topic: string, msg: any) {
|
|
203
201
|
try {
|
|
@@ -223,7 +221,7 @@ export class MqttOverWSProvider extends AbstractPubSubProvider {
|
|
|
223
221
|
|
|
224
222
|
subscribe(
|
|
225
223
|
topics: string[] | string,
|
|
226
|
-
options:
|
|
224
|
+
options: MqttProviderOptions = {}
|
|
227
225
|
): Observable<any> {
|
|
228
226
|
const targetTopics = ([] as string[]).concat(topics);
|
|
229
227
|
logger.debug('Subscribing to topic(s)', targetTopics.join(','));
|
|
@@ -11,19 +11,19 @@
|
|
|
11
11
|
* and limitations under the License.
|
|
12
12
|
*/
|
|
13
13
|
import Observable from 'zen-observable-ts';
|
|
14
|
-
import { PubSubProvider,
|
|
14
|
+
import { PubSubProvider, ProviderOptions } from '../types';
|
|
15
15
|
import { ConsoleLogger as Logger } from '@aws-amplify/core';
|
|
16
16
|
|
|
17
17
|
const logger = new Logger('AbstractPubSubProvider');
|
|
18
18
|
|
|
19
19
|
export abstract class AbstractPubSubProvider implements PubSubProvider {
|
|
20
|
-
private _config:
|
|
20
|
+
private _config: ProviderOptions;
|
|
21
21
|
|
|
22
|
-
constructor(options:
|
|
22
|
+
constructor(options: ProviderOptions = {}) {
|
|
23
23
|
this._config = options;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
configure(config:
|
|
26
|
+
configure(config: ProviderOptions = {}): ProviderOptions {
|
|
27
27
|
this._config = { ...config, ...this._config };
|
|
28
28
|
|
|
29
29
|
logger.debug(`configure ${this.getProviderName()}`, this._config);
|
|
@@ -37,20 +37,20 @@ export abstract class AbstractPubSubProvider implements PubSubProvider {
|
|
|
37
37
|
|
|
38
38
|
abstract getProviderName(): string;
|
|
39
39
|
|
|
40
|
-
protected get options():
|
|
40
|
+
protected get options(): ProviderOptions {
|
|
41
41
|
return { ...this._config };
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
public abstract newClient(clientOptions:
|
|
44
|
+
public abstract newClient(clientOptions: ProviderOptions): Promise<any>;
|
|
45
45
|
|
|
46
46
|
public abstract publish(
|
|
47
47
|
topics: string[] | string,
|
|
48
48
|
msg: any,
|
|
49
|
-
options?:
|
|
49
|
+
options?: ProviderOptions
|
|
50
50
|
): void;
|
|
51
51
|
|
|
52
52
|
public abstract subscribe(
|
|
53
53
|
topics: string[] | string,
|
|
54
|
-
options?:
|
|
54
|
+
options?: ProviderOptions
|
|
55
55
|
): Observable<any>;
|
|
56
56
|
}
|
package/src/PubSub.ts
CHANGED
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER,
|
|
21
21
|
INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER,
|
|
22
22
|
} from '@aws-amplify/core';
|
|
23
|
-
import { PubSubProvider, PubSubOptions,
|
|
23
|
+
import { PubSubProvider, PubSubOptions, ProviderOptions } from './types';
|
|
24
24
|
import { AWSAppSyncProvider, AWSAppSyncRealTimeProvider } from './Providers';
|
|
25
25
|
|
|
26
26
|
const { isNode } = browserOrNode();
|
|
@@ -133,7 +133,7 @@ export class PubSubClass {
|
|
|
133
133
|
);
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
-
private getProviders(options:
|
|
136
|
+
private getProviders(options: ProviderOptions = {}) {
|
|
137
137
|
const { provider: providerName } = options;
|
|
138
138
|
if (!providerName) {
|
|
139
139
|
return this._pluggables;
|
|
@@ -150,7 +150,7 @@ export class PubSubClass {
|
|
|
150
150
|
async publish(
|
|
151
151
|
topics: string[] | string,
|
|
152
152
|
msg: any,
|
|
153
|
-
options?:
|
|
153
|
+
options?: ProviderOptions
|
|
154
154
|
) {
|
|
155
155
|
return Promise.all(
|
|
156
156
|
this.getProviders(options).map(provider =>
|
|
@@ -161,7 +161,7 @@ export class PubSubClass {
|
|
|
161
161
|
|
|
162
162
|
subscribe(
|
|
163
163
|
topics: string[] | string,
|
|
164
|
-
options?:
|
|
164
|
+
options?: ProviderOptions
|
|
165
165
|
): Observable<any> {
|
|
166
166
|
if (isNode && this._options && this._options.ssr) {
|
|
167
167
|
throw new Error(
|
package/src/types/Provider.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* and limitations under the License.
|
|
12
12
|
*/
|
|
13
13
|
import Observable from 'zen-observable-ts';
|
|
14
|
-
import {
|
|
14
|
+
import { ProviderOptions } from './PubSub';
|
|
15
15
|
|
|
16
16
|
export interface PubSubProvider {
|
|
17
17
|
// configure your provider
|
|
@@ -23,14 +23,10 @@ export interface PubSubProvider {
|
|
|
23
23
|
// return the name of you provider
|
|
24
24
|
getProviderName(): string;
|
|
25
25
|
|
|
26
|
-
publish(
|
|
27
|
-
topics: string[] | string,
|
|
28
|
-
msg: any,
|
|
29
|
-
options?: ProvidertOptions
|
|
30
|
-
): void;
|
|
26
|
+
publish(topics: string[] | string, msg: any, options?: ProviderOptions): void;
|
|
31
27
|
|
|
32
28
|
subscribe(
|
|
33
29
|
topics: string[] | string,
|
|
34
|
-
options?:
|
|
30
|
+
options?: ProviderOptions
|
|
35
31
|
): Observable<any>;
|
|
36
32
|
}
|
package/src/types/PubSub.ts
CHANGED
|
@@ -14,6 +14,11 @@ export interface PubSubOptions {
|
|
|
14
14
|
[key: string]: any;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
export interface
|
|
17
|
+
export interface ProviderOptions {
|
|
18
18
|
[key: string]: any;
|
|
19
19
|
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @deprecated Migrated to ProviderOptions
|
|
23
|
+
*/
|
|
24
|
+
export type ProvidertOptions = ProviderOptions;
|