From 8b0f9759ec66d4a61b0a909bf836c05e3b421361 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Fri, 31 Mar 2017 22:30:39 +0200 Subject: [PATCH] Add ability to disallow API subscriptions (#5366) --- js/src/api/api.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/js/src/api/api.js b/js/src/api/api.js index c797cae58..5be20371e 100644 --- a/js/src/api/api.js +++ b/js/src/api/api.js @@ -26,7 +26,7 @@ import { isFunction } from './util/types'; import { LocalAccountsMiddleware } from './local'; export default class Api extends EventEmitter { - constructor (transport) { + constructor (transport, allowSubscriptions = true) { super(); if (!transport || !isFunction(transport.execute)) { @@ -45,7 +45,9 @@ export default class Api extends EventEmitter { this._trace = new Trace(transport); this._web3 = new Web3(transport); - this._subscriptions = new Subscriptions(this); + if (allowSubscriptions) { + this._subscriptions = new Subscriptions(this); + } // Doing a request here in test env would cause an error if (process.env.NODE_ENV !== 'test') { @@ -112,10 +114,18 @@ export default class Api extends EventEmitter { } subscribe (subscriptionName, callback) { + if (!this._subscriptions) { + return Promise.resolve(1); + } + return this._subscriptions.subscribe(subscriptionName, callback); } unsubscribe (subscriptionId) { + if (!this._subscriptions) { + return Promise.resolve(true); + } + return this._subscriptions.unsubscribe(subscriptionId); }