@oada/client
Version:
A lightweight client tool to interact with an OADA-compliant server
49 lines (48 loc) • 1.73 kB
TypeScript
/**
* @license
* Copyright 2021 Open Ag Data Alliance
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { EventEmitter } from "eventemitter3";
import type { Connection, ConnectionRequest, IConnectionResponse } from "./client.js";
export interface HTTPTimeouts {
/** @default 60e3 */
connect?: number;
body?: number;
headers?: number;
keepAlive?: number;
}
export declare class HttpClient extends EventEmitter implements Connection {
#private;
/**
* Constructor
* @param domain Domain. E.g., www.example.com
* @param concurrency Number of allowed in-flight requests. Default 10.
*/
constructor(domain: string, token: string, { concurrency, userAgent, timeouts, }: {
concurrency: number;
userAgent: string;
timeouts: HTTPTimeouts;
});
/** Disconnect the connection */
disconnect(): Promise<void>;
/** Return true if connected, otherwise false */
isConnected(): boolean;
/** Wait for the connection to open */
awaitConnection(): Promise<void>;
request(request: ConnectionRequest, { timeout, signal }?: {
timeout?: number;
signal?: AbortSignal;
}): Promise<IConnectionResponse>;
}