Skip to content

Commit e0f6339

Browse files
authored
Merge pull request #81 from kaleido-io/deletepool
Add deleteTokenPool, expose "protocol_error" type, add "noack" option
2 parents 3c88b71 + 75a5262 commit e0f6339

File tree

4 files changed

+27
-13
lines changed

4 files changed

+27
-13
lines changed

lib/firefly.ts

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,10 @@ export default class FireFly extends HttpBase {
344344
return this.getOne<FireFlyTokenPoolResponse>(`/tokens/pools/${nameOrId}`, options);
345345
}
346346

347+
async deleteTokenPool(nameOrId: string, options?: FireFlyDeleteOptions) {
348+
await this.deleteOne(`/tokens/pools/${nameOrId}`, options);
349+
}
350+
347351
mintTokens(transfer: FireFlyTokenMintRequest, options?: FireFlyCreateOptions) {
348352
return this.createOne<FireFlyTokenTransferResponse>('/tokens/mint', transfer, options);
349353
}
@@ -608,26 +612,34 @@ export default class FireFly extends HttpBase {
608612
subscriptions: string | string[] | FireFlySubscriptionBase,
609613
callback: FireFlyWebSocketCallback,
610614
socketOptions?: WebSocket.ClientOptions | http.ClientRequestArgs,
611-
afterConnect?: FireFlyWebSocketConnectCallback,
615+
fireflySocketOptions?: Partial<FireFlyWebSocketOptions> | FireFlyWebSocketConnectCallback,
612616
): FireFlyWebSocket {
617+
if (typeof fireflySocketOptions === 'function') {
618+
// Legacy compatibility (afterConnect callback passed as 4th arg)
619+
fireflySocketOptions = <FireFlyWebSocketOptions>{
620+
afterConnect: fireflySocketOptions,
621+
};
622+
}
613623
const options: FireFlyWebSocketOptions = {
614624
host: this.options.websocket.host,
615625
namespace: this.options.namespace,
616626
username: this.options.username,
617627
password: this.options.password,
618-
subscriptions: [],
619-
autoack: false,
620628
reconnectDelay: this.options.websocket.reconnectDelay,
621629
heartbeatInterval: this.options.websocket.heartbeatInterval,
622-
socketOptions: socketOptions,
623-
afterConnect: afterConnect,
630+
autoack: false,
631+
...fireflySocketOptions,
632+
socketOptions,
633+
subscriptions: [],
624634
};
625635

626636
const handler: FireFlyWebSocketCallback = (socket, event) => {
627637
this.queue = this.queue.finally(() => callback(socket, event));
628-
this.queue.then(() => {
629-
socket.ack(event);
630-
});
638+
if (!options.noack) {
639+
this.queue.then(() => {
640+
socket.ack(event);
641+
});
642+
}
631643
};
632644

633645
if (Array.isArray(subscriptions)) {

lib/interfaces.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ export interface FireFlyWebSocketOptions {
7676
username?: string;
7777
password?: string;
7878
ephemeral?: FireFlyEphemeralSubscription;
79-
autoack: boolean;
79+
autoack?: boolean;
80+
noack?: boolean;
8081
reconnectDelay: number;
8182
heartbeatInterval: number;
8283
socketOptions?: WebSocket.ClientOptions | http.ClientRequestArgs;
@@ -171,7 +172,8 @@ export interface FireFlyEnrichedEvent extends FireFlyEventResponse {
171172
operation?: FireFlyOperationResponse;
172173
}
173174

174-
export interface FireFlyEventDelivery extends FireFlyEnrichedEvent {
175+
export interface FireFlyEventDelivery extends Omit<FireFlyEnrichedEvent, 'type'> {
176+
type: FireFlyEnrichedEvent['type'] | 'protocol_error';
175177
subscription: {
176178
id: string;
177179
name: string;

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@hyperledger/firefly-sdk",
3-
"version": "1.2.14",
3+
"version": "1.2.15",
44
"description": "Client SDK for Hyperledger FireFly",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",

0 commit comments

Comments
 (0)