Skip to content

Commit

Permalink
Update trade and marketData exports
Browse files Browse the repository at this point in the history
  • Loading branch information
117 committed Mar 24, 2024
1 parent 8d5aede commit c7daa5d
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 19 deletions.
2 changes: 1 addition & 1 deletion api/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
export { default as marketData } from "./marketData/index.ts";
export { default as trade } from "./trade/index.ts";
export { default as trade } from "./trade/consumer.ts";
8 changes: 7 additions & 1 deletion api/marketData/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ import {
TradeResponse,
} from "./types/stocks.ts";

export default ({ request }: ClientContext) => ({
const methods = ({ request }: ClientContext) => ({
v1beta1: {
corporateActions: (queryParams: CorporateActionsQueryParams) =>
request<CorporateActionsResponse>({
Expand Down Expand Up @@ -412,3 +412,9 @@ export default ({ request }: ClientContext) => ({
},
},
});

export default <T extends ReturnType<typeof methods>>(
context: ClientContext
): T => {
return methods(context) as T;
};
36 changes: 21 additions & 15 deletions api/trade/index.ts → api/trade/consumer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,9 @@ import {
} from "./types/portfolio.ts";

import {
AddAssetToWatchlistParams,
CreateWatchlistParams,
DeleteSymbolFromWatchlistParams,
DeleteWatchlistByNameParams,
GetWatchlistByNameParams,
UpdateWatchlistByNameParams,
UpdateWatchlistParams,
Watchlist,
} from "./types/watchlist.ts";
AnnouncementsQueryParams,
CorporateActionAnnouncement,
} from "./types/corporate.ts";

import {
Account,
Expand All @@ -21,11 +15,6 @@ import {
UpdatedAccountConfigurations,
} from "./types/account.ts";

import {
AnnouncementsQueryParams,
CorporateActionAnnouncement,
} from "./types/corporate.ts";

import {
CryptoFundingTransfer,
CryptoFundingWallet,
Expand All @@ -36,6 +25,17 @@ import {
WithdrawalParams,
} from "./types/cryptoFunding.ts";

import {
AddAssetToWatchlistParams,
CreateWatchlistParams,
DeleteSymbolFromWatchlistParams,
DeleteWatchlistByNameParams,
GetWatchlistByNameParams,
UpdateWatchlistByNameParams,
UpdateWatchlistParams,
Watchlist,
} from "./types/watchlist.ts";

import { ClientContext } from "../../factory/createClient.ts";
import { Asset } from "./types/asset.ts";
import { MarketCalendar } from "./types/calendar.ts";
Expand All @@ -44,7 +44,7 @@ import { OptionContract, OptionContractsQueryParams } from "./types/options.ts";
import { CreateOrderOptions, Order, PatchOrderOptions } from "./types/order.ts";
import { ClosePositionOptions, Position } from "./types/position.ts";

export default ({ request }: ClientContext) => ({
const methods = ({ request }: ClientContext) => ({
v2: {
account: {
get: () =>
Expand Down Expand Up @@ -382,3 +382,9 @@ export default ({ request }: ClientContext) => ({
},
},
});

export default <T extends ReturnType<typeof methods>>(
context: ClientContext
): T => {
return methods(context) as T;
};
3 changes: 3 additions & 0 deletions api/types/shared.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { ClientContext } from "../../factory/createClient.ts";

export type ClientContextConsumer<T> = (context: ClientContext) => T;
7 changes: 5 additions & 2 deletions factory/createClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { StockDataWebSocket } from "../api/trade/types/websocket_2.ts";
import { CryptoWebSocket } from "../api/trade/types/websocket_3.ts";
import { NewsWebSocket } from "../api/trade/types/websocket_4.ts";
import { OptionsWebSocket } from "../api/trade/types/websocket_5.ts";
import { ClientContextConsumer } from "../api/types/shared.ts";
import { TokenBucketOptions, createTokenBucket } from "./createTokenBucket.ts";

// Used to share the client options and request function between the different API methods
Expand Down Expand Up @@ -32,8 +33,10 @@ type RequestOptions = {
// The client object that is returned by createClient
export type Client = {
rest: {
trade: ReturnType<typeof trade>;
marketData: ReturnType<typeof marketData>;
trade: ReturnType<ClientContextConsumer<ReturnType<typeof trade>>>;
marketData: ReturnType<
ClientContextConsumer<ReturnType<typeof marketData>>
>;
};
websocket: {
trade: TradeWebSocket;
Expand Down

0 comments on commit c7daa5d

Please sign in to comment.