@xentobias/worker-rpc 1.0.12 → 1.0.13
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/types.d.ts +10 -2
- package/package.json +1 -1
package/dist/types.d.ts
CHANGED
|
@@ -75,14 +75,22 @@ export interface EndpointReleaseMessage extends BaseMessage {
|
|
|
75
75
|
export type RpcMessage = CallMessage | ResultMessage | ErrorMessage | CallbackMessage | CallbackReleaseMessage | EndpointReleaseMessage;
|
|
76
76
|
/** Unwrap a Promise type */
|
|
77
77
|
export type Unpromise<T> = T extends Promise<infer U> ? U : T;
|
|
78
|
+
/**
|
|
79
|
+
* Transform first-level functions in a return value to async versions.
|
|
80
|
+
* This matches the runtime behavior where only first-level object properties
|
|
81
|
+
* are scanned for functions (for performance reasons).
|
|
82
|
+
*/
|
|
83
|
+
export type RemoteReturnValue<T> = T extends (...args: infer A) => infer R ? (...args: A) => Promise<Unpromise<R>> : T extends object ? {
|
|
84
|
+
[K in keyof T]: T[K] extends (...args: infer A) => infer R ? (...args: A) => Promise<Unpromise<R>> : T[K];
|
|
85
|
+
} : T;
|
|
78
86
|
/** Helper to convert a single property to its remote version */
|
|
79
|
-
export type RemoteProperty<T> = T extends (...args: infer A) => infer R ? (...args: A) => Promise<Unpromise<R
|
|
87
|
+
export type RemoteProperty<T> = T extends (...args: infer A) => infer R ? (...args: A) => Promise<RemoteReturnValue<Unpromise<R>>> : T extends object ? RemoteObject<T> : T;
|
|
80
88
|
/** Convert an object type to its remote callable version */
|
|
81
89
|
export type RemoteObject<T> = {
|
|
82
90
|
[K in keyof T]: RemoteProperty<T[K]>;
|
|
83
91
|
};
|
|
84
92
|
/** Helper to convert a single property to its broadcast remote version */
|
|
85
|
-
export type RemoteBroadcastProperty<T> = T extends (...args: infer A) => infer R ? (...args: A) => Promise<BroadcastResult<Unpromise<R
|
|
93
|
+
export type RemoteBroadcastProperty<T> = T extends (...args: infer A) => infer R ? (...args: A) => Promise<BroadcastResult<RemoteReturnValue<Unpromise<R>>>> : T extends object ? RemoteBroadcastObject<T> : T;
|
|
86
94
|
/** Convert an object type to its broadcast remote version (all methods return arrays) */
|
|
87
95
|
export type RemoteBroadcastObject<T> = {
|
|
88
96
|
[K in keyof T]: RemoteBroadcastProperty<T[K]>;
|