@zimi/remote 0.2.1-alpha.4 → 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.
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/remoteValue/type.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zimi/remote",
3
3
  "license": "MIT",
4
- "version": "0.2.1-alpha.4",
4
+ "version": "0.2.1-alpha.5",
5
5
  "author": "xiaomingTang",
6
6
  "description": "call remote functions as local",
7
7
  "private": false,
@@ -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]> ? true : false
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]> ? true : false
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