UNPKG

@larksuiteoapi/api

Version:
97 lines 3.5 kB
/// <reference types="node" /> import * as fetch from 'node-fetch'; import { Response } from "../response/response"; import { Context, Domain } from "@larksuiteoapi/core"; import * as stream from "stream"; export declare type OptFn = (opt: Opt) => void; export declare enum AccessTokenType { None = "none_access_token", App = "app_access_token", Tenant = "tenant_access_token", User = "user_access_token" } export declare class Opt { isNotDataField: boolean; pathParams: { [key: string]: any; }; queryParams: { [key: string]: any; }; userAccessToken: string; tenantKey: string; timeoutOfMs: number; isResponseStream: boolean; responseStream: any; needHelpDeskAuth: boolean; } export declare class Info<T> { domain: string; httpPath: string; httpMethod: string; queryParams: string; input: any; accessibleTokenTypeSet: Set<AccessTokenType>; accessTokenType: AccessTokenType; tenantKey: string; userAccessToken: string; isNotDataField: boolean; isResponseStream: boolean; isResponseStreamReal: boolean; output: T; retryable: boolean; needHelpDeskAuth: boolean; timeout: number; optFns: OptFn[]; withContext(ctx: Context): void; } export declare const getInfoByCtx: (ctx: Context) => Info<any>; export declare const setTimeoutOfMs: (timeoutOfMs: number) => (opt: Opt) => void; export declare const setUserAccessToken: (userAccessToken: string) => (opt: Opt) => void; export declare const setTenantKey: (tenantKey: string) => (opt: Opt) => void; export declare const setPathParams: (pathParams: { [key: string]: any; }) => (opt: Opt) => void; export declare const setQueryParams: (queryParams: { [key: string]: any; }) => (opt: Opt) => void; export declare const setIsNotDataField: () => (opt: Opt) => void; export declare const setIsResponseStream: () => (opt: Opt) => void; export declare const setNeedHelpDeskAuth: () => (opt: Opt) => void; export declare const setResponseStream: (responseStream: stream.Writable) => (opt: Opt) => void; export interface HTTPRequestOpts { method: string; timeout: number; body?: any; headers: {}; bodySource?: { isStream: boolean; filePath: string; }; } export declare class Request<T> extends Info<T> { httpRequestOpts: HTTPRequestOpts; httpResponse: fetch.Response; response: Response<T>; url(): string; fullUrl(domain: Domain): string; setPathParams(pathParams: { [key: string]: any; }): number; setQueryParams(queryParams: { [key: string]: any; }): number; setTimeoutOfMs(timeoutOfMs: number): number; setTenantKey(tenantKey: string): number; setUserAccessToken(userAccessToken: string): number; setIsNotDataField(): number; setIsResponseStream(): number; setResponseStream(responseStream: stream.Writable): number; setNeedHelpDeskAuth(): number; toString(): string; init(domain: string): void; } export declare const newRequestByAuth: <T>(httpPath: string, httpMethod: string, input: any, output: T) => Request<T>; export declare const newRequestOfTs: <T>(httpPath: string, httpMethod: string, accessTokenTypes: AccessTokenType[], input: any, output: T, ...optFns: OptFn[]) => Request<T>; export declare const newRequest: (httpPath: string, httpMethod: string, accessTokenType: AccessTokenType, input: any, ...optFns: OptFn[]) => Request<any>; //# sourceMappingURL=request.d.ts.map