97 lines
1.8 KiB
TypeScript
97 lines
1.8 KiB
TypeScript
export interface ITypedRequest {
|
|
/**
|
|
* the method that the request response data is meant for
|
|
*/
|
|
method: string;
|
|
|
|
/**
|
|
* any needed auth data
|
|
*/
|
|
authInfo?: {
|
|
jwt: string;
|
|
};
|
|
|
|
/**
|
|
* localData tracks things within typedrequest.
|
|
* needed for VirtualStreams
|
|
*/
|
|
localData?: {
|
|
firstTypedrouter?: any;
|
|
}
|
|
|
|
/**
|
|
* server data that is added for dealing with the request server side. Will be omitted when sending the response
|
|
*/
|
|
serverData?: {
|
|
jwtData: any;
|
|
jwtValid: boolean;
|
|
};
|
|
|
|
/**
|
|
* the request data
|
|
*/
|
|
request: object;
|
|
|
|
/**
|
|
* the response data
|
|
*/
|
|
response: object;
|
|
|
|
/**
|
|
* any error information that might be encountered while dealing with a request
|
|
*/
|
|
error?: { text: string; data: any };
|
|
|
|
/**
|
|
* retry information for smartly advising the client to retry at a later point in time
|
|
*/
|
|
retry?: {
|
|
waitForMs: number;
|
|
reason: string;
|
|
};
|
|
|
|
/**
|
|
* a correlation id that
|
|
* used for matching request and response
|
|
* !important. Don't remove.
|
|
*/
|
|
correlation?: {
|
|
id: string;
|
|
phase: 'request' | 'response';
|
|
};
|
|
}
|
|
|
|
export type implementsTR<T, U extends T> = {};
|
|
|
|
export interface ITypedEvent<T> {
|
|
name: string;
|
|
uniqueEventId: string;
|
|
payload: T;
|
|
}
|
|
|
|
export interface ITag {
|
|
name: string;
|
|
payload: any;
|
|
}
|
|
|
|
export type implementsTag<T, U extends T> = {};
|
|
|
|
export interface IUnifiedStreamReqResObject {
|
|
streamId: string;
|
|
cycle: 'request' | 'response';
|
|
cycleId: string;
|
|
type: 'start' | 'binaryChunk' | 'object' | 'end' | 'keepAlive';
|
|
streamChunk?: any;
|
|
keepAlive?: boolean;
|
|
next?: boolean;
|
|
}
|
|
|
|
export interface IStreamRequest extends implementsTR<
|
|
ITypedRequest,
|
|
IStreamRequest
|
|
> {
|
|
method: '##VirtualStream##';
|
|
request: IUnifiedStreamReqResObject;
|
|
response: IUnifiedStreamReqResObject;
|
|
}
|