@zimi/remote 0.2.1-alpha.3 → 0.2.1-alpha.5
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/adaptor.d.ts +32 -0
- package/dist/adaptor.js +2 -0
- package/dist/adaptor.js.map +1 -0
- package/dist/remoteValue/type.d.ts +62 -0
- package/dist/remoteValue/type.js +2 -0
- package/dist/remoteValue/type.js.map +1 -0
- package/package.json +1 -1
- package/src/{adaptor.d.ts → adaptor.ts} +1 -1
- package/src/remoteValue/{type.d.ts → type.ts} +6 -2
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface AdaptorPackageData {
|
|
2
|
+
/**
|
|
3
|
+
* 自身设备 id,应确保唯一性(对方能凭借该 deviceId 找到该设备)
|
|
4
|
+
*/
|
|
5
|
+
deviceId: string;
|
|
6
|
+
/**
|
|
7
|
+
* 对方的设备 id
|
|
8
|
+
*/
|
|
9
|
+
targetDeviceId: string;
|
|
10
|
+
/**
|
|
11
|
+
* 远程调用的对方的方法名
|
|
12
|
+
*/
|
|
13
|
+
name: string;
|
|
14
|
+
data: unknown;
|
|
15
|
+
/**
|
|
16
|
+
* 所需回调的方法名(如果需要回调的话)
|
|
17
|
+
*/
|
|
18
|
+
callbackName?: string;
|
|
19
|
+
}
|
|
20
|
+
type Func<D = unknown, R = unknown> = (data: D) => R;
|
|
21
|
+
export type AdaptorCallback = Func<AdaptorPackageData, void>;
|
|
22
|
+
export interface Adaptor {
|
|
23
|
+
every: (callback: AdaptorCallback) => void;
|
|
24
|
+
/**
|
|
25
|
+
* off 用于移除 once 注册的事件,当事件超时后,需要主动 off
|
|
26
|
+
*/
|
|
27
|
+
off: (name: string, callback: AdaptorCallback) => void;
|
|
28
|
+
on: (name: string, callback: AdaptorCallback) => void;
|
|
29
|
+
once: (name: string, callback: AdaptorCallback) => void;
|
|
30
|
+
emit: (data: AdaptorPackageData) => void;
|
|
31
|
+
}
|
|
32
|
+
export {};
|
package/dist/adaptor.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adaptor.js","sourceRoot":"","sources":["../src/adaptor.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
type HasFunc<T> = T extends (...args: unknown[]) => unknown ? true : T extends unknown[] ? {
|
|
2
|
+
[K in keyof T]: HasFunc<T[K]>;
|
|
3
|
+
}[number] extends false ? false : true : T extends object ? {
|
|
4
|
+
[K in keyof T]: HasFunc<T[K]>;
|
|
5
|
+
}[keyof T] extends false ? false : true : false;
|
|
6
|
+
export type ToFunc<T extends object> = {
|
|
7
|
+
[K in keyof T]: T[K] extends (...args: infer Args) => infer Ret ? (...args: Args) => Promise<Awaited<Ret>> : HasFunc<T[K]> extends false ? () => Promise<T[K]> : T[K] extends object ? ToFunc<T[K]> : never;
|
|
8
|
+
};
|
|
9
|
+
type Assert<T extends true> = T;
|
|
10
|
+
interface TestObj {
|
|
11
|
+
a1: number;
|
|
12
|
+
a2: number[];
|
|
13
|
+
a3: [number, string];
|
|
14
|
+
a4: {
|
|
15
|
+
b: number;
|
|
16
|
+
c: [string];
|
|
17
|
+
};
|
|
18
|
+
a5: () => Promise<number>;
|
|
19
|
+
a6: () => Promise<number[]>;
|
|
20
|
+
a7: () => Promise<[number, string]>;
|
|
21
|
+
b: {
|
|
22
|
+
b1: number;
|
|
23
|
+
b2: number[];
|
|
24
|
+
b3: [number, string];
|
|
25
|
+
b4: () => {
|
|
26
|
+
b: number;
|
|
27
|
+
c: [string];
|
|
28
|
+
};
|
|
29
|
+
b5: () => Promise<number>;
|
|
30
|
+
b6: () => Promise<number[]>;
|
|
31
|
+
b7: () => Promise<[number, string]>;
|
|
32
|
+
};
|
|
33
|
+
f: {
|
|
34
|
+
b: number;
|
|
35
|
+
c: {
|
|
36
|
+
d: () => number;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export type TestA1 = Assert<ToFunc<TestObj>['a1'] extends () => Promise<number> ? true : false>;
|
|
41
|
+
export type TestA2 = Assert<ToFunc<TestObj>['a2'] extends () => Promise<number[]> ? true : false>;
|
|
42
|
+
export type TestA3 = Assert<ToFunc<TestObj>['a3'] extends () => Promise<[number, string]> ? true : false>;
|
|
43
|
+
export type TestA4 = Assert<ToFunc<TestObj>['a4'] extends () => Promise<{
|
|
44
|
+
b: number;
|
|
45
|
+
c: [string];
|
|
46
|
+
}> ? true : false>;
|
|
47
|
+
export type TestA5 = Assert<ToFunc<TestObj>['a5'] extends () => Promise<number> ? true : false>;
|
|
48
|
+
export type TestA6 = Assert<ToFunc<TestObj>['a6'] extends () => Promise<number[]> ? true : false>;
|
|
49
|
+
export type TestA7 = Assert<ToFunc<TestObj>['a7'] extends () => Promise<[number, string]> ? true : false>;
|
|
50
|
+
export type TestB1 = Assert<ToFunc<TestObj>['b']['b1'] extends () => Promise<number> ? true : false>;
|
|
51
|
+
export type TestB2 = Assert<ToFunc<TestObj>['b']['b2'] extends () => Promise<number[]> ? true : false>;
|
|
52
|
+
export type TestB3 = Assert<ToFunc<TestObj>['b']['b3'] extends () => Promise<[number, string]> ? true : false>;
|
|
53
|
+
export type TestB4 = Assert<ToFunc<TestObj>['b']['b4'] extends () => Promise<{
|
|
54
|
+
b: number;
|
|
55
|
+
c: [string];
|
|
56
|
+
}> ? true : false>;
|
|
57
|
+
export type TestB5 = Assert<ToFunc<TestObj>['b']['b5'] extends () => Promise<number> ? true : false>;
|
|
58
|
+
export type TestB6 = Assert<ToFunc<TestObj>['b']['b6'] extends () => Promise<number[]> ? true : false>;
|
|
59
|
+
export type TestB7 = Assert<ToFunc<TestObj>['b']['b7'] extends () => Promise<[number, string]> ? true : false>;
|
|
60
|
+
export type TestF = Assert<ToFunc<TestObj>['f']['b'] extends () => Promise<number> ? true : false>;
|
|
61
|
+
export type TestF2 = Assert<ToFunc<TestObj>['f']['c']['d'] extends () => Promise<number> ? true : false>;
|
|
62
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/remoteValue/type.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -20,7 +20,7 @@ export interface AdaptorPackageData {
|
|
|
20
20
|
|
|
21
21
|
type Func<D = unknown, R = unknown> = (data: D) => R
|
|
22
22
|
|
|
23
|
-
type AdaptorCallback = Func<AdaptorPackageData, void>
|
|
23
|
+
export type AdaptorCallback = Func<AdaptorPackageData, void>
|
|
24
24
|
|
|
25
25
|
export interface Adaptor {
|
|
26
26
|
every: (callback: AdaptorCallback) => void
|
|
@@ -88,7 +88,9 @@ export type TestB2 = Assert<
|
|
|
88
88
|
ToFunc<TestObj>['b']['b2'] extends () => Promise<number[]> ? true : false
|
|
89
89
|
>
|
|
90
90
|
export type TestB3 = Assert<
|
|
91
|
-
ToFunc<TestObj>['b']['b3'] extends () => Promise<[number, string]>
|
|
91
|
+
ToFunc<TestObj>['b']['b3'] extends () => Promise<[number, string]>
|
|
92
|
+
? true
|
|
93
|
+
: false
|
|
92
94
|
>
|
|
93
95
|
export type TestB4 = Assert<
|
|
94
96
|
ToFunc<TestObj>['b']['b4'] extends () => Promise<{
|
|
@@ -105,7 +107,9 @@ export type TestB6 = Assert<
|
|
|
105
107
|
ToFunc<TestObj>['b']['b6'] extends () => Promise<number[]> ? true : false
|
|
106
108
|
>
|
|
107
109
|
export type TestB7 = Assert<
|
|
108
|
-
ToFunc<TestObj>['b']['b7'] extends () => Promise<[number, string]>
|
|
110
|
+
ToFunc<TestObj>['b']['b7'] extends () => Promise<[number, string]>
|
|
111
|
+
? true
|
|
112
|
+
: false
|
|
109
113
|
>
|
|
110
114
|
export type TestF = Assert<
|
|
111
115
|
ToFunc<TestObj>['f']['b'] extends () => Promise<number> ? true : false
|