Documentation ¶
Index ¶
- Constants
- Variables
- type CallOption
- type Error
- type EventType
- type GatewayClientBase
- func (g *GatewayClientBase) ParseRPCStatus(rawBytes []byte) (s *Status, err error)
- func (g *GatewayClientBase) RPCCall(endpoint string, request ProtoMessage, opts ...CallOption) (resp []byte, err error)
- func (g *GatewayClientBase) ServerStreaming(endpoint string, request ProtoMessage, opts ...CallOption) (*StreamReader, error)
- type HTTPMethod
- type Metadata
- type ProtoMessage
- type ResponseCallback
- type Status
- type StatusCode
- type StreamReader
- type XHRIO
- type XHRNodeReadableStream
Constants ¶
const ( // Ok is Not an error; returned on success. Ok = StatusCode(iota) // Cancelled is returned when the operation was cancelled (typically by the caller). Cancelled // Unknown error. An example of where this error may be returned is if a // Status value received from another address space belongs to an error-space // that is not known in this address space. Also errors raised by APIs that // do not return enough error information may be converted to this error. Unknown // InvalidArgument is returned when the Client specified an invalid argument. // Note that this differs from FailedPrecondition. // InvalidArgument indicates arguments that are problematic regardless // of the state of the system (e.g., a malformed file name). InvalidArgument // DeadlineExceeded is returned when the deadlined expired before operation could complete. // For operations that change the state of the system, this error may be returned even if the // operation has completed successfully. For example, a successful response // from a server could have been delayed long enough for the deadline to expire. DeadlineExceeded // NotFound is returned when some requested entity (e.g., file or directory) was not found. NotFound // AlreadyExists is returned when some entity that we attempted to create // (e.g., file or directory) already exists. AlreadyExists // PermissionDenied is returned when the caller does not have permission // to execute the specified operation. PermissionDenied must not be used // for rejections caused by exhausting some resource // (use ResourceExhausted instead for those errors). // PermissionDenied must not be used if the caller can not be identified // (use Unautheticated instead for those errors). PermissionDenied // Unauthenticated is returned when the request does not have valid // authentication credentials for the operation. Unauthenticated // ResourceExhausted is returned when some resource has been exhausted, // perhaps a per-user quota, or perhaps the entire file system is out of space. ResourceExhausted // FailedPrecondition is returned when an operation was rejected because // the system is not in a state required for the operation's execution. // For example, directory to be deleted may be non-empty, // an rmdir operation is applied to a non-directory, etc. // // A litmus test that may help a service implementor in deciding // between FailedPrecondition, Aborted, and Unavailable: // (a) Use Unavailable if the client can retry just the failing call. // (b) Use Aborted if the client should retry at a higher-level // (e.g., restarting a read-modify-write sequence). // (c) Use FailedPrecondition if the client should not retry until // the system state has been explicitly fixed. E.g., if an "rmdir" // fails because the directory is non-empty, FailedPrecondition // should be returned since the client should not retry unless // they have first fixed up the directory by deleting files from it. // (d) Use FailedPrecondition if the client performs conditional // REST Get/Update/Delete on a resource and the resource on the // server does not match the condition. E.g., conflicting // read-modify-write on the same resource. FailedPrecondition // Aborted is returned when the operation was aborted, typically due to a // concurrency issue like sequencer check failures, transaction aborts, etc. // // See litmus test above for deciding between FailedPrecondition, Aborted, // and Unavailable. Aborted // OutOfRange is returned when an operation was attempted past the valid range. // E.g., seeking or reading past end of file. // // Unlike INVALID_ARGUMENT, this error indicates a problem that may be fixed // if the system state changes. For example, a 32-bit file system will // generate INVALID_ARGUMENT if asked to read at an offset that is not in the // range [0,2^32-1], but it will generate OutOfRange if asked to read from // an offset past the current file size. // // There is a fair bit of overlap between FailedPrecondition and // OutOfRange. We recommend using OutOfRange (the more specific error) // when it applies so that callers who are iterating through a space can // easily look for an OutOfRange error to detect when they are done. OutOfRange // Unimplemented is returned when an operation is not implemented or not // supported/enabled in this service. Unimplemented // Internal indicates an internal error. Means some invariants expected by underlying System has // been broken. If you see one of these errors, Something is very broken. Internal // condition and may be corrected by retrying with a backoff. // // See litmus test above for deciding between FailedPrecondition, Aborted, // and Unavailable. Unavailable // DataLoss indicates unrecoverable data loss or corruption. DataLoss )
const ( GET = HTTPMethod(iota) POST )
Define HTTP methods
const ( READABLE = EventType("readable") DATA = EventType("data") END = EventType("end") CLOSE = EventType("close") ERROR = EventType("error") )
All the defined EventTypes
Variables ¶
var EOF = &Error{Code: Ok, Message: "EOF"}
EOF is sent when a streaming request is finished
Functions ¶
This section is empty.
Types ¶
type CallOption ¶
type CallOption func(*XHRNodeReadableStream)
CallOption can be used to configure a call
func WithMetadata ¶
func WithMetadata(m Metadata) CallOption
WithMetadata adds the metadata as headers to the request
type Error ¶
type Error struct { *js.Object Code StatusCode `js:"code"` Message string `js:"message"` }
Error is a gRPC-web Error
type EventType ¶
type EventType string
EventType is a NodeReadableStream event type Defined in https://github.com/google/closure-library/blob/master/closure/goog/net/streams/nodereadablestream.js#L54
type GatewayClientBase ¶
GatewayClientBase represents the gRPC-web GatewayClientBase class.
func NewGatewayClientBase ¶
func NewGatewayClientBase() *GatewayClientBase
NewGatewayClientBase constructs a new GatewayClientBase from the JS class constructor.
func (*GatewayClientBase) ParseRPCStatus ¶
func (g *GatewayClientBase) ParseRPCStatus(rawBytes []byte) (s *Status, err error)
ParseRPCStatus parses raw bytes to a Status.
func (*GatewayClientBase) RPCCall ¶
func (g *GatewayClientBase) RPCCall(endpoint string, request ProtoMessage, opts ...CallOption) (resp []byte, err error)
RPCCall makes an XHR request to the provided endpoint using the provided request. It returns a byte representation of the response, or an error
func (*GatewayClientBase) ServerStreaming ¶
func (g *GatewayClientBase) ServerStreaming(endpoint string, request ProtoMessage, opts ...CallOption) (*StreamReader, error)
ServerStreaming makes an XHR request to the provided streaming endpoint using the provided request. It returns client for reading messages.
type HTTPMethod ¶
type HTTPMethod int
HTTPMethod is an enum for valid HTTP methods
func (HTTPMethod) String ¶
func (h HTTPMethod) String() string
type ProtoMessage ¶
ProtoMessage must be implemented by all generated proto structs
type ResponseCallback ¶
ResponseCallback is called on the response from a method
type Status ¶
type Status struct { *js.Object Code StatusCode `js:"code"` Details string `js:"details"` Metadata Metadata `js:"metadata"` }
Status is a gRPC-web Status.
type StatusCode ¶
type StatusCode int
StatusCode is a gRPC-web StatusCode.
func FromHTTPStatus ¶
func FromHTTPStatus(HTTPCode int) StatusCode
FromHTTPStatus converts a HTTP Status code to a StatusCode
type StreamReader ¶
type StreamReader struct {
// contains filtered or unexported fields
}
func NewStreamReader ¶
func NewStreamReader(respChan <-chan []byte, errChan <-chan error) *StreamReader
func (*StreamReader) Recv ¶
func (s *StreamReader) Recv() ([]byte, error)
type XHRIO ¶
XHRIO encapsulates the google XhrIO class.
func (*XHRIO) Send ¶
func (x *XHRIO) Send(endpoint string, method HTTPMethod, data []byte)
Send sends the data to the endpoint using the method
func (*XHRIO) SetRequestHeader ¶
SetRequestHeader sets the header key to value
func (*XHRIO) SetTimeout ¶
SetTimeout sets the header key to value
type XHRNodeReadableStream ¶
XHRNodeReadableStream encapsulates a google XhrNodeReadableStream class
func NewXHRNodeReadableStream ¶
func NewXHRNodeReadableStream(xhrIO *XHRIO) *XHRNodeReadableStream
NewXHRNodeReadableStream initializes an XHRNodeReadableStream object with the provided XhrIO.
func (*XHRNodeReadableStream) Abort ¶
func (x *XHRNodeReadableStream) Abort()
Abort closes the stream