@arcblock/bridge 2.11.30 → 2.11.32

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/lib/index.js CHANGED
@@ -6,6 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _dsbridge = _interopRequireDefault(require("./dsbridge"));
8
8
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
12
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
13
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
14
+ const BRIDGE_VERSION = '1';
9
15
  var _default = exports.default = {
10
16
  register() {
11
17
  if (_dsbridge.default.canUseBridge()) {
@@ -142,5 +148,67 @@ var _default = exports.default = {
142
148
  fail(result);
143
149
  }
144
150
  });
151
+ },
152
+ /**
153
+ * 带有 arc 命名空间的方法调用
154
+ * @param {string} eventName 目标的方法名
155
+ * @param {object} [params] 调用的参数,只能为 object
156
+ * @returns {Promise<any>}
157
+ */
158
+ callArc(eventName) {
159
+ let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
160
+ return new Promise((resolve, reject) => {
161
+ const namespace = 'arc';
162
+ const fnName = [namespace, eventName].join('__');
163
+ const mergedParams = _objectSpread(_objectSpread({}, params), {}, {
164
+ _version: BRIDGE_VERSION
165
+ });
166
+ _dsbridge.default.call(fnName, mergedParams, resString => {
167
+ try {
168
+ const result = JSON.parse(resString);
169
+ if ((result === null || result === void 0 ? void 0 : result._version) === BRIDGE_VERSION) {
170
+ if (result.code === 0) {
171
+ try {
172
+ const data = JSON.parse(result.data);
173
+ resolve(data);
174
+ } catch (_unused2) {
175
+ console.warn('Failed to parse result.data');
176
+ resolve(result.data);
177
+ }
178
+ } else {
179
+ reject(new Error(result.error));
180
+ }
181
+ } else {
182
+ // DEPRECATED: @zhanghan 兼容旧版本的 native 响应
183
+ resolve(result);
184
+ }
185
+ } catch (_unused3) {
186
+ console.warn('Failed to parse resString');
187
+ resolve(resString);
188
+ }
189
+ });
190
+ });
191
+ },
192
+ registerBlocklet(eventName) {
193
+ let cb = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : () => {};
194
+ if (_dsbridge.default.canUseBridge()) {
195
+ const namespace = 'blocklet';
196
+ const cbName = [namespace, eventName].join('__');
197
+ _dsbridge.default.registerAsyn(cbName, function () {
198
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
199
+ args[_key2] = arguments[_key2];
200
+ }
201
+ const parsedArgs = args.map(x => {
202
+ try {
203
+ return JSON.parse(x);
204
+ } catch (_unused4) {
205
+ return x;
206
+ }
207
+ });
208
+ cb(...parsedArgs);
209
+ });
210
+ } else {
211
+ console.warn('dsbridge is not available');
212
+ }
145
213
  }
146
214
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcblock/bridge",
3
- "version": "2.11.30",
3
+ "version": "2.11.32",
4
4
  "description": "a bridge sdk support all js api from DID Wallet.",
5
5
  "keywords": [
6
6
  "bridge",
@@ -38,5 +38,5 @@
38
38
  "eslint-plugin-react-hooks": "^4.6.0",
39
39
  "jest": "^29.7.0"
40
40
  },
41
- "gitHead": "a4a88b339b04b907c7f76927806324c98d4b2904"
41
+ "gitHead": "965afb3d355e01d89fb90f5e39c6b96389fbbe07"
42
42
  }
package/src/index.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import dsbridge from './dsbridge';
2
2
 
3
+ const BRIDGE_VERSION = '1';
4
+
3
5
  export default {
4
6
  register(...args) {
5
7
  if (dsbridge.canUseBridge()) {
@@ -112,4 +114,60 @@ export default {
112
114
  }
113
115
  });
114
116
  },
117
+
118
+ /**
119
+ * 带有 arc 命名空间的方法调用
120
+ * @param {string} eventName 目标的方法名
121
+ * @param {object} [params] 调用的参数,只能为 object
122
+ * @returns {Promise<any>}
123
+ */
124
+ callArc(eventName, params = {}) {
125
+ return new Promise((resolve, reject) => {
126
+ const namespace = 'arc';
127
+ const fnName = [namespace, eventName].join('__');
128
+ const mergedParams = { ...params, _version: BRIDGE_VERSION };
129
+ dsbridge.call(fnName, mergedParams, (resString) => {
130
+ try {
131
+ const result = JSON.parse(resString);
132
+ if (result?._version === BRIDGE_VERSION) {
133
+ if (result.code === 0) {
134
+ try {
135
+ const data = JSON.parse(result.data);
136
+ resolve(data);
137
+ } catch {
138
+ console.warn('Failed to parse result.data');
139
+ resolve(result.data);
140
+ }
141
+ } else {
142
+ reject(new Error(result.error));
143
+ }
144
+ } else {
145
+ // DEPRECATED: @zhanghan 兼容旧版本的 native 响应
146
+ resolve(result);
147
+ }
148
+ } catch {
149
+ console.warn('Failed to parse resString');
150
+ resolve(resString);
151
+ }
152
+ });
153
+ });
154
+ },
155
+ registerBlocklet(eventName, cb = () => {}) {
156
+ if (dsbridge.canUseBridge()) {
157
+ const namespace = 'blocklet';
158
+ const cbName = [namespace, eventName].join('__');
159
+ dsbridge.registerAsyn(cbName, (...args) => {
160
+ const parsedArgs = args.map((x) => {
161
+ try {
162
+ return JSON.parse(x);
163
+ } catch {
164
+ return x;
165
+ }
166
+ });
167
+ cb(...parsedArgs);
168
+ });
169
+ } else {
170
+ console.warn('dsbridge is not available');
171
+ }
172
+ },
115
173
  };