mirror of https://github.com/actions/toolkit
92 lines
2.4 KiB
TypeScript
92 lines
2.4 KiB
TypeScript
import * as http from 'http'
|
|
import * as https from 'https'
|
|
import {HttpClientResponse} from './index'
|
|
|
|
export interface HttpClient {
|
|
options(
|
|
requestUrl: string,
|
|
additionalHeaders?: http.OutgoingHttpHeaders
|
|
): Promise<HttpClientResponse>
|
|
get(
|
|
requestUrl: string,
|
|
additionalHeaders?: http.OutgoingHttpHeaders
|
|
): Promise<HttpClientResponse>
|
|
del(
|
|
requestUrl: string,
|
|
additionalHeaders?: http.OutgoingHttpHeaders
|
|
): Promise<HttpClientResponse>
|
|
post(
|
|
requestUrl: string,
|
|
data: string,
|
|
additionalHeaders?: http.OutgoingHttpHeaders
|
|
): Promise<HttpClientResponse>
|
|
patch(
|
|
requestUrl: string,
|
|
data: string,
|
|
additionalHeaders?: http.OutgoingHttpHeaders
|
|
): Promise<HttpClientResponse>
|
|
put(
|
|
requestUrl: string,
|
|
data: string,
|
|
additionalHeaders?: http.OutgoingHttpHeaders
|
|
): Promise<HttpClientResponse>
|
|
sendStream(
|
|
verb: string,
|
|
requestUrl: string,
|
|
stream: NodeJS.ReadableStream,
|
|
additionalHeaders?: http.OutgoingHttpHeaders
|
|
): Promise<HttpClientResponse>
|
|
request(
|
|
verb: string,
|
|
requestUrl: string,
|
|
data: string | NodeJS.ReadableStream,
|
|
headers: http.OutgoingHttpHeaders
|
|
): Promise<HttpClientResponse>
|
|
requestRaw(
|
|
info: RequestInfo,
|
|
data: string | NodeJS.ReadableStream
|
|
): Promise<HttpClientResponse>
|
|
requestRawWithCallback(
|
|
info: RequestInfo,
|
|
data: string | NodeJS.ReadableStream,
|
|
onResult: (err?: Error, res?: HttpClientResponse) => void
|
|
): void
|
|
}
|
|
|
|
export interface RequestHandler {
|
|
prepareRequest(options: http.RequestOptions): void
|
|
canHandleAuthentication(response: HttpClientResponse): boolean
|
|
handleAuthentication(
|
|
httpClient: HttpClient,
|
|
requestInfo: RequestInfo,
|
|
data: string | NodeJS.ReadableStream | null
|
|
): Promise<HttpClientResponse>
|
|
}
|
|
|
|
export interface RequestInfo {
|
|
options: http.RequestOptions
|
|
parsedUrl: URL
|
|
httpModule: typeof http | typeof https
|
|
}
|
|
|
|
export interface RequestOptions {
|
|
headers?: http.OutgoingHttpHeaders
|
|
socketTimeout?: number
|
|
ignoreSslError?: boolean
|
|
allowRedirects?: boolean
|
|
allowRedirectDowngrade?: boolean
|
|
maxRedirects?: number
|
|
maxSockets?: number
|
|
keepAlive?: boolean
|
|
deserializeDates?: boolean
|
|
// Allows retries only on Read operations (since writes may not be idempotent)
|
|
allowRetries?: boolean
|
|
maxRetries?: number
|
|
}
|
|
|
|
export interface TypedResponse<T> {
|
|
statusCode: number
|
|
result: T | null
|
|
headers: http.IncomingHttpHeaders
|
|
}
|