@kbapp/js-bridge 0.2.1-alpha.0 → 0.2.3-alpha.0

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/README.MD CHANGED
@@ -7,28 +7,45 @@
7
7
  npm:
8
8
 
9
9
  ```js
10
- npm i '@kbapp/js-bridge'
10
+ npm i @kbapp/js-bridge
11
11
  ```
12
12
 
13
13
  yarn:
14
14
 
15
15
  ```js
16
- yarn add '@kbapp/js-bridge'
16
+ yarn add @kbapp/js-bridge
17
17
  ```
18
18
 
19
19
  pnpm:
20
20
 
21
21
  ```js
22
- pnpm add '@kbapp/js-bridge'
22
+ pnpm add @kbapp/js-bridge
23
23
  ```
24
24
 
25
25
  ## 示例
26
26
 
27
27
  ```js
28
- import { saveImageToLocal } from '@kbapp/js-bridge'
29
-
30
- saveImageToLocal({
31
- imageUrl: 'https://static.kaiba315.com.cn/kaiba-logo.png',
28
+ import { saveImageToLocal, JSBridgeCode } from '@kbapp/js-bridge'
29
+
30
+ defineComponents({
31
+ /** 保存图片案例 */
32
+ async saveImageHandle() {
33
+ try {
34
+ await saveImageToLocal({
35
+ imageUrl: 'https://static.kaiba315.com.cn/kaiba-logo.png',
36
+ })
37
+ } catch (error) {
38
+ switch (error.errCode) {
39
+ case JSBridgeCode.UNSUPPORTED_VERSION:
40
+ // 用户当前版本为支持该桥接,此时应当引导用户升级app
41
+ // 用户同意后,可以调用 checkForNewVersion()或者前往应用商城
42
+ return
43
+
44
+ default:
45
+ return
46
+ }
47
+ }
48
+ },
32
49
  })
33
50
  ```
34
51
 
@@ -46,7 +63,15 @@ saveImageToLocal({
46
63
 
47
64
  #### 返回值
48
65
 
49
-
66
+ ```js
67
+ Promise<void>
68
+ ```
69
+
70
+ #### 异常返回值
71
+
72
+ ```js
73
+ Promise<{ errCode: KbappJsBridgeCode }>
74
+ ```
50
75
 
51
76
  ---
52
77
 
@@ -62,7 +87,15 @@ saveImageToLocal({
62
87
 
63
88
  #### 返回值
64
89
 
65
-
90
+ ```js
91
+ Promise<void>
92
+ ```
93
+
94
+ #### 异常返回值
95
+
96
+ ```js
97
+ Promise<{ errCode: KbappJsBridgeCode }>
98
+ ```
66
99
 
67
100
  ---
68
101
 
@@ -81,7 +114,9 @@ saveImageToLocal({
81
114
 
82
115
  #### 返回值
83
116
 
84
-
117
+ ```js
118
+ void
119
+ ```
85
120
 
86
121
  ---
87
122
 
@@ -97,8 +132,96 @@ saveImageToLocal({
97
132
 
98
133
  #### 返回值
99
134
 
135
+ ```js
136
+ Promise<void>
137
+ ```
138
+
139
+ #### 异常返回值
140
+
141
+ ```js
142
+ Promise<{ errCode: KbappJsBridgeCode }>
143
+ ```
144
+
145
+ ---
146
+
147
+ ### setWebViewTitle
148
+
149
+ > 设置网页标题(建议通过 document.title 设置)
150
+
151
+ #### 请求参数
152
+
153
+ | 参数 | 值类型 | 必填? | 说明 |
154
+ | ----- | ------ | ----- | ---------------- |
155
+ | title | string | 必填 | webview 标题文案 |
156
+
157
+ #### 返回值
158
+
159
+ ```js
160
+ Promise<void>
161
+ ```
162
+
163
+ #### 异常返回值
164
+
165
+ ```js
166
+ Promise<{ errCode: KbappJsBridgeCode }>
167
+ ```
168
+
169
+ ---
170
+
171
+ ### checkForNewVersion
172
+
173
+ > 检测是否有新版本可用, iOS 无论是否有最新版本都直接跳转到应用商店, 安卓如果有新版,则弹窗提示,没有的话 toast 提示无新版本
174
+
175
+ #### 请求参数
176
+
100
177
 
101
178
 
179
+ #### 返回值
180
+
181
+ ```js
182
+ void
183
+ ```
184
+
185
+ ---
186
+
187
+ ### canIUse
188
+
189
+ > 检测某个方法能被当前版本使用
190
+
191
+ #### 请求参数
192
+
193
+ 传入方法名(string)
194
+
195
+ #### 返回值
196
+
197
+ ```js
198
+ Promise<boolean>
199
+ ```
200
+
201
+ #### 示例
202
+
203
+ ```js
204
+ import { canIUse } from '@kbapp/js-bridge';
205
+
206
+ if (await canIUse('sharePoster')) {
207
+ console.log('当前app版本能使用')
208
+ } else {
209
+ console.log('请升级app')
210
+ }
211
+ ```
212
+
213
+ ---
214
+
215
+ ### JSBridgeCode
216
+
217
+ > 错误码枚举
218
+
219
+ #### 键值对
220
+
221
+ | key | value | 说明 |
222
+ | ------------------- | ----- | ------------------------------------------------------ |
223
+ | UNSUPPORTED_VERSION | 1001 | 用户当前 app 版本不支持该 桥接(此时请引导用户升级 app) |
224
+
102
225
  ## 常见问题
103
226
 
104
227
  1. 桥接触发无反应: 请检查当前是否处于开吧 app 内,以及当前网页是否在白名单内
@@ -33,3 +33,16 @@ export declare const callHandler: <Result>(data: {
33
33
  /** 成功或失败均触发.有且当该任务有回调时触发 */
34
34
  complete?: (() => void) | undefined;
35
35
  }) => void;
36
+ /**
37
+ *
38
+ * @description promise版本 callHandle
39
+ */
40
+ export declare function callHandlerPromise<Result>(data: {
41
+ /** 任务名称 */
42
+ name: string;
43
+ /** 任务参数 */
44
+ params: {
45
+ type: number;
46
+ data?: any;
47
+ };
48
+ }): Promise<Result>;
@@ -1,6 +1,17 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.callHandler = exports.registerHandler = exports.$bridge = void 0;
14
+ exports.callHandlerPromise = exports.callHandler = exports.registerHandler = exports.$bridge = void 0;
4
15
  var js_bridge_1 = require("./lib/js-bridge");
5
16
  var ds_bridge_1 = require("./lib/ds-bridge");
6
17
  var flutter_ds_bridge_1 = require("./lib/flutter-ds-bridge");
@@ -43,3 +54,13 @@ var callHandler = function (data) {
43
54
  });
44
55
  };
45
56
  exports.callHandler = callHandler;
57
+ /**
58
+ *
59
+ * @description promise版本 callHandle
60
+ */
61
+ function callHandlerPromise(data) {
62
+ return new Promise(function (resolve, reject) {
63
+ (0, exports.callHandler)(__assign(__assign({}, data), { success: resolve, fail: reject }));
64
+ });
65
+ }
66
+ exports.callHandlerPromise = callHandlerPromise;
package/dist/index.d.ts CHANGED
@@ -1,3 +1,6 @@
1
+ export { JSBridgeCode } from './lib/js-bridge-code';
2
+ export { canIUse } from './lib/can-i-use';
3
+ export { getDeviceInfo } from './lib/get-device-info';
1
4
  /**
2
5
  *
3
6
  * @description 唤起更多分享模态框
@@ -15,7 +18,6 @@ invokeMoreShareModal({
15
18
  })
16
19
  ```
17
20
  *
18
- * @returns {void} 该函数无返回值
19
21
  */
20
22
  export declare function invokeMoreShareModal(data: {
21
23
  /** 分享出去的h5地址 */
@@ -29,7 +31,7 @@ export declare function invokeMoreShareModal(data: {
29
31
  }): void;
30
32
  /**
31
33
  *
32
- * @description 保存图片到本地.
34
+ * @description 保存图片到本地. app版本要求6.90.11
33
35
  *
34
36
  * **示例代码**
35
37
  ```js
@@ -40,15 +42,14 @@ saveImageToLocal({
40
42
  })
41
43
  ```
42
44
  *
43
- * @returns {void} 无法确认是否正常保存,因此该函数无返回值
44
45
  */
45
- export declare function saveImageToLocal(data: {
46
+ export declare const saveImageToLocal: (data: {
46
47
  /** 图片url(仅支持网络地址) */
47
48
  imageUrl: string;
48
- }): void;
49
+ }) => Promise<void>;
49
50
  /**
50
51
  *
51
- * @description 保存视频到本地.
52
+ * @description 保存视频到本地. app版本要求6.90.11
52
53
  *
53
54
  * **示例代码**
54
55
  ```js
@@ -59,15 +60,14 @@ saveVideoToLocal({
59
60
  })
60
61
  ```
61
62
  *
62
- * @returns {void} 无法确认是否正常保存,因此该函数无返回值
63
63
  */
64
- export declare function saveVideoToLocal(data: {
64
+ export declare const saveVideoToLocal: (data: {
65
65
  /** 视频url(仅支持网络地址) */
66
66
  videoUrl: string;
67
- }): void;
67
+ }) => Promise<void>;
68
68
  /**
69
69
  *
70
- * @description 分享海报
70
+ * @description 分享海报 app版本要求6.90.11
71
71
  * **示例代码**
72
72
  ```js
73
73
  import { sharePoster } from '@kbapp/js-bridge';
@@ -77,7 +77,38 @@ sharePoster({
77
77
  })
78
78
  ```
79
79
  */
80
- export declare function sharePoster(data: {
80
+ export declare const sharePoster: (data: {
81
81
  /** 图片(仅支持网络地址,jpg/png) */
82
82
  imageUrl: string;
83
- }): void;
83
+ }) => Promise<void>;
84
+ /**
85
+ *
86
+ * @description 设置网页标题(建议通过document.title设置), app版本要求6.90.11
87
+ *
88
+ * **示例代码**
89
+ ```js
90
+ import { setWebViewTitle } from '@kbapp/js-bridge';
91
+
92
+ setWebViewTitle({
93
+ title: '开吧标题'
94
+ })
95
+ ```
96
+ */
97
+ export declare const setWebViewTitle: (data: {
98
+ /** 网页标题 */
99
+ title: string;
100
+ }) => Promise<void>;
101
+ /**
102
+ *
103
+ * @description 检测是否有新版本可用, iOS无论是否有最新版本都直接跳转到应用商店, 安卓如果有新版, 则弹窗提示, 没有的话toast提示无新版本
104
+ *
105
+ * **示例代码**
106
+ ```js
107
+ import { checkForNewVersion } from '@kbapp/js-bridge';
108
+
109
+ checkForNewVersion({
110
+ title: '开吧标题'
111
+ })
112
+ ```
113
+ */
114
+ export declare function checkForNewVersion(): void;
package/dist/index.js CHANGED
@@ -1,7 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sharePoster = exports.saveVideoToLocal = exports.saveImageToLocal = exports.invokeMoreShareModal = void 0;
3
+ exports.checkForNewVersion = exports.setWebViewTitle = exports.sharePoster = exports.saveVideoToLocal = exports.saveImageToLocal = exports.invokeMoreShareModal = exports.getDeviceInfo = exports.canIUse = exports.JSBridgeCode = void 0;
4
+ var js_bridge_code_1 = require("./lib/js-bridge-code");
5
+ Object.defineProperty(exports, "JSBridgeCode", { enumerable: true, get: function () { return js_bridge_code_1.JSBridgeCode; } });
6
+ var can_i_use_1 = require("./lib/can-i-use");
7
+ Object.defineProperty(exports, "canIUse", { enumerable: true, get: function () { return can_i_use_1.canIUse; } });
8
+ var get_device_info_1 = require("./lib/get-device-info");
9
+ Object.defineProperty(exports, "getDeviceInfo", { enumerable: true, get: function () { return get_device_info_1.getDeviceInfo; } });
4
10
  var core_1 = require("./core");
11
+ var can_i_use_2 = require("./lib/can-i-use");
5
12
  /**
6
13
  *
7
14
  * @description 唤起更多分享模态框
@@ -19,7 +26,6 @@ invokeMoreShareModal({
19
26
  })
20
27
  ```
21
28
  *
22
- * @returns {void} 该函数无返回值
23
29
  */
24
30
  function invokeMoreShareModal(data) {
25
31
  (0, core_1.callHandler)({
@@ -33,7 +39,7 @@ function invokeMoreShareModal(data) {
33
39
  exports.invokeMoreShareModal = invokeMoreShareModal;
34
40
  /**
35
41
  *
36
- * @description 保存图片到本地.
42
+ * @description 保存图片到本地. app版本要求6.90.11
37
43
  *
38
44
  * **示例代码**
39
45
  ```js
@@ -44,9 +50,8 @@ saveImageToLocal({
44
50
  })
45
51
  ```
46
52
  *
47
- * @returns {void} 无法确认是否正常保存,因此该函数无返回值
48
53
  */
49
- function saveImageToLocal(data) {
54
+ exports.saveImageToLocal = (0, can_i_use_2.decoreateCanIUse)('saveImageToLocal', function (data) {
50
55
  (0, core_1.callHandler)({
51
56
  name: 'OpenActRequest',
52
57
  params: {
@@ -54,11 +59,10 @@ function saveImageToLocal(data) {
54
59
  data: data,
55
60
  },
56
61
  });
57
- }
58
- exports.saveImageToLocal = saveImageToLocal;
62
+ });
59
63
  /**
60
64
  *
61
- * @description 保存视频到本地.
65
+ * @description 保存视频到本地. app版本要求6.90.11
62
66
  *
63
67
  * **示例代码**
64
68
  ```js
@@ -69,9 +73,8 @@ saveVideoToLocal({
69
73
  })
70
74
  ```
71
75
  *
72
- * @returns {void} 无法确认是否正常保存,因此该函数无返回值
73
76
  */
74
- function saveVideoToLocal(data) {
77
+ exports.saveVideoToLocal = (0, can_i_use_2.decoreateCanIUse)('saveVideoToLocal', function (data) {
75
78
  (0, core_1.callHandler)({
76
79
  name: 'OpenActRequest',
77
80
  params: {
@@ -79,11 +82,10 @@ function saveVideoToLocal(data) {
79
82
  data: data,
80
83
  },
81
84
  });
82
- }
83
- exports.saveVideoToLocal = saveVideoToLocal;
85
+ });
84
86
  /**
85
87
  *
86
- * @description 分享海报
88
+ * @description 分享海报 app版本要求6.90.11
87
89
  * **示例代码**
88
90
  ```js
89
91
  import { sharePoster } from '@kbapp/js-bridge';
@@ -93,7 +95,7 @@ sharePoster({
93
95
  })
94
96
  ```
95
97
  */
96
- function sharePoster(data) {
98
+ exports.sharePoster = (0, can_i_use_2.decoreateCanIUse)('sharePoster', function (data) {
97
99
  (0, core_1.callHandler)({
98
100
  name: 'OpenActRequest',
99
101
  params: {
@@ -101,5 +103,49 @@ function sharePoster(data) {
101
103
  data: data,
102
104
  },
103
105
  });
106
+ });
107
+ /**
108
+ *
109
+ * @description 设置网页标题(建议通过document.title设置), app版本要求6.90.11
110
+ *
111
+ * **示例代码**
112
+ ```js
113
+ import { setWebViewTitle } from '@kbapp/js-bridge';
114
+
115
+ setWebViewTitle({
116
+ title: '开吧标题'
117
+ })
118
+ ```
119
+ */
120
+ exports.setWebViewTitle = (0, can_i_use_2.decoreateCanIUse)('setWebViewTitle', function (data) {
121
+ (0, core_1.callHandler)({
122
+ name: 'OpenActRequest',
123
+ params: {
124
+ type: 64,
125
+ data: data,
126
+ },
127
+ });
128
+ });
129
+ /**
130
+ *
131
+ * @description 检测是否有新版本可用, iOS无论是否有最新版本都直接跳转到应用商店, 安卓如果有新版, 则弹窗提示, 没有的话toast提示无新版本
132
+ *
133
+ * **示例代码**
134
+ ```js
135
+ import { checkForNewVersion } from '@kbapp/js-bridge';
136
+
137
+ checkForNewVersion({
138
+ title: '开吧标题'
139
+ })
140
+ ```
141
+ */
142
+ function checkForNewVersion() {
143
+ (0, core_1.callHandler)({
144
+ name: 'OpenActRequest',
145
+ params: {
146
+ type: 56,
147
+ data: null,
148
+ },
149
+ });
104
150
  }
105
- exports.sharePoster = sharePoster;
151
+ exports.checkForNewVersion = checkForNewVersion;
@@ -0,0 +1,13 @@
1
+ type JSBridgeMethod = 'invokeMoreShareModal' | 'saveImageToLocal' | 'saveVideoToLocal' | 'sharePoster' | 'setWebViewTitle' | 'checkForNewVersion';
2
+ /**
3
+ *
4
+ * @description 判断某个桥接能否在当前app版本中使用
5
+ * @returns {Promise<boolean>}
6
+ */
7
+ export declare function canIUse(/** 方法名 */ method: JSBridgeMethod): Promise<boolean | undefined>;
8
+ /**
9
+ *
10
+ * @description 装饰器,用于装饰在当前可用的方法
11
+ */
12
+ export declare function decoreateCanIUse<CALLBACK extends (...params: any[]) => any>(method: JSBridgeMethod, cb: CALLBACK): (...params: Parameters<CALLBACK>) => Promise<ReturnType<CALLBACK>>;
13
+ export {};
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.decoreateCanIUse = exports.canIUse = void 0;
40
+ var get_device_info_1 = require("./get-device-info");
41
+ var js_bridge_code_1 = require("./js-bridge-code");
42
+ /**
43
+ *
44
+ * @description 判断某个桥接能否在当前app版本中使用
45
+ * @returns {Promise<boolean>}
46
+ */
47
+ function canIUse(/** 方法名 */ method) {
48
+ return __awaiter(this, void 0, void 0, function () {
49
+ var deviceInfo, error_1;
50
+ return __generator(this, function (_a) {
51
+ switch (_a.label) {
52
+ case 0:
53
+ _a.trys.push([0, 2, , 3]);
54
+ return [4 /*yield*/, (0, get_device_info_1.getDeviceInfo)()];
55
+ case 1:
56
+ deviceInfo = _a.sent();
57
+ switch (method) {
58
+ case 'sharePoster':
59
+ case 'setWebViewTitle':
60
+ case 'saveVideoToLocal':
61
+ case 'saveImageToLocal':
62
+ return [2 /*return*/, deviceInfo.vcode >= 69011];
63
+ default:
64
+ return [2 /*return*/, true];
65
+ }
66
+ return [3 /*break*/, 3];
67
+ case 2:
68
+ error_1 = _a.sent();
69
+ console.error('canIUse.接口异常,模拟结果true');
70
+ return [3 /*break*/, 3];
71
+ case 3: return [2 /*return*/];
72
+ }
73
+ });
74
+ });
75
+ }
76
+ exports.canIUse = canIUse;
77
+ /**
78
+ *
79
+ * @description 装饰器,用于装饰在当前可用的方法
80
+ */
81
+ function decoreateCanIUse(method, cb) {
82
+ return function () {
83
+ var params = [];
84
+ for (var _i = 0; _i < arguments.length; _i++) {
85
+ params[_i] = arguments[_i];
86
+ }
87
+ return __awaiter(this, void 0, void 0, function () {
88
+ return __generator(this, function (_a) {
89
+ switch (_a.label) {
90
+ case 0: return [4 /*yield*/, canIUse(method)];
91
+ case 1:
92
+ if (_a.sent()) {
93
+ return [2 /*return*/, cb.apply(void 0, params)];
94
+ }
95
+ return [2 /*return*/, Promise.reject({ errCode: js_bridge_code_1.JSBridgeCode.UNSUPPORTED_VERSION })];
96
+ }
97
+ });
98
+ });
99
+ };
100
+ }
101
+ exports.decoreateCanIUse = decoreateCanIUse;
@@ -0,0 +1,5 @@
1
+ /**
2
+ *
3
+ * @description 获取设备信息
4
+ */
5
+ export declare const getDeviceInfo: () => Promise<any>;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDeviceInfo = void 0;
4
+ var promise_cache_1 = require("../util/promise-cache");
5
+ var core_1 = require("../core");
6
+ /**
7
+ *
8
+ * @description 获取设备信息
9
+ */
10
+ exports.getDeviceInfo = (0, promise_cache_1.decoratePromiseCache)(function () {
11
+ return (0, core_1.callHandlerPromise)({
12
+ name: 'OpenActRequest',
13
+ params: {
14
+ type: 35,
15
+ data: {},
16
+ },
17
+ }).catch(function (error) {
18
+ // 历史遗留性问题, 该函数的返回结果不在data内
19
+ if (error.v) {
20
+ return error;
21
+ }
22
+ return Promise.reject(error);
23
+ });
24
+ });
@@ -0,0 +1,8 @@
1
+ /**
2
+ *
3
+ * @description kbapp桥接状态码
4
+ */
5
+ export declare enum JSBridgeCode {
6
+ /** 当前版本不支持 */
7
+ UNSUPPORTED_VERSION = 1001
8
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JSBridgeCode = void 0;
4
+ /**
5
+ *
6
+ * @description kbapp桥接状态码
7
+ */
8
+ var JSBridgeCode;
9
+ (function (JSBridgeCode) {
10
+ /** 当前版本不支持 */
11
+ JSBridgeCode[JSBridgeCode["UNSUPPORTED_VERSION"] = 1001] = "UNSUPPORTED_VERSION";
12
+ })(JSBridgeCode || (exports.JSBridgeCode = JSBridgeCode = {}));
@@ -0,0 +1,5 @@
1
+ /**
2
+ *
3
+ * @description 缓存promise结果
4
+ */
5
+ export declare function decoratePromiseCache<CB extends (...params: any[]) => any>(cb: CB): (...params: Parameters<CB>) => ReturnType<CB>;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decoratePromiseCache = void 0;
4
+ /**
5
+ *
6
+ * @description 缓存promise结果
7
+ */
8
+ function decoratePromiseCache(cb) {
9
+ var promiseResult;
10
+ return function () {
11
+ var params = [];
12
+ for (var _i = 0; _i < arguments.length; _i++) {
13
+ params[_i] = arguments[_i];
14
+ }
15
+ if (promiseResult) {
16
+ return promiseResult;
17
+ }
18
+ promiseResult = cb.apply(void 0, params);
19
+ Promise.resolve(promiseResult).catch(function () {
20
+ promiseResult = undefined;
21
+ });
22
+ return promiseResult;
23
+ };
24
+ }
25
+ exports.decoratePromiseCache = decoratePromiseCache;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.2.1-alpha.0",
6
+ "version": "0.2.3-alpha.0",
7
7
  "description": "开吧客户端桥接",
8
8
  "main": "./dist/index.js",
9
9
  "author": "along"