@nmtjs/client 0.14.5 → 0.15.0-beta.10
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/LICENSE.md +1 -1
- package/README.md +1 -1
- package/dist/clients/runtime.d.ts +20 -0
- package/dist/clients/runtime.js +81 -0
- package/dist/clients/runtime.js.map +1 -0
- package/dist/clients/static.d.ts +13 -0
- package/dist/clients/static.js +27 -0
- package/dist/clients/static.js.map +1 -0
- package/dist/core.d.ts +71 -0
- package/dist/core.js +426 -0
- package/dist/core.js.map +1 -0
- package/dist/events.d.ts +16 -0
- package/dist/events.js +34 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/streams.d.ts +26 -0
- package/dist/streams.js +101 -0
- package/dist/streams.js.map +1 -0
- package/dist/transformers.d.ts +4 -0
- package/dist/transformers.js +9 -0
- package/dist/transformers.js.map +1 -0
- package/dist/transport.d.ts +53 -0
- package/dist/transport.js +2 -0
- package/dist/transport.js.map +1 -0
- package/dist/types.d.ts +41 -30
- package/dist/types.js +2 -1
- package/dist/types.js.map +1 -0
- package/package.json +17 -25
- package/src/clients/runtime.ts +133 -0
- package/src/clients/static.ts +77 -0
- package/src/core.ts +648 -0
- package/src/events.ts +70 -0
- package/src/index.ts +5 -0
- package/src/streams.ts +131 -0
- package/src/transformers.ts +8 -0
- package/src/transport.ts +71 -0
- package/src/types.ts +145 -0
- package/dist/common.d.ts +0 -38
- package/dist/common.js +0 -60
- package/dist/runtime.d.ts +0 -21
- package/dist/runtime.js +0 -105
- package/dist/static.d.ts +0 -9
- package/dist/static.js +0 -27
package/dist/core.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
package/dist/events.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Callback } from '@nmtjs/common';
|
|
2
|
+
export type EventMap = {
|
|
3
|
+
[K: string]: any[];
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Thin node-like event emitter wrapper around EventTarget
|
|
7
|
+
*/
|
|
8
|
+
export declare class EventEmitter<Events extends EventMap = EventMap, EventName extends Extract<keyof Events, string> = Extract<keyof Events, string>> {
|
|
9
|
+
#private;
|
|
10
|
+
static once<T extends EventEmitter, E extends T extends EventEmitter<any, infer Event> ? Event : never>(ee: T, event: E): Promise<unknown>;
|
|
11
|
+
on<E extends EventName>(event: E | (Object & string), listener: (...args: Events[E]) => void, options?: AddEventListenerOptions): () => void;
|
|
12
|
+
once<E extends EventName>(event: E | (Object & string), listener: (...args: Events[E]) => void, options?: AddEventListenerOptions): () => void;
|
|
13
|
+
off(event: EventName | (Object & string), listener: Callback): void;
|
|
14
|
+
emit<E extends EventName | (Object & string)>(event: E, ...args: E extends EventName ? Events[E] : any[]): boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare const once: <T extends EventEmitter, EventMap extends T extends EventEmitter<infer E, any> ? E : never, EventName extends T extends EventEmitter<any, infer N> ? N : never>(ee: T, event: EventName, signal?: AbortSignal) => Promise<EventMap[EventName]>;
|
package/dist/events.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// TODO: add errors and promise rejections handling
|
|
2
|
+
/**
|
|
3
|
+
* Thin node-like event emitter wrapper around EventTarget
|
|
4
|
+
*/
|
|
5
|
+
export class EventEmitter {
|
|
6
|
+
static once(ee, event) {
|
|
7
|
+
return new Promise((resolve) => ee.once(event, resolve));
|
|
8
|
+
}
|
|
9
|
+
#target = new EventTarget();
|
|
10
|
+
#listeners = new Map();
|
|
11
|
+
on(event, listener, options) {
|
|
12
|
+
const wrapper = (event) => listener(...event.detail);
|
|
13
|
+
this.#listeners.set(listener, wrapper);
|
|
14
|
+
this.#target.addEventListener(event, wrapper, { ...options, once: false });
|
|
15
|
+
return () => this.#target.removeEventListener(event, wrapper);
|
|
16
|
+
}
|
|
17
|
+
once(event, listener, options) {
|
|
18
|
+
return this.on(event, listener, { ...options, once: true });
|
|
19
|
+
}
|
|
20
|
+
off(event, listener) {
|
|
21
|
+
const wrapper = this.#listeners.get(listener);
|
|
22
|
+
if (wrapper)
|
|
23
|
+
this.#target.removeEventListener(event, wrapper);
|
|
24
|
+
}
|
|
25
|
+
emit(event, ...args) {
|
|
26
|
+
return this.#target.dispatchEvent(new CustomEvent(event, { detail: args }));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export const once = (ee, event, signal) => {
|
|
30
|
+
return new Promise((resolve) => {
|
|
31
|
+
ee.once(event, resolve, { signal });
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAIA,mDAAmD;AACnD;;GAEG;AACH,MAAM,OAAO,YAAY;IAOvB,MAAM,CAAC,IAAI,CAGT,EAAK,EAAE,KAAQ;QACf,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IAC3B,UAAU,GAAG,IAAI,GAAG,EAAsB,CAAA;IAE1C,EAAE,CACA,KAA4B,EAC5B,QAAsC,EACtC,OAAiC;QAEjC,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;QACpD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACtC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1E,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;IAED,IAAI,CACF,KAA4B,EAC5B,QAAsC,EACtC,OAAiC;QAEjC,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED,GAAG,CAAC,KAAoC,EAAE,QAAkB;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC7C,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;IAED,IAAI,CACF,KAAQ,EACR,GAAG,IAA6C;QAEhD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAC7E,CAAC;CACF;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,CAKlB,EAAK,EACL,KAAgB,EAChB,MAAoB,EACpB,EAAE;IACF,OAAO,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,EAAE;QAClD,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ProtocolBlobMetadata } from '@nmtjs/protocol';
|
|
2
|
+
import type { ProtocolServerStreamInterface } from '@nmtjs/protocol/client';
|
|
3
|
+
import { ProtocolClientBlobStream } from '@nmtjs/protocol/client';
|
|
4
|
+
export declare class ClientStreams {
|
|
5
|
+
#private;
|
|
6
|
+
get size(): number;
|
|
7
|
+
get(streamId: number): ProtocolClientBlobStream;
|
|
8
|
+
add(source: ReadableStream, streamId: number, metadata: ProtocolBlobMetadata): ProtocolClientBlobStream;
|
|
9
|
+
remove(streamId: number): void;
|
|
10
|
+
abort(streamId: number, reason?: string): Promise<void>;
|
|
11
|
+
pull(streamId: number, size: number): Promise<Uint8Array<ArrayBufferLike> | null>;
|
|
12
|
+
end(streamId: number): Promise<void>;
|
|
13
|
+
clear(reason?: string): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export declare class ServerStreams<T extends ProtocolServerStreamInterface = ProtocolServerStreamInterface> {
|
|
16
|
+
#private;
|
|
17
|
+
get size(): number;
|
|
18
|
+
has(streamId: number): boolean;
|
|
19
|
+
get(streamId: number): T;
|
|
20
|
+
add(streamId: number, stream: T): T;
|
|
21
|
+
remove(streamId: number): void;
|
|
22
|
+
abort(streamId: number): Promise<void>;
|
|
23
|
+
push(streamId: number, chunk: ArrayBufferView): Promise<void>;
|
|
24
|
+
end(streamId: number): Promise<void>;
|
|
25
|
+
clear(reason?: string): Promise<void>;
|
|
26
|
+
}
|
package/dist/streams.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { ProtocolClientBlobStream } from '@nmtjs/protocol/client';
|
|
2
|
+
export class ClientStreams {
|
|
3
|
+
#collection = new Map();
|
|
4
|
+
get size() {
|
|
5
|
+
return this.#collection.size;
|
|
6
|
+
}
|
|
7
|
+
get(streamId) {
|
|
8
|
+
const stream = this.#collection.get(streamId);
|
|
9
|
+
if (!stream)
|
|
10
|
+
throw new Error('Stream not found');
|
|
11
|
+
return stream;
|
|
12
|
+
}
|
|
13
|
+
add(source, streamId, metadata) {
|
|
14
|
+
const stream = new ProtocolClientBlobStream(source, streamId, metadata);
|
|
15
|
+
this.#collection.set(streamId, stream);
|
|
16
|
+
return stream;
|
|
17
|
+
}
|
|
18
|
+
remove(streamId) {
|
|
19
|
+
this.#collection.delete(streamId);
|
|
20
|
+
}
|
|
21
|
+
async abort(streamId, reason) {
|
|
22
|
+
const stream = this.#collection.get(streamId);
|
|
23
|
+
if (!stream)
|
|
24
|
+
return; // Stream already cleaned up
|
|
25
|
+
await stream.abort(reason);
|
|
26
|
+
this.remove(streamId);
|
|
27
|
+
}
|
|
28
|
+
pull(streamId, size) {
|
|
29
|
+
const stream = this.get(streamId);
|
|
30
|
+
return stream.read(size);
|
|
31
|
+
}
|
|
32
|
+
async end(streamId) {
|
|
33
|
+
await this.get(streamId).end();
|
|
34
|
+
this.remove(streamId);
|
|
35
|
+
}
|
|
36
|
+
async clear(reason) {
|
|
37
|
+
if (reason) {
|
|
38
|
+
const abortPromises = [...this.#collection.values()].map((stream) => stream.abort(reason));
|
|
39
|
+
await Promise.all(abortPromises);
|
|
40
|
+
}
|
|
41
|
+
this.#collection.clear();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export class ServerStreams {
|
|
45
|
+
#collection = new Map();
|
|
46
|
+
#writers = new Map();
|
|
47
|
+
get size() {
|
|
48
|
+
return this.#collection.size;
|
|
49
|
+
}
|
|
50
|
+
has(streamId) {
|
|
51
|
+
return this.#collection.has(streamId);
|
|
52
|
+
}
|
|
53
|
+
get(streamId) {
|
|
54
|
+
const stream = this.#collection.get(streamId);
|
|
55
|
+
if (!stream)
|
|
56
|
+
throw new Error('Stream not found');
|
|
57
|
+
return stream;
|
|
58
|
+
}
|
|
59
|
+
add(streamId, stream) {
|
|
60
|
+
this.#collection.set(streamId, stream);
|
|
61
|
+
this.#writers.set(streamId, stream.writable.getWriter());
|
|
62
|
+
return stream;
|
|
63
|
+
}
|
|
64
|
+
remove(streamId) {
|
|
65
|
+
this.#collection.delete(streamId);
|
|
66
|
+
this.#writers.delete(streamId);
|
|
67
|
+
}
|
|
68
|
+
async abort(streamId) {
|
|
69
|
+
if (this.has(streamId)) {
|
|
70
|
+
const writer = this.#writers.get(streamId);
|
|
71
|
+
if (writer) {
|
|
72
|
+
await writer.abort();
|
|
73
|
+
writer.releaseLock();
|
|
74
|
+
}
|
|
75
|
+
this.remove(streamId);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async push(streamId, chunk) {
|
|
79
|
+
const writer = this.#writers.get(streamId);
|
|
80
|
+
if (writer) {
|
|
81
|
+
return await writer.write(chunk);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async end(streamId) {
|
|
85
|
+
const writer = this.#writers.get(streamId);
|
|
86
|
+
if (writer) {
|
|
87
|
+
await writer.close();
|
|
88
|
+
writer.releaseLock();
|
|
89
|
+
}
|
|
90
|
+
this.remove(streamId);
|
|
91
|
+
}
|
|
92
|
+
async clear(reason) {
|
|
93
|
+
if (reason) {
|
|
94
|
+
const abortPromises = [...this.#writers.values()].map((writer) => writer.abort(reason).finally(() => writer.releaseLock()));
|
|
95
|
+
await Promise.allSettled(abortPromises);
|
|
96
|
+
}
|
|
97
|
+
this.#collection.clear();
|
|
98
|
+
this.#writers.clear();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=streams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streams.js","sourceRoot":"","sources":["../src/streams.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformers.js","sourceRoot":"","sources":["../src/transformers.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,qBAAqB;IAChC,MAAM,CAAC,UAAkB,EAAE,OAAY;QACrC,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,MAAM,CAAC,UAAkB,EAAE,OAAY;QACrC,OAAO,OAAO,CAAA;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { ConnectionType, ProtocolBlobMetadata, ProtocolVersion } from '@nmtjs/protocol';
|
|
2
|
+
import type { BaseClientFormat } from '@nmtjs/protocol/client';
|
|
3
|
+
export type ClientTransportMessageOptions = {
|
|
4
|
+
signal?: AbortSignal;
|
|
5
|
+
_stream_response?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export interface ClientTransportStartParams {
|
|
8
|
+
auth?: string;
|
|
9
|
+
application?: string;
|
|
10
|
+
onMessage: (message: ArrayBufferView) => any;
|
|
11
|
+
onConnect: () => any;
|
|
12
|
+
onDisconnect: (reason: 'client' | 'server' | (string & {})) => any;
|
|
13
|
+
}
|
|
14
|
+
export interface ClientTransportRpcParams {
|
|
15
|
+
format: BaseClientFormat;
|
|
16
|
+
auth?: string;
|
|
17
|
+
application?: string;
|
|
18
|
+
}
|
|
19
|
+
export type ClientCallResponse = {
|
|
20
|
+
type: 'rpc';
|
|
21
|
+
result: ArrayBufferView;
|
|
22
|
+
} | {
|
|
23
|
+
type: 'rpc_stream';
|
|
24
|
+
stream: ReadableStream<ArrayBufferView>;
|
|
25
|
+
} | {
|
|
26
|
+
type: 'blob';
|
|
27
|
+
metadata: ProtocolBlobMetadata;
|
|
28
|
+
source: ReadableStream<ArrayBufferView>;
|
|
29
|
+
};
|
|
30
|
+
export type ClientTransport<T extends ConnectionType = ConnectionType> = T extends ConnectionType.Bidirectional ? {
|
|
31
|
+
type: ConnectionType.Bidirectional;
|
|
32
|
+
connect(params: ClientTransportStartParams): Promise<void>;
|
|
33
|
+
disconnect(): Promise<void>;
|
|
34
|
+
send(message: ArrayBufferView, options: ClientTransportMessageOptions): Promise<void>;
|
|
35
|
+
} : {
|
|
36
|
+
type: ConnectionType.Unidirectional;
|
|
37
|
+
connect?(params: ClientTransportStartParams): Promise<void>;
|
|
38
|
+
disconnect?(): Promise<void>;
|
|
39
|
+
call(client: {
|
|
40
|
+
format: BaseClientFormat;
|
|
41
|
+
auth?: string;
|
|
42
|
+
application?: string;
|
|
43
|
+
}, rpc: {
|
|
44
|
+
callId: number;
|
|
45
|
+
procedure: string;
|
|
46
|
+
payload: any;
|
|
47
|
+
}, options: ClientTransportMessageOptions): Promise<ClientCallResponse>;
|
|
48
|
+
};
|
|
49
|
+
export interface ClientTransportParams {
|
|
50
|
+
protocol: ProtocolVersion;
|
|
51
|
+
format: BaseClientFormat;
|
|
52
|
+
}
|
|
53
|
+
export type ClientTransportFactory<Type extends ConnectionType, Options = unknown, Transport extends ClientTransport<Type> = ClientTransport<Type>> = (params: ClientTransportParams, options: Options) => Transport;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":""}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import type { CallTypeProvider, OneOf, TypeProvider } from '@nmtjs/common';
|
|
2
|
-
import type {
|
|
2
|
+
import type { TAnyProcedureContract, TAnyRouterContract } from '@nmtjs/contract';
|
|
3
3
|
import type { ProtocolBlobInterface } from '@nmtjs/protocol';
|
|
4
|
-
import type {
|
|
5
|
-
import type { BaseTypeAny, t } from '@nmtjs/type';
|
|
6
|
-
|
|
7
|
-
export type
|
|
4
|
+
import type { ProtocolError, ProtocolServerBlobStream } from '@nmtjs/protocol/client';
|
|
5
|
+
import type { BaseTypeAny, PlainType, t } from '@nmtjs/type';
|
|
6
|
+
export declare const ResolvedType: unique symbol;
|
|
7
|
+
export type ResolvedType = typeof ResolvedType;
|
|
8
|
+
export type ClientCallOptions = {
|
|
9
|
+
timeout?: number;
|
|
10
|
+
signal?: AbortSignal;
|
|
11
|
+
/**
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
_stream_response?: boolean;
|
|
15
|
+
};
|
|
16
|
+
export type ClientOutputType<T> = T extends ProtocolBlobInterface ? (options?: {
|
|
17
|
+
signal?: AbortSignal;
|
|
18
|
+
}) => ProtocolServerBlobStream : T extends {
|
|
8
19
|
[PlainType]?: true;
|
|
9
20
|
} ? {
|
|
10
21
|
[K in keyof Omit<T, PlainType>]: ClientOutputType<T[K]>;
|
|
@@ -21,41 +32,41 @@ export interface StaticOutputContractTypeProvider extends TypeProvider {
|
|
|
21
32
|
export interface RuntimeOutputContractTypeProvider extends TypeProvider {
|
|
22
33
|
output: this['input'] extends BaseTypeAny ? ClientOutputType<t.infer.decodeRaw.output<this['input']>> : never;
|
|
23
34
|
}
|
|
24
|
-
export type
|
|
35
|
+
export type AnyResolvedContractProcedure = {
|
|
36
|
+
[ResolvedType]: 'procedure';
|
|
25
37
|
contract: TAnyProcedureContract;
|
|
38
|
+
stream: boolean;
|
|
26
39
|
input: any;
|
|
27
40
|
output: any;
|
|
28
41
|
};
|
|
29
|
-
export type
|
|
30
|
-
|
|
31
|
-
|
|
42
|
+
export type AnyResolvedContractRouter = {
|
|
43
|
+
[ResolvedType]: 'router';
|
|
44
|
+
[key: string]: AnyResolvedContractProcedure | {
|
|
45
|
+
[ResolvedType]: 'router';
|
|
46
|
+
[key: string]: AnyResolvedContractProcedure;
|
|
47
|
+
};
|
|
32
48
|
};
|
|
33
|
-
export type AnyResolvedAPIContract = Record<string, Record<string, AnyResolvedAPIContractProcedure | AnyResolvedAPIContractRouter>>;
|
|
34
49
|
export type ResolveAPIRouterRoutes<T extends TAnyRouterContract, InputTypeProvider extends TypeProvider = TypeProvider, OutputTypeProvider extends TypeProvider = TypeProvider> = {
|
|
35
|
-
[
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
50
|
+
[ResolvedType]: 'router';
|
|
51
|
+
} & {
|
|
52
|
+
[K in keyof T['routes']]: T['routes'][K] extends TAnyProcedureContract ? {
|
|
53
|
+
[ResolvedType]: 'procedure';
|
|
39
54
|
contract: T['routes'][K];
|
|
55
|
+
stream: T['routes'][K]['stream'] extends true ? true : false;
|
|
40
56
|
input: CallTypeProvider<InputTypeProvider, T['routes'][K]['input']>;
|
|
41
|
-
output: T['routes'][K]['stream'] extends
|
|
42
|
-
|
|
43
|
-
stream: ProtocolServerStreamInterface<CallTypeProvider<OutputTypeProvider, T['routes'][K]['stream']>>;
|
|
44
|
-
};
|
|
45
|
-
} : never;
|
|
57
|
+
output: T['routes'][K]['stream'] extends true ? AsyncIterable<CallTypeProvider<OutputTypeProvider, T['routes'][K]['output']>> : CallTypeProvider<OutputTypeProvider, T['routes'][K]['output']>;
|
|
58
|
+
} : T['routes'][K] extends TAnyRouterContract ? ResolveAPIRouterRoutes<T['routes'][K], InputTypeProvider, OutputTypeProvider> : never;
|
|
46
59
|
};
|
|
47
|
-
export type
|
|
48
|
-
export type ClientCaller<Procedure extends
|
|
49
|
-
|
|
50
|
-
options?: Partial<ProtocolBaseClientCallOptions>
|
|
51
|
-
] : [
|
|
52
|
-
data: Procedure['input'],
|
|
53
|
-
options?: Partial<ProtocolBaseClientCallOptions>
|
|
54
|
-
]) => SafeCall extends true ? Promise<OneOf<[{
|
|
55
|
-
output: Procedure['output'];
|
|
60
|
+
export type ResolveContract<C extends TAnyRouterContract = TAnyRouterContract, InputTypeProvider extends TypeProvider = TypeProvider, OutputTypeProvider extends TypeProvider = TypeProvider> = ResolveAPIRouterRoutes<C, InputTypeProvider, OutputTypeProvider>;
|
|
61
|
+
export type ClientCaller<Procedure extends AnyResolvedContractProcedure, SafeCall extends boolean> = (...args: Procedure['input'] extends t.NeverType ? [data?: undefined, options?: Partial<ClientCallOptions>] : undefined extends t.infer.encode.input<Procedure['contract']['input']> ? [data?: Procedure['input'], options?: Partial<ClientCallOptions>] : [data: Procedure['input'], options?: Partial<ClientCallOptions>]) => SafeCall extends true ? Promise<OneOf<[{
|
|
62
|
+
result: Procedure['output'];
|
|
56
63
|
}, {
|
|
57
64
|
error: ProtocolError;
|
|
58
65
|
}]>> : Promise<Procedure['output']>;
|
|
59
|
-
|
|
60
|
-
[K in keyof
|
|
66
|
+
type OmitType<T extends object, E> = {
|
|
67
|
+
[K in keyof T as T[K] extends E ? never : K]: T[K];
|
|
61
68
|
};
|
|
69
|
+
export type ClientCallers<Resolved extends AnyResolvedContractRouter, SafeCall extends boolean, Stream extends boolean> = OmitType<{
|
|
70
|
+
[K in keyof Resolved]: Resolved[K] extends AnyResolvedContractProcedure ? Stream extends (Resolved[K]['stream'] extends true ? true : false) ? ClientCaller<Resolved[K], SafeCall> : never : Resolved[K] extends AnyResolvedContractRouter ? ClientCallers<Resolved[K], SafeCall, Stream> : never;
|
|
71
|
+
}, never>;
|
|
72
|
+
export {};
|
package/dist/types.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export const ResolvedType = Symbol('ResolvedType');
|
|
2
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,YAAY,GAAkB,MAAM,CAAC,cAAc,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -2,42 +2,34 @@
|
|
|
2
2
|
"name": "@nmtjs/client",
|
|
3
3
|
"type": "module",
|
|
4
4
|
"exports": {
|
|
5
|
-
".":
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
"module-sync": "./dist/common.js"
|
|
9
|
-
},
|
|
10
|
-
"./runtime": {
|
|
11
|
-
"types": "./dist/runtime.d.ts",
|
|
12
|
-
"import": "./dist/runtime.js",
|
|
13
|
-
"module-sync": "./dist/runtime.js"
|
|
14
|
-
},
|
|
15
|
-
"./static": {
|
|
16
|
-
"types": "./dist/static.d.ts",
|
|
17
|
-
"import": "./dist/static.js",
|
|
18
|
-
"module-sync": "./dist/static.js"
|
|
19
|
-
}
|
|
5
|
+
".": "./dist/index.js",
|
|
6
|
+
"./runtime": "./dist/clients/runtime.js",
|
|
7
|
+
"./static": "./dist/clients/static.js"
|
|
20
8
|
},
|
|
21
9
|
"peerDependencies": {
|
|
22
|
-
"@nmtjs/
|
|
23
|
-
"@nmtjs/common": "0.
|
|
24
|
-
"@nmtjs/protocol": "0.
|
|
25
|
-
"@nmtjs/
|
|
10
|
+
"@nmtjs/contract": "0.15.0-beta.10",
|
|
11
|
+
"@nmtjs/common": "0.15.0-beta.10",
|
|
12
|
+
"@nmtjs/protocol": "0.15.0-beta.10",
|
|
13
|
+
"@nmtjs/type": "0.15.0-beta.10"
|
|
26
14
|
},
|
|
27
15
|
"devDependencies": {
|
|
28
|
-
"@nmtjs/
|
|
29
|
-
"@nmtjs/
|
|
30
|
-
"@nmtjs/
|
|
31
|
-
"@nmtjs/
|
|
16
|
+
"@nmtjs/_tests": "0.15.0-beta.10",
|
|
17
|
+
"@nmtjs/type": "0.15.0-beta.10",
|
|
18
|
+
"@nmtjs/contract": "0.15.0-beta.10",
|
|
19
|
+
"@nmtjs/common": "0.15.0-beta.10",
|
|
20
|
+
"@nmtjs/protocol": "0.15.0-beta.10"
|
|
32
21
|
},
|
|
33
22
|
"files": [
|
|
34
23
|
"dist",
|
|
24
|
+
"src",
|
|
35
25
|
"LICENSE.md",
|
|
36
26
|
"README.md"
|
|
37
27
|
],
|
|
38
|
-
"version": "0.
|
|
28
|
+
"version": "0.15.0-beta.10",
|
|
39
29
|
"scripts": {
|
|
40
|
-
"build": "
|
|
30
|
+
"clean-build": "rm -rf ./dist",
|
|
31
|
+
"build": "tsc --declaration --sourcemap",
|
|
32
|
+
"dev": "tsc --watch",
|
|
41
33
|
"type-check": "tsc --noEmit"
|
|
42
34
|
}
|
|
43
35
|
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
TAnyProcedureContract,
|
|
3
|
+
TAnyRouterContract,
|
|
4
|
+
TRouteContract,
|
|
5
|
+
} from '@nmtjs/contract'
|
|
6
|
+
import { IsProcedureContract, IsRouterContract } from '@nmtjs/contract'
|
|
7
|
+
|
|
8
|
+
import type { BaseClientOptions } from '../core.ts'
|
|
9
|
+
import type { ClientTransportFactory } from '../transport.ts'
|
|
10
|
+
import type {
|
|
11
|
+
ClientCallers,
|
|
12
|
+
ClientCallOptions,
|
|
13
|
+
RuntimeInputContractTypeProvider,
|
|
14
|
+
RuntimeOutputContractTypeProvider,
|
|
15
|
+
} from '../types.ts'
|
|
16
|
+
import { BaseClient } from '../core.ts'
|
|
17
|
+
|
|
18
|
+
export class RuntimeContractTransformer {
|
|
19
|
+
#procedures = new Map<string, TAnyProcedureContract>()
|
|
20
|
+
|
|
21
|
+
constructor(router: TAnyRouterContract) {
|
|
22
|
+
const registerProcedures = (r: TRouteContract, path: string[] = []) => {
|
|
23
|
+
if (IsRouterContract(r)) {
|
|
24
|
+
for (const [key, route] of Object.entries(r.routes)) {
|
|
25
|
+
registerProcedures(route, [...path, key])
|
|
26
|
+
}
|
|
27
|
+
} else if (IsProcedureContract(r)) {
|
|
28
|
+
const fullName = [...path].join('/')
|
|
29
|
+
this.#procedures.set(fullName, r)
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
registerProcedures(router)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
encode(_procedure: string, payload: any) {
|
|
36
|
+
const procedure = this.#procedures.get(_procedure)
|
|
37
|
+
if (!procedure) throw new Error(`Procedure not found: ${_procedure}`)
|
|
38
|
+
return procedure.input.encode(payload)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
decode(_procedure: string, payload: any) {
|
|
42
|
+
const procedure = this.#procedures.get(_procedure)
|
|
43
|
+
if (!procedure) throw new Error(`Procedure not found: ${_procedure}`)
|
|
44
|
+
return procedure.output.decode(payload)
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export class RuntimeClient<
|
|
49
|
+
Transport extends ClientTransportFactory<any, any> = ClientTransportFactory<
|
|
50
|
+
any,
|
|
51
|
+
any
|
|
52
|
+
>,
|
|
53
|
+
RouterContract extends TAnyRouterContract = TAnyRouterContract,
|
|
54
|
+
SafeCall extends boolean = false,
|
|
55
|
+
> extends BaseClient<
|
|
56
|
+
Transport,
|
|
57
|
+
RouterContract,
|
|
58
|
+
SafeCall,
|
|
59
|
+
RuntimeInputContractTypeProvider,
|
|
60
|
+
RuntimeOutputContractTypeProvider
|
|
61
|
+
> {
|
|
62
|
+
protected readonly transformer: RuntimeContractTransformer
|
|
63
|
+
|
|
64
|
+
readonly #procedures = new Map<string, TAnyProcedureContract>()
|
|
65
|
+
readonly #callers!: ClientCallers<this['_']['routes'], SafeCall, boolean>
|
|
66
|
+
|
|
67
|
+
constructor(
|
|
68
|
+
options: BaseClientOptions<RouterContract, SafeCall>,
|
|
69
|
+
transport: Transport,
|
|
70
|
+
transportOptions: Transport extends ClientTransportFactory<
|
|
71
|
+
any,
|
|
72
|
+
infer Options
|
|
73
|
+
>
|
|
74
|
+
? Options
|
|
75
|
+
: never,
|
|
76
|
+
) {
|
|
77
|
+
super(options, transport, transportOptions)
|
|
78
|
+
|
|
79
|
+
this.resolveProcedures(this.options.contract)
|
|
80
|
+
this.transformer = new RuntimeContractTransformer(this.options.contract)
|
|
81
|
+
this.#callers = this.buildCallers()
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
override get call() {
|
|
85
|
+
return this.#callers as ClientCallers<this['_']['routes'], SafeCall, false>
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
override get stream() {
|
|
89
|
+
return this.#callers as ClientCallers<this['_']['routes'], SafeCall, true>
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
protected resolveProcedures(router: TAnyRouterContract, path: string[] = []) {
|
|
93
|
+
for (const [key, route] of Object.entries(router.routes)) {
|
|
94
|
+
if (IsRouterContract(route)) {
|
|
95
|
+
this.resolveProcedures(route, [...path, key])
|
|
96
|
+
} else if (IsProcedureContract(route)) {
|
|
97
|
+
const fullName = [...path, key].join('/')
|
|
98
|
+
this.#procedures.set(fullName, route)
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
protected buildCallers(): ClientCallers<
|
|
104
|
+
this['_']['routes'],
|
|
105
|
+
SafeCall,
|
|
106
|
+
boolean
|
|
107
|
+
> {
|
|
108
|
+
const callers: Record<string, any> = Object.create(null)
|
|
109
|
+
|
|
110
|
+
for (const [name, { stream }] of this.#procedures) {
|
|
111
|
+
const parts = name.split('/')
|
|
112
|
+
let current = callers
|
|
113
|
+
for (let i = 0; i < parts.length; i++) {
|
|
114
|
+
const part = parts[i]
|
|
115
|
+
if (i === parts.length - 1) {
|
|
116
|
+
current[part] = (
|
|
117
|
+
payload?: unknown,
|
|
118
|
+
options?: Partial<ClientCallOptions>,
|
|
119
|
+
) =>
|
|
120
|
+
this._call(name, payload, {
|
|
121
|
+
...options,
|
|
122
|
+
_stream_response: !!stream,
|
|
123
|
+
})
|
|
124
|
+
} else {
|
|
125
|
+
current[part] = current[part] ?? Object.create(null)
|
|
126
|
+
current = current[part]
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
return callers as ClientCallers<this['_']['routes'], SafeCall, boolean>
|
|
132
|
+
}
|
|
133
|
+
}
|