@pbkit/grpc-web-client
Advanced tools
Comparing version 0.0.0 to 0.0.1
import type { RpcClientImpl } from "pbkit/core/runtime/rpc"; | ||
declare type Metadata = Record<string, string>; | ||
export declare type Metadata = Record<string, string>; | ||
export declare type Header = Metadata; | ||
export declare type Trailer = Metadata & { | ||
status: string; | ||
statusMessage: string; | ||
}; | ||
export interface ConfigMetadata { | ||
@@ -8,5 +13,4 @@ [key: string]: string | (() => string | undefined) | (() => Promise<string | undefined>); | ||
host: string; | ||
metadata: ConfigMetadata; | ||
metadata?: ConfigMetadata; | ||
} | ||
export declare function createGrpcClientImpl(config: CreateGrpcClientImplConfig): RpcClientImpl<Metadata, Metadata>; | ||
export {}; | ||
export declare function createGrpcClientImpl(config: CreateGrpcClientImplConfig): RpcClientImpl<Metadata, Header, Trailer>; |
@@ -23,9 +23,9 @@ "use strict"; | ||
}); | ||
const metadataPromise = new Promise((resolve) => { | ||
let responseHeaders = undefined; | ||
grpcClient.onHeaders((headers) => (responseHeaders = headers)); | ||
grpcClient.onEnd((status, statusMessage, trailers) => { | ||
const headerPromise = new Promise((resolve) => { | ||
grpcClient.onHeaders((header) => resolve(grpcMetadataToRecord(header))); | ||
}); | ||
const trailerPromise = new Promise((resolve) => { | ||
grpcClient.onEnd(async (status, statusMessage, trailer) => { | ||
resolve({ | ||
...grpcMetadataToRecord(responseHeaders), | ||
...grpcMetadataToRecord(trailers), | ||
...grpcMetadataToRecord(trailer), | ||
status: status.toString(), | ||
@@ -37,11 +37,13 @@ statusMessage, | ||
(async () => { | ||
const newMetadata = metadata ?? {}; | ||
for (const [key, value] of Object.entries(config.metadata)) { | ||
if (key in newMetadata) | ||
continue; | ||
const v = typeof value === "string" ? value : await value(); | ||
if (v) | ||
newMetadata[key] = v; | ||
const m = { ...metadata }; | ||
if (config.metadata) { | ||
for (const [key, value] of Object.entries(config.metadata)) { | ||
if (key in m) | ||
continue; | ||
const v = typeof value === "string" ? value : await value(); | ||
if (v) | ||
m[key] = v; | ||
} | ||
} | ||
grpcClient.start(newMetadata); | ||
grpcClient.start(m); | ||
for await (const value of req) { | ||
@@ -70,3 +72,3 @@ grpcClient.send({ | ||
}; | ||
return [result, metadataPromise]; | ||
return [result, headerPromise, trailerPromise]; | ||
}; | ||
@@ -73,0 +75,0 @@ }; |
{ | ||
"name": "@pbkit/grpc-web-client", | ||
"packageManager": "yarn@3.0.2", | ||
"version": "0.0.0", | ||
"version": "0.0.1", | ||
"description": "pbkit grpc web client", | ||
@@ -22,3 +22,3 @@ "main": "lib/index.js", | ||
"google-protobuf": "^3.18.0-rc.2", | ||
"pbkit": "0.0.16" | ||
"pbkit": "0.0.17" | ||
}, | ||
@@ -25,0 +25,0 @@ "devDependencies": { |
@@ -1,1 +0,1 @@ | ||
# Pbkit grpc web client | ||
# @pbkit/grpc-web-client |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
4851
102
+ Addedpbkit@0.0.17(transitive)
- Removedpbkit@0.0.16(transitive)
Updatedpbkit@0.0.17