From e051d07e6f00adb06dcd2372526b95474dee1c0b Mon Sep 17 00:00:00 2001 From: alessiocastrica Date: Wed, 2 Aug 2023 19:26:41 +0200 Subject: [PATCH 1/2] fix: import export duplication --- src/index.ts | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/src/index.ts b/src/index.ts index bb64087..c729713 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,8 +3,8 @@ export { Client } from "./Client.js"; export { ApiError } from "./rest/ApiError"; export { BaseHttpRequest } from "./rest/BaseHttpRequest"; export { CancelablePromise, CancelError } from "./rest/CancelablePromise"; -export { OpenAPI } from "./OpenAPI"; -export type { OpenAPIConfig } from "./OpenAPI"; +export { OpenAPI } from "./Client"; +export type { OpenAPIConfig } from "./Client"; export type { Account } from "./entities/Account.js"; export { AccountConfigurations } from "./entities/AccountConfigurations.js"; @@ -32,17 +32,6 @@ export { TradingActivities } from "./entities/TradingActivities.js"; export type { UpdateWatchlistRequest } from "./entities/UpdateWatchlistRequest.js"; export type { Watchlist } from "./entities/Watchlist.js"; -export { Account } from "./api/account"; -export { AccountConfigurations } from "./api/AccountConfigurations"; -export { AccountService } from "./api/AccountService.js"; -export { Calendar } from "./api/calendar"; -export { Clock } from "./api/clock"; -export { Assets } from "./api/assets"; -export { Orders } from "./api/orders"; -export { PortfolioHistoryService } from "./api/PortfolioHistoryService.js"; -export { Positions } from "./api/positions"; -export { Watchlists } from "./api/watchlists"; - export { adjustment } from "./entities/adjustment.js"; export { Bar } from "./entities/Bar.js"; export type { BarsResponse } from "./entities/BarsResponse.js"; @@ -78,10 +67,4 @@ export type { stock_symbols } from "./entities/stock_symbols.js"; export type { timeframe } from "./entities/timeframe.js"; export type { Trade } from "./entities/Trade.js"; export type { TradesResponse } from "./entities/TradesResponse.js"; -export type { XBBO } from "./entities/XBBO.js"; - -export { Crypto } from "./api/crypto"; -export { Logos } from "./api/logos"; -export { News } from "./api/news"; -export { Screener } from "./api/screener"; -export { Stocks } from "./api/stocks"; +export type { XBBO } from "./entities/XBBO.js"; \ No newline at end of file From bfd8c4b91baa2cfaf2ea307783ba7ceca4f67dd0 Mon Sep 17 00:00:00 2001 From: alessiocastrica Date: Wed, 2 Aug 2023 19:27:43 +0200 Subject: [PATCH 2/2] feat: smaller fixes and added BaseURL enum --- src/Client.ts | 28 +++++++++++++++++++++------- src/rest/AxiosHttpRequest.ts | 2 +- src/rest/BaseHttpRequest.ts | 6 ++++-- src/rest/request.ts | 2 +- 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/Client.ts b/src/Client.ts index b4b4ad4..7b7d7b3 100644 --- a/src/Client.ts +++ b/src/Client.ts @@ -21,8 +21,20 @@ export const OpenAPI: OpenAPIConfig = { type HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest; +export enum BaseURL { + BROKER_SANDBOX = "https://broker-api.sandbox.alpaca.markets", + BROKER_PRODUCTION = "https://broker-api.alpaca.markets", + TRADING_PAPER = "https://paper-api.alpaca.markets", + TRADING_LIVE = "https://api.alpaca.markets", + DATA = "https://data.alpaca.markets", + MARKET_DATA_STREAM = "wss://stream.data.alpaca.markets", + TRADING_STREAM_PAPER = "wss://paper-api.alpaca.markets/stream", + TRADING_STREAM_LIVE = "wss://api.alpaca.markets/stream", +} + interface ClientOptions { paper: boolean; + baseURL?: BaseURL; credentials: { key: string; secret: string; @@ -36,15 +48,17 @@ export class Client { options?: ClientOptions, HttpRequest: HttpRequestConstructor = AxiosHttpRequest ) { - const { paper, credentials } = options ?? {}; + const { paper, baseURL, credentials } = options ?? {}; // base request object for all requests // changes based on paper/live mode and/or data endpoints this.baseHttpRequest = new HttpRequest({ BASE: + baseURL ? baseURL : paper === true || paper === undefined - ? "https://paper-api.alpaca.markets" - : "https://api.alpaca.markets", + ? BaseURL.TRADING_PAPER + : BaseURL.TRADING_LIVE, + // TODO: need to implement credentials accordingly HEADERS: !!credentials ? { "APCA-API-KEY-ID": credentials.key, @@ -55,19 +69,19 @@ export class Client { } get account() { - return prewrap(account, this.baseHttpRequest.config); + return prewrap(account, this.baseHttpRequest); } get assets() { - return prewrap(assets, this.baseHttpRequest.config); + return prewrap(assets, this.baseHttpRequest); } get clock() { - return prewrap(clock, this.baseHttpRequest.config); + return prewrap(clock, this.baseHttpRequest); } get calendar() { - return prewrap(calendar, this.baseHttpRequest.config); + return prewrap(calendar, this.baseHttpRequest); } } diff --git a/src/rest/AxiosHttpRequest.ts b/src/rest/AxiosHttpRequest.ts index f2e4cb8..679e98a 100644 --- a/src/rest/AxiosHttpRequest.ts +++ b/src/rest/AxiosHttpRequest.ts @@ -1,7 +1,7 @@ import type { ApiRequestOptions } from "./ApiRequestOptions"; import { BaseHttpRequest } from "./BaseHttpRequest"; import type { CancelablePromise } from "./CancelablePromise"; -import type { OpenAPIConfig } from "../OpenAPI"; +import type { OpenAPIConfig } from "../Client"; import { request as __request } from "./request"; export class AxiosHttpRequest extends BaseHttpRequest { diff --git a/src/rest/BaseHttpRequest.ts b/src/rest/BaseHttpRequest.ts index b374489..89335be 100644 --- a/src/rest/BaseHttpRequest.ts +++ b/src/rest/BaseHttpRequest.ts @@ -1,9 +1,11 @@ import type { ApiRequestOptions } from "./ApiRequestOptions"; import type { CancelablePromise } from "./CancelablePromise"; -import type { OpenAPIConfig } from "../OpenAPI"; +import type { OpenAPIConfig } from "../Client"; export abstract class BaseHttpRequest { - constructor(public readonly config: OpenAPIConfig) {} + constructor(public readonly config: OpenAPIConfig) { + this.config = config; + } public abstract request(options: ApiRequestOptions): CancelablePromise; } diff --git a/src/rest/request.ts b/src/rest/request.ts index 71dbf88..c9a8d67 100644 --- a/src/rest/request.ts +++ b/src/rest/request.ts @@ -12,7 +12,7 @@ import type { ApiRequestOptions } from "./ApiRequestOptions"; import type { ApiResult } from "./ApiResult"; import { CancelablePromise } from "./CancelablePromise"; import type { OnCancel } from "./CancelablePromise"; -import type { OpenAPIConfig } from "../OpenAPI"; +import type { OpenAPIConfig } from "../Client"; export const isDefined = ( value: T | null | undefined