@zimi/remote 0.1.0 → 0.2.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/dist/remote.js CHANGED
@@ -1,192 +1,197 @@
1
- import { RemoteError, RemoteNotFoundError, RemoteTimeoutError, response, } from './response';
2
- const RESPONSE_PREFIX = '_response_';
3
- function defaultLog(...data) {
4
- if (!this.debug) {
5
- return;
6
- }
7
- console.log(`[remote of ${this.deviceId}]`, ...data);
8
- }
9
- export class Remote {
10
- /**
11
- * 设备 id 应该唯一,用于区分不同设备。
12
- * 你可以在任何时候修改(更新)它。
13
- * @default ''
14
- */
15
- get deviceId() {
16
- return this.deviceIdValue;
17
- }
18
- set deviceId(deviceId) {
19
- this.log(`deviceId set: from "${this.deviceIdValue}" to "${deviceId}"`);
20
- this.deviceIdValue = deviceId;
21
- }
22
- constructor(adaptor, config) {
23
- var _a, _b, _c, _d;
24
- Object.defineProperty(this, "adaptor", {
25
- enumerable: true,
26
- configurable: true,
27
- writable: true,
28
- value: adaptor
29
- });
30
- Object.defineProperty(this, "debug", {
31
- enumerable: true,
32
- configurable: true,
33
- writable: true,
34
- value: false
35
- });
36
- Object.defineProperty(this, "log", {
37
- enumerable: true,
38
- configurable: true,
39
- writable: true,
40
- value: void 0
41
- });
42
- /**
43
- * (调用对方函数时的)默认超时时间,单位 ms
44
- * @default 30000
45
- */
46
- Object.defineProperty(this, "defaultTimeoutMs", {
47
- enumerable: true,
48
- configurable: true,
49
- writable: true,
50
- value: 30000
51
- });
52
- Object.defineProperty(this, "map", {
53
- enumerable: true,
54
- configurable: true,
55
- writable: true,
56
- value: {}
57
- });
58
- Object.defineProperty(this, "deviceIdValue", {
59
- enumerable: true,
60
- configurable: true,
61
- writable: true,
62
- value: ''
63
- });
64
- Object.defineProperty(this, "_", {
65
- enumerable: true,
66
- configurable: true,
67
- writable: true,
68
- value: new Proxy({}, {
69
- get: (_, k) => this.callAsync.bind(this, k),
70
- })
71
- });
72
- Object.defineProperty(this, "self", {
73
- enumerable: true,
74
- configurable: true,
75
- writable: true,
76
- value: new Proxy({}, {
77
- get: (_, k) => { var _a; return (_a = this.map[k]) === null || _a === void 0 ? void 0 : _a.callback; },
78
- })
79
- });
80
- this.debug = (_a = config === null || config === void 0 ? void 0 : config.debug) !== null && _a !== void 0 ? _a : this.debug;
81
- this.defaultTimeoutMs = (_b = config === null || config === void 0 ? void 0 : config.defaultTimeoutMs) !== null && _b !== void 0 ? _b : this.defaultTimeoutMs;
82
- this.log = (_c = config === null || config === void 0 ? void 0 : config.log) !== null && _c !== void 0 ? _c : defaultLog.bind(this);
83
- this.deviceId = (_d = config === null || config === void 0 ? void 0 : config.deviceId) !== null && _d !== void 0 ? _d : this.deviceId;
84
- adaptor.every(async (e) => {
85
- var _a;
86
- const { deviceId: selfDeviceId } = this;
87
- const { name, data, deviceId: targetDeviceId, callbackName } = e;
88
- const callback = (_a = this.map[name]) === null || _a === void 0 ? void 0 : _a.callback;
89
- if (!callback) {
90
- if (name.startsWith(RESPONSE_PREFIX)) {
91
- // 这是响应,会在 callAsync once 中处理,这儿不用处理
92
- this.log('[every] response received: ', e);
93
- return;
94
- }
95
- this.log('callback not found: ', name);
96
- if (callbackName) {
97
- adaptor.emit({
98
- deviceId: selfDeviceId,
99
- targetDeviceId,
100
- name: callbackName,
101
- data: response.error(new RemoteNotFoundError(`callback not found: ${name}`)),
102
- });
103
- }
104
- return;
105
- }
106
- if (!callbackName) {
107
- this.log('should not respond: ', e);
108
- void callback(data, { deviceId: targetDeviceId });
109
- return;
110
- }
111
- this.log(`callback: ${name}; respondName: ${callbackName}; data: `, data);
112
- try {
113
- const ret = await callback(data, { deviceId: targetDeviceId });
114
- this.log('callback return: ', ret);
115
- adaptor.emit({
116
- deviceId: selfDeviceId,
117
- targetDeviceId,
118
- name: callbackName,
119
- data: response.success(ret),
120
- });
121
- }
122
- catch (error) {
123
- this.log('callback error: ', error);
124
- adaptor.emit({
125
- deviceId: selfDeviceId,
126
- targetDeviceId,
127
- name: callbackName,
128
- data: response.error(RemoteError.fromError(error)),
129
- });
130
- }
131
- });
132
- }
133
- /**
134
- * 调用其他端的方法;会等待对方响应。
135
- * 不能直接使用该方法,应该使用 proxy。
136
- * @WARNING 不能用于响应其他端。
137
- */
138
- callAsync(name, data, config) {
139
- var _a;
140
- const timeoutMs = (_a = config === null || config === void 0 ? void 0 : config.timeoutMs) !== null && _a !== void 0 ? _a : this.defaultTimeoutMs;
141
- const { deviceId } = this;
142
- const randomStr = Math.random().toString(36).slice(2);
143
- // 本条消息的响应名
144
- const responseName = `${RESPONSE_PREFIX}-${name}-${deviceId}-${randomStr}`;
145
- return new Promise((resolve, reject) => {
146
- var _a;
147
- let timer;
148
- this.log(`callAsync ${name}: waiting for response: ${responseName}`);
149
- const callback = (e) => {
150
- var _a;
151
- clearTimeout(timer);
152
- this.log(`response received: ${responseName}`, e);
153
- if (RemoteError.isRemoteError(e.data)) {
154
- reject(RemoteError.fromError(e.data));
155
- }
156
- else {
157
- resolve((_a = e.data) === null || _a === void 0 ? void 0 : _a.data);
158
- }
159
- };
160
- this.adaptor.once(responseName, callback);
161
- timer = setTimeout(() => {
162
- this.log(`timeout: ${responseName}`);
163
- this.adaptor.off(responseName, callback);
164
- reject(new RemoteTimeoutError(`timeout: ${name}`));
165
- }, timeoutMs);
166
- this.adaptor.emit({
167
- deviceId,
168
- targetDeviceId: (_a = config === null || config === void 0 ? void 0 : config.targetDeviceId) !== null && _a !== void 0 ? _a : '',
169
- name,
170
- data,
171
- callbackName: responseName,
172
- });
173
- });
174
- }
175
- /**
176
- * 注册方法,供对方调用;
177
- */
178
- register(name, callback) {
179
- this.map[name] = { callback };
180
- }
181
- }
182
- export function isRemoteAdaptorData(data) {
183
- return (!!data &&
184
- typeof data === 'object' &&
185
- 'deviceId' in data &&
186
- 'name' in data &&
187
- typeof data.deviceId === 'string' &&
188
- typeof data.name === 'string' &&
189
- !!data.deviceId &&
190
- !!data.name);
191
- }
1
+ import { RemoteError, RemoteNotFoundError, RemoteTimeoutError, response, } from './response';
2
+ const RESPONSE_PREFIX = '_response_';
3
+ function defaultLog(...data) {
4
+ if (!this.debug) {
5
+ return;
6
+ }
7
+ console.log(`[remote of ${this.deviceId}]`, ...data);
8
+ }
9
+ export class Remote {
10
+ /**
11
+ * 设备 id 应该唯一,用于区分不同设备。
12
+ * 你可以在任何时候修改(更新)它。
13
+ * @default ''
14
+ */
15
+ get deviceId() {
16
+ return this.deviceIdValue;
17
+ }
18
+ set deviceId(deviceId) {
19
+ this.log(`deviceId set: from "${this.deviceIdValue}" to "${deviceId}"`);
20
+ this.deviceIdValue = deviceId;
21
+ }
22
+ constructor(adaptor, config) {
23
+ var _a, _b, _c, _d;
24
+ Object.defineProperty(this, "adaptor", {
25
+ enumerable: true,
26
+ configurable: true,
27
+ writable: true,
28
+ value: adaptor
29
+ });
30
+ Object.defineProperty(this, "debug", {
31
+ enumerable: true,
32
+ configurable: true,
33
+ writable: true,
34
+ value: false
35
+ });
36
+ Object.defineProperty(this, "log", {
37
+ enumerable: true,
38
+ configurable: true,
39
+ writable: true,
40
+ value: void 0
41
+ });
42
+ /**
43
+ * (调用对方函数时的)默认超时时间,单位 ms
44
+ * @default 30000
45
+ */
46
+ Object.defineProperty(this, "defaultTimeoutMs", {
47
+ enumerable: true,
48
+ configurable: true,
49
+ writable: true,
50
+ value: 30000
51
+ });
52
+ Object.defineProperty(this, "map", {
53
+ enumerable: true,
54
+ configurable: true,
55
+ writable: true,
56
+ value: {}
57
+ });
58
+ Object.defineProperty(this, "deviceIdValue", {
59
+ enumerable: true,
60
+ configurable: true,
61
+ writable: true,
62
+ value: ''
63
+ });
64
+ Object.defineProperty(this, "_", {
65
+ enumerable: true,
66
+ configurable: true,
67
+ writable: true,
68
+ value: new Proxy({}, {
69
+ get: (_, k) => this.callAsync.bind(this, k),
70
+ })
71
+ });
72
+ Object.defineProperty(this, "self", {
73
+ enumerable: true,
74
+ configurable: true,
75
+ writable: true,
76
+ value: new Proxy({}, {
77
+ get: (_, k) => (data) => {
78
+ var _a;
79
+ return (_a = this.map[k]) === null || _a === void 0 ? void 0 : _a.callback(data, {
80
+ deviceId: this.deviceId,
81
+ });
82
+ },
83
+ })
84
+ });
85
+ this.debug = (_a = config === null || config === void 0 ? void 0 : config.debug) !== null && _a !== void 0 ? _a : this.debug;
86
+ this.defaultTimeoutMs = (_b = config === null || config === void 0 ? void 0 : config.defaultTimeoutMs) !== null && _b !== void 0 ? _b : this.defaultTimeoutMs;
87
+ this.log = (_c = config === null || config === void 0 ? void 0 : config.log) !== null && _c !== void 0 ? _c : defaultLog.bind(this);
88
+ this.deviceId = (_d = config === null || config === void 0 ? void 0 : config.deviceId) !== null && _d !== void 0 ? _d : this.deviceId;
89
+ adaptor.every(async (e) => {
90
+ var _a;
91
+ const { deviceId: selfDeviceId } = this;
92
+ const { name, data, deviceId: targetDeviceId, callbackName } = e;
93
+ const callback = (_a = this.map[name]) === null || _a === void 0 ? void 0 : _a.callback;
94
+ if (!callback) {
95
+ if (name.startsWith(RESPONSE_PREFIX)) {
96
+ // 这是响应,会在 callAsync once 中处理,这儿不用处理
97
+ this.log('[every] response received: ', e);
98
+ return;
99
+ }
100
+ this.log('callback not found: ', name);
101
+ if (callbackName) {
102
+ adaptor.emit({
103
+ deviceId: selfDeviceId,
104
+ targetDeviceId,
105
+ name: callbackName,
106
+ data: response.error(new RemoteNotFoundError(`callback not found: ${name}`)),
107
+ });
108
+ }
109
+ return;
110
+ }
111
+ if (!callbackName) {
112
+ this.log('should not respond: ', e);
113
+ void callback(data, { deviceId: targetDeviceId });
114
+ return;
115
+ }
116
+ this.log(`callback: ${name}; respondName: ${callbackName}; data: `, data);
117
+ try {
118
+ const ret = await callback(data, { deviceId: targetDeviceId });
119
+ this.log('callback return: ', ret);
120
+ adaptor.emit({
121
+ deviceId: selfDeviceId,
122
+ targetDeviceId,
123
+ name: callbackName,
124
+ data: response.success(ret),
125
+ });
126
+ }
127
+ catch (error) {
128
+ this.log('callback error: ', error);
129
+ adaptor.emit({
130
+ deviceId: selfDeviceId,
131
+ targetDeviceId,
132
+ name: callbackName,
133
+ data: response.error(RemoteError.fromError(error)),
134
+ });
135
+ }
136
+ });
137
+ }
138
+ /**
139
+ * 调用其他端的方法;会等待对方响应。
140
+ * 不能直接使用该方法,应该使用 proxy。
141
+ * @WARNING 不能用于响应其他端。
142
+ */
143
+ callAsync(name, data, config) {
144
+ var _a;
145
+ const timeoutMs = (_a = config === null || config === void 0 ? void 0 : config.timeoutMs) !== null && _a !== void 0 ? _a : this.defaultTimeoutMs;
146
+ const { deviceId } = this;
147
+ const randomStr = Math.random().toString(36).slice(2);
148
+ // 本条消息的响应名
149
+ const responseName = `${RESPONSE_PREFIX}-${name}-${deviceId}-${randomStr}`;
150
+ return new Promise((resolve, reject) => {
151
+ var _a;
152
+ let timer;
153
+ this.log(`callAsync ${name}: waiting for response: ${responseName}`);
154
+ const callback = (e) => {
155
+ var _a;
156
+ clearTimeout(timer);
157
+ this.log(`response received: ${responseName}`, e);
158
+ if (RemoteError.isRemoteError(e.data)) {
159
+ reject(RemoteError.fromError(e.data));
160
+ }
161
+ else {
162
+ resolve((_a = e.data) === null || _a === void 0 ? void 0 : _a.data);
163
+ }
164
+ };
165
+ this.adaptor.once(responseName, callback);
166
+ timer = setTimeout(() => {
167
+ this.log(`timeout: ${responseName}`);
168
+ this.adaptor.off(responseName, callback);
169
+ reject(new RemoteTimeoutError(`timeout: ${name}`));
170
+ }, timeoutMs);
171
+ this.adaptor.emit({
172
+ deviceId,
173
+ targetDeviceId: (_a = config === null || config === void 0 ? void 0 : config.targetDeviceId) !== null && _a !== void 0 ? _a : '',
174
+ name,
175
+ data,
176
+ callbackName: responseName,
177
+ });
178
+ });
179
+ }
180
+ /**
181
+ * 注册方法,供对方调用;
182
+ */
183
+ register(name, callback) {
184
+ this.map[name] = { callback };
185
+ }
186
+ }
187
+ export function isRemoteAdaptorData(data) {
188
+ return (!!data &&
189
+ typeof data === 'object' &&
190
+ 'deviceId' in data &&
191
+ 'name' in data &&
192
+ typeof data.deviceId === 'string' &&
193
+ typeof data.name === 'string' &&
194
+ !!data.deviceId &&
195
+ !!data.name);
196
+ }
192
197
  //# sourceMappingURL=remote.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
@@ -1,104 +1,104 @@
1
- interface RawRemoteError {
2
- /**
3
- * code > 0 才是合法的 Error;
4
- * name 和 message 都是 human readable 的字符串,
5
- * 仅用于调试和展示,
6
- * 程序逻辑判断请使用 code
7
- */
8
- code: number;
9
- /**
10
- * name 和 message 都是 human readable 的字符串,
11
- * 仅用于调试和展示,
12
- * 程序逻辑判断请使用 code
13
- */
14
- name: string;
15
- /**
16
- * name 和 message 都是 human readable 的字符串,
17
- * 仅用于调试和展示,
18
- * 程序逻辑判断请使用 code
19
- */
20
- message: string;
21
- }
22
- /**
23
- * name 和 message 都是 human readable 的字符串,
24
- * 仅用于调试和展示,
25
- * 程序逻辑判断请使用 code
26
- */
27
- export declare class RemoteError extends Error {
28
- /**
29
- * code > 0 才是合法的 Error;
30
- * name 和 message 都是 human readable 的字符串,
31
- * 仅用于调试和展示,
32
- * 程序逻辑判断请使用 code
33
- */
34
- code: number;
35
- /**
36
- * name 和 message 都是 human readable 的字符串,
37
- * 仅用于调试和展示,
38
- * 程序逻辑判断请使用 code
39
- */
40
- constructor(message: string);
41
- toJson(): RawRemoteError;
42
- toString(): string;
43
- valueOf(): string;
44
- static fromError(err: unknown): RemoteError;
45
- static isRemoteError(data: unknown): data is RawRemoteError;
46
- }
47
- /**
48
- * name 和 message 都是 human readable 的字符串,
49
- * 仅用于调试和展示,
50
- * 程序逻辑判断请使用 code
51
- */
52
- export declare class RemoteTimeoutError extends RemoteError {
53
- /**
54
- * name 和 message 都是 human readable 的字符串,
55
- * 仅用于调试和展示,
56
- * 程序逻辑判断请使用 code
57
- */
58
- static code: number;
59
- /**
60
- * name 和 message 都是 human readable 的字符串,
61
- * 仅用于调试和展示,
62
- * 程序逻辑判断请使用 code
63
- */
64
- code: number;
65
- /**
66
- * name 和 message 都是 human readable 的字符串,
67
- * 仅用于调试和展示,
68
- * 程序逻辑判断请使用 code
69
- */
70
- constructor(message: string);
71
- }
72
- /**
73
- * name 和 message 都是 human readable 的字符串,
74
- * 仅用于调试和展示,
75
- * 程序逻辑判断请使用 code
76
- */
77
- export declare class RemoteNotFoundError extends RemoteError {
78
- /**
79
- * name 和 message 都是 human readable 的字符串,
80
- * 仅用于调试和展示,
81
- * 程序逻辑判断请使用 code
82
- */
83
- static code: number;
84
- /**
85
- * name 和 message 都是 human readable 的字符串,
86
- * 仅用于调试和展示,
87
- * 程序逻辑判断请使用 code
88
- */
89
- code: number;
90
- /**
91
- * name 和 message 都是 human readable 的字符串,
92
- * 仅用于调试和展示,
93
- * 程序逻辑判断请使用 code
94
- */
95
- constructor(message: string);
96
- }
97
- export declare const response: {
98
- success<T>(data: T): {
99
- readonly code: 0;
100
- readonly data: T;
101
- };
102
- error(error: RemoteError): RawRemoteError;
103
- };
104
- export {};
1
+ interface RawRemoteError {
2
+ /**
3
+ * code > 0 才是合法的 Error;
4
+ * name 和 message 都是 human readable 的字符串,
5
+ * 仅用于调试和展示,
6
+ * 程序逻辑判断请使用 code
7
+ */
8
+ code: number;
9
+ /**
10
+ * name 和 message 都是 human readable 的字符串,
11
+ * 仅用于调试和展示,
12
+ * 程序逻辑判断请使用 code
13
+ */
14
+ name: string;
15
+ /**
16
+ * name 和 message 都是 human readable 的字符串,
17
+ * 仅用于调试和展示,
18
+ * 程序逻辑判断请使用 code
19
+ */
20
+ message: string;
21
+ }
22
+ /**
23
+ * name 和 message 都是 human readable 的字符串,
24
+ * 仅用于调试和展示,
25
+ * 程序逻辑判断请使用 code
26
+ */
27
+ export declare class RemoteError extends Error {
28
+ /**
29
+ * code > 0 才是合法的 Error;
30
+ * name 和 message 都是 human readable 的字符串,
31
+ * 仅用于调试和展示,
32
+ * 程序逻辑判断请使用 code
33
+ */
34
+ code: number;
35
+ /**
36
+ * name 和 message 都是 human readable 的字符串,
37
+ * 仅用于调试和展示,
38
+ * 程序逻辑判断请使用 code
39
+ */
40
+ constructor(message: string);
41
+ toJson(): RawRemoteError;
42
+ toString(): string;
43
+ valueOf(): string;
44
+ static fromError(err: unknown): RemoteError;
45
+ static isRemoteError(data: unknown): data is RawRemoteError;
46
+ }
47
+ /**
48
+ * name 和 message 都是 human readable 的字符串,
49
+ * 仅用于调试和展示,
50
+ * 程序逻辑判断请使用 code
51
+ */
52
+ export declare class RemoteTimeoutError extends RemoteError {
53
+ /**
54
+ * name 和 message 都是 human readable 的字符串,
55
+ * 仅用于调试和展示,
56
+ * 程序逻辑判断请使用 code
57
+ */
58
+ static code: number;
59
+ /**
60
+ * name 和 message 都是 human readable 的字符串,
61
+ * 仅用于调试和展示,
62
+ * 程序逻辑判断请使用 code
63
+ */
64
+ code: number;
65
+ /**
66
+ * name 和 message 都是 human readable 的字符串,
67
+ * 仅用于调试和展示,
68
+ * 程序逻辑判断请使用 code
69
+ */
70
+ constructor(message: string);
71
+ }
72
+ /**
73
+ * name 和 message 都是 human readable 的字符串,
74
+ * 仅用于调试和展示,
75
+ * 程序逻辑判断请使用 code
76
+ */
77
+ export declare class RemoteNotFoundError extends RemoteError {
78
+ /**
79
+ * name 和 message 都是 human readable 的字符串,
80
+ * 仅用于调试和展示,
81
+ * 程序逻辑判断请使用 code
82
+ */
83
+ static code: number;
84
+ /**
85
+ * name 和 message 都是 human readable 的字符串,
86
+ * 仅用于调试和展示,
87
+ * 程序逻辑判断请使用 code
88
+ */
89
+ code: number;
90
+ /**
91
+ * name 和 message 都是 human readable 的字符串,
92
+ * 仅用于调试和展示,
93
+ * 程序逻辑判断请使用 code
94
+ */
95
+ constructor(message: string);
96
+ }
97
+ export declare const response: {
98
+ success<T>(data: T): {
99
+ readonly code: 0;
100
+ readonly data: T;
101
+ };
102
+ error(error: RemoteError): RawRemoteError;
103
+ };
104
+ export {};