@larksuiteoapi/api
Version:
larksuite open api sdk
97 lines • 3.5 kB
TypeScript
/// <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