refactor of data-service

This commit is contained in:
Boki 2025-06-12 08:03:09 -04:00
parent 6fb98c69f2
commit 09c97df1a8
49 changed files with 2394 additions and 112 deletions

View file

@ -2,6 +2,7 @@ import type { Logger } from '@stock-bot/logger';
import { AdapterFactory } from './adapters/index';
import type { HttpClientConfig, HttpResponse, RequestConfig } from './types';
import { HttpError } from './types';
import { getRandomUserAgent } from './user-agent';
export class HttpClient {
private readonly config: HttpClientConfig;
@ -165,9 +166,17 @@ export class HttpClient {
* Merge configs with defaults
*/
private mergeConfig(config: RequestConfig): RequestConfig {
// Merge headers with automatic User-Agent assignment
const mergedHeaders = { ...this.config.headers, ...config.headers };
// Add random User-Agent if not specified
if (!mergedHeaders['User-Agent'] && !mergedHeaders['user-agent']) {
mergedHeaders['User-Agent'] = getRandomUserAgent();
}
return {
...config,
headers: { ...this.config.headers, ...config.headers },
headers: mergedHeaders,
timeout: config.timeout ?? this.config.timeout,
};
}