update type definitions to include grpc types

This commit is contained in:
Bojan Djurkovic
2018-10-20 14:01:42 -03:00
parent 0e95a07e46
commit 72e3db4b2a
2 changed files with 72 additions and 54 deletions
+67 -54
View File
@@ -8,70 +8,83 @@
import { EventEmitter } from 'events';
import { Stream } from 'stream';
import * as grpc from 'grpc';
type GrpcRequest =
| grpc.ServerUnaryCall<any>
| grpc.ServerReadableStream<any>
| grpc.ServerWriteableStream<any>
| grpc.ServerDuplexStream<any, any>;
type GrpcResponse =
| grpc.ClientUnaryCall
| grpc.ClientReadableStream<any>
| grpc.ClientWritableStream<any>
| grpc.ClientDuplexStream<any, any>;
declare class Mali extends EventEmitter {
constructor(path: any, name?: string | ReadonlyArray<string>, options?: any);
name: string;
env: string;
ports: ReadonlyArray<number>;
silent: boolean;
constructor(path: any, name?: string | ReadonlyArray<string>, options?: any);
name: string;
env: string;
ports: ReadonlyArray<number>;
silent: boolean;
addService(path: any, name: string | ReadonlyArray<string>, options?: any): void;
use(service?: any, name?: any, fns?: any): void;
start(port: number | string, creds?: any, options?: any): any; // gnarly type inferring for these functions so Im just gonna let them handle it.
toJSON(): any;
close(): Promise<void>;
inspect(): any;
addService(path: any, name: string | ReadonlyArray<string>, options?: any): void;
use(service?: any, name?: any, fns?: any): void;
start(port: number | string, creds?: any, options?: any): grpc.Server;
toJSON(): any;
close(): Promise<void>;
inspect(): any;
}
declare namespace Mali {
interface Context {
name: string;
fullName: string;
service: string;
package: string;
app: any; // ? app
call: any;
request: Request;
response: Response;
req: any; // ?
res: any; // ?
type: string;
metadata: string;
get(field: string): any;
set(field: any, val?: any): void; // do I need `?:` if its of type `any`?
sendMetadata(md: any): void;
getStatus(field: string): any;
setStatus(field: any, val?: any): void; // ^
}
interface Context {
name: string;
fullName: string;
service: string;
package: string;
app: Mali;
call: any;
request: Request;
response: Response;
req: GrpcRequest;
res: GrpcResponse;
type: string;
metadata: any;
get(field: string): any;
set(field: any, val?: any): void;
sendMetadata(md: any): void;
getStatus(field: string): any;
setStatus(field: any, val?: any): void;
}
class Request {
constructor(call: any, type: string);
call: any;
type: string;
metadata: any;
req: any; // ?
class Request {
constructor(call: any, type: string);
call: any;
type: string;
metadata: any;
req: GrpcRequest;
getMetadata(): any;
get(field: string): any;
}
getMetadata(): grpc.Metadata;
get(field: string): any;
}
class Response {
constructor(call: any, type: string);
call: any;
type: string;
metadata: any;
status: any;
res: any; // ?
set(field: any, val?: any): void; // is `val?:` necessary when its of type `any`?
get(field: string): any;
getMetadata(): any;
sendMetadata(md?: any): void;
getStatus(field: string): any;
setStatus(field: any, val?: any): void; // ^ same as above
}
class Response {
constructor(call: any, type: string);
call: any;
type: string;
metadata: any;
status: any;
res: GrpcResponse;
set(field: any, val?: any): void;
get(field: string): any;
getMetadata(): grpc.Metadata;
sendMetadata(md?: any): void;
getStatus(field: string): any;
setStatus(field: any, val?: any): void;
}
function exec(ctx: Context, handler: any, cb?: any): void;
function exec(ctx: Context, handler: any, cb?: any): void;
}
export = Mali;
+5
View File
@@ -0,0 +1,5 @@
{
"dependencies": {
"grpc": "^1.0.0"
}
}