@open-web3/api-mobx
Version:
MobX integration for polkadot.js
42 lines (32 loc) • 1.15 kB
JavaScript
exports.__esModule = true;
exports.createMethodSubscribe = createMethodSubscribe;
exports.default = void 0;
var _util = require("@polkadot/util");
function createMethodSubscribe(ws, methods, params, callback) {
const [updateType, subMethod, unsubMethod] = methods;
let subscriptionPromise = Promise.resolve();
const errorHandler = error => {
callback(error);
};
try {
const update = (error, result) => {
if (error) {
// errorHandler(error)
return;
}
callback(undefined, result);
};
subscriptionPromise = ws.subscribe(updateType, subMethod, params, update).catch(error => errorHandler(error));
} catch (error) {
errorHandler(error);
}
return () => {
subscriptionPromise.then(subscriptionId => (0, _util.isNumber)(subscriptionId) ? ws.unsubscribe(updateType, unsubMethod, subscriptionId) : Promise.resolve(false));
};
}
function subscribeStorage(ws, callback) {
return createMethodSubscribe(ws, ['state_storage', 'state_subscribeStorage', 'state_unsubscribeStorage'], [], callback);
}
var _default = subscribeStorage;
exports.default = _default;
;