in packages/dubbo-node/src/node-transport-options.ts [84:132]
export function validateNodeTransportOptions(
options: NodeTransportOptions &
Partial<Omit<CommonTransportOptions, "baseUrl">> &
Pick<CommonTransportOptions, "baseUrl">
) {
let httpClient: UniversalClientFn;
if (options.httpVersion == "2") {
let sessionManager: NodeHttp2ClientSessionManager;
if (options.sessionManager) {
sessionManager = options.sessionManager;
} else {
sessionManager = new Http2SessionManager(
options.baseUrl,
{
pingIntervalMs: options.pingIntervalMs,
pingIdleConnection: options.pingIdleConnection,
pingTimeoutMs: options.pingTimeoutMs,
idleConnectionTimeoutMs: options.idleConnectionTimeoutMs,
},
options.nodeOptions
);
}
httpClient = createNodeHttpClient({
httpVersion: "2",
sessionProvider: () => sessionManager,
});
} else {
httpClient = createNodeHttpClient({
httpVersion: "1.1",
nodeOptions: options.nodeOptions,
});
}
return {
...options,
httpClient,
useBinaryFormat: options.useBinaryFormat ?? true,
interceptors: options.interceptors ?? [],
sendCompression: options.sendCompression ?? null,
acceptCompression: options.acceptCompression ?? [
compressionGzip,
compressionBrotli,
],
...validateReadWriteMaxBytes(
options.readMaxBytes,
options.writeMaxBytes,
options.compressMinBytes
),
};
}