JS: Add initial metadata options API compatibility

This commit is contained in:
murgatroid99 2019-03-20 15:16:52 -07:00
parent fe090a089a
commit d4e1672071
2 changed files with 20 additions and 0 deletions

View File

@ -18,6 +18,7 @@ HTTP Connect Support | :heavy_check_mark: | :x:
Retries | :heavy_check_mark: | :x:
Stats/tracing/monitoring | :heavy_check_mark: | :x:
Load Balancing | :heavy_check_mark: | :x:
Initial Metadata Options | :heavy_check_mark: | :x:
Other Properties | `grpc` | `@grpc/grpc-js`
-----------------|--------|----------------

View File

@ -44,12 +44,27 @@ function validate(key: string, value?: MetadataValue): void {
}
}
interface MetadataOptions {
/* Signal that the request is idempotent. Defaults to false */
idempotentRequest?: boolean;
/* Signal that the call should not return UNAVAILABLE before it has
* started. Defaults to true. */
waitForReady?: boolean;
/* Signal that the call is cacheable. GRPC is free to use GET verb.
* Defaults to false */
cacheableRequest?: boolean;
/* Signal that the initial metadata should be corked. Defaults to false. */
corked?: boolean;
}
/**
* A class for storing metadata. Keys are normalized to lowercase ASCII.
*/
export class Metadata {
protected internalRepr: MetadataObject = new Map<string, MetadataValue[]>();
constructor(private options?: MetadataOptions) {}
/**
* Sets the given value for the given key by replacing any other values
* associated with that key. Normalizes the key.
@ -160,6 +175,10 @@ export class Metadata {
});
}
setOptions(options: MetadataOptions) {
this.options = options;
}
/**
* Creates an OutgoingHttpHeaders object that can be used with the http2 API.
*/