diff --git a/src/call-credentials.ts b/src/call-credentials.ts new file mode 100644 index 00000000..89f782e1 --- /dev/null +++ b/src/call-credentials.ts @@ -0,0 +1 @@ +export class CallCredentials {} diff --git a/src/call-stream.ts b/src/call-stream.ts new file mode 100644 index 00000000..16c5348d --- /dev/null +++ b/src/call-stream.ts @@ -0,0 +1,14 @@ +import * as stream from 'stream'; +import { Status } from './constants'; + +/** + * This class represents a duplex stream associated with a single gRPC call. + */ +export class CallStream extends stream.Duplex { + /** + * Cancels the call associated with this stream with a given status. + */ + cancelWithStatus(status: Status) { + throw new Error(); + } +} diff --git a/src/channel-credentials.ts b/src/channel-credentials.ts new file mode 100644 index 00000000..75d72802 --- /dev/null +++ b/src/channel-credentials.ts @@ -0,0 +1,20 @@ +import { CallCredentials } from './call-credentials'; + +/** + * A class that contains credentials for communicating over a channel. + */ +export class ChannelCredentials { + private constructor() {} + + static createSsl(rootCerts: Buffer, privateKey?: Buffer, certChain?: Buffer) : ChannelCredentials { + throw new Error(); + } + + static createInsecure() : ChannelCredentials { + throw new Error(); + } + + compose(callCredentials: CallCredentials) : ChannelCredentials { + throw new Error(); + } +} diff --git a/src/channel.ts b/src/channel.ts new file mode 100644 index 00000000..28c91738 --- /dev/null +++ b/src/channel.ts @@ -0,0 +1,25 @@ +import { CallStream } from './call-stream'; +import { ChannelCredentials } from './channel-credentials'; +import { Metadata } from './metadata'; + +/** + * An interface that contains options used when initializing a Channel instance. + */ +export interface ChannelOptions {} + +/** + * A class that represents a communication channel to a server specified by a given address. + */ +export class Channel { + constructor(address: string, credentials?: ChannelCredentials, options?: ChannelOptions) { + throw new Error(); + } + + createStream(methodName: string, metadata: Metadata) : CallStream { + throw new Error(); + } + + close() { + throw new Error(); + } +} diff --git a/src/constants.ts b/src/constants.ts new file mode 100644 index 00000000..a72f3388 --- /dev/null +++ b/src/constants.ts @@ -0,0 +1,19 @@ +export enum Status { + OK = 0, + CANCELLED, + UNKNOWN, + INVALID_ARGUMENT, + DEADLINE_EXCEEDED, + NOT_FOUND, + ALREADY_EXISTS, + PERMISSION_DENIED, + RESOURCE_EXHAUSTED, + FAILED_PRECONDITION, + ABORTED, + OUT_OF_RANGE, + UNIMPLEMENTED, + INTERNAL, + UNAVAILABLE, + DATA_LOSS, + UNAUTHENTICATED +} diff --git a/src/metadata.ts b/src/metadata.ts new file mode 100644 index 00000000..2845639c --- /dev/null +++ b/src/metadata.ts @@ -0,0 +1 @@ +export class Metadata {}