UNPKG

fetch-jsd

Version:

A simple and typed library, based on OpenAPI spec from developer.atlassian.com, for accessing product APIs.

137 lines (136 loc) 4.46 kB
/** * Service Desk Public REST API * Public REST API for Jira Service Desk * * The version of the OpenAPI document: 1001.0.0-SNAPSHOT * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ export declare const BASE_PATH: string; /** * This is the base class for all generated API classes. */ export declare class BaseAPI { protected configuration: Configuration; private middleware; constructor(configuration?: Configuration); withMiddleware<T extends BaseAPI>(this: T, ...middlewares: Middleware[]): T; withPreMiddleware<T extends BaseAPI>(this: T, ...preMiddlewares: Array<Middleware['pre']>): T; withPostMiddleware<T extends BaseAPI>(this: T, ...postMiddlewares: Array<Middleware['post']>): T; protected request(context: RequestOpts): Promise<Response>; private createFetchParams; private fetchApi; /** * Create a shallow clone of `this` by constructing a new instance * and then shallow cloning data members. */ private clone; } export declare class RequiredError extends Error { field: string; name: "RequiredError"; constructor(field: string, msg?: string); } export declare const COLLECTION_FORMATS: { csv: string; ssv: string; tsv: string; pipes: string; }; export declare type FetchAPI = GlobalFetch['fetch']; export interface ConfigurationParameters { basePath?: string; fetchApi?: FetchAPI; middleware?: Middleware[]; queryParamsStringify?: (params: HTTPQuery) => string; username?: string; password?: string; apiKey?: string | ((name: string) => string); accessToken?: string | ((name?: string, scopes?: string[]) => string); headers?: HTTPHeaders; credentials?: RequestCredentials; } export declare class Configuration { private configuration; constructor(configuration?: ConfigurationParameters); readonly basePath: string; readonly fetchApi: FetchAPI; readonly middleware: Middleware[]; readonly queryParamsStringify: (params: HTTPQuery) => string; readonly username: string | undefined; readonly password: string | undefined; readonly apiKey: ((name: string) => string) | undefined; readonly accessToken: ((name: string, scopes?: string[]) => string) | undefined; readonly headers: HTTPHeaders | undefined; readonly credentials: RequestCredentials | undefined; } export declare type Json = any; export declare type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS'; export declare type HTTPHeaders = { [key: string]: string; }; export declare type HTTPQuery = { [key: string]: string | number | null | boolean | Array<string | number | null | boolean> | HTTPQuery; }; export declare type HTTPBody = Json | FormData; export declare type ModelPropertyNaming = 'camelCase' | 'snake_case' | 'PascalCase' | 'original'; export interface FetchParams { url: string; init: RequestInit; } export interface RequestOpts { path: string; method: HTTPMethod; headers: HTTPHeaders; query?: HTTPQuery; body?: HTTPBody; } export declare function exists(json: any, key: string): boolean; export declare function querystring(params: HTTPQuery, prefix?: string): string; export declare function mapValues(data: any, fn: (item: any) => any): {}; export interface RequestContext { fetch: FetchAPI; url: string; init: RequestInit; } export interface ResponseContext { fetch: FetchAPI; url: string; init: RequestInit; response: Response; } export interface Middleware { pre?(context: RequestContext): Promise<FetchParams | void>; post?(context: ResponseContext): Promise<Response | void>; } export interface ApiResponse<T> { raw: Response; value(): Promise<T>; } export interface ResponseTransformer<T> { (json: any): T; } export declare class JSONApiResponse<T> { raw: Response; private transformer; constructor(raw: Response, transformer?: ResponseTransformer<T>); value(): Promise<T>; } export declare class VoidApiResponse { raw: Response; constructor(raw: Response); value(): Promise<any>; } export declare class BlobApiResponse { raw: Response; constructor(raw: Response); value(): Promise<Blob>; } export declare class TextApiResponse { raw: Response; constructor(raw: Response); value(): Promise<string>; }