UNPKG

1.56 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = decodeResponse;
9
10var _assert = _interopRequireDefault(require("@polkadot/util/assert"));
11
12var _number = _interopRequireDefault(require("@polkadot/util/is/number"));
13
14var _undefined = _interopRequireDefault(require("@polkadot/util/is/undefined"));
15
16// Copyright 2017-2018 @polkadot/api-provider authors & contributors
17// This software may be modified and distributed under the terms
18// of the ISC license. See the LICENSE file for details.
19function checkError(error) {
20 if (!error) {
21 return;
22 }
23
24 const code = error.code,
25 message = error.message;
26 throw new Error(`[${code}]: ${message}`);
27}
28
29function decodeResponse(self, response) {
30 (0, _assert.default)(response, 'Empty response object received');
31 (0, _assert.default)(response.jsonrpc === '2.0', 'Invalid jsonrpc field in decoded object');
32 const isSubscription = !(0, _undefined.default)(response.params) && !(0, _undefined.default)(response.method);
33 (0, _assert.default)((0, _number.default)(response.id) || isSubscription && (0, _number.default)(response.params.subscription), 'Invalid id field in decoded object');
34 checkError(response.error);
35 (0, _assert.default)(!(0, _undefined.default)(response.result) || isSubscription, 'No result found in JsonRpc response');
36
37 if (isSubscription) {
38 checkError(response.params.error);
39 return response.params.result;
40 }
41
42 return response.result;
43}
\No newline at end of file