UNPKG

@thoshpathi/utils-smartapi

Version:

Extended utilities for Angel One's smartapi-javascript SDK, including custom methods and helpers for market data like candles, P&L, and more.

85 lines (82 loc) 2.43 kB
import { SmartApiEnhanced } from "./chunk-EOAIEQMR.mjs"; // src/smartapi/index.ts import { WebSocketV2 } from "@thoshpathi/smartapi-javascript"; import { logger } from "@thoshpathi/utils-core"; var defaultConfigs = { apiRetryDelayMs: 1e3, apiTimeoutMs: 4e3 }; function isValidString(s) { return typeof s === "string" && s.trim().length > 0; } function validateBrokerData(brokerData) { if (brokerData == null) { logger.c("get logged smartapi failed. broker data empty"); return; } const { clientId, apiKey } = brokerData; if (!isValidString(clientId) || !isValidString(apiKey)) { logger.c("get logged smartapi failed. clientId or apiKey empty"); return; } return brokerData; } function validateBrokerTokenData(brokerTokenData) { if (validateBrokerData(brokerTokenData) == null) return; const { jwtToken, refreshToken, feedToken } = brokerTokenData; if (!isValidString(jwtToken) || !isValidString(refreshToken) || !isValidString(feedToken)) { logger.c( "get logged smartapi failed. jwtToken or refreshToken or feedToken empty" ); return; } return brokerTokenData; } async function getLoggedSmartapi(params) { const { brokerData, configs: { apiRetryDelayMs, apiTimeoutMs } = defaultConfigs } = params; if (validateBrokerTokenData(brokerData) == null) return; const { apiKey, clientId, jwtToken, refreshToken } = brokerData; const configs = { api_key: apiKey, client_code: clientId, access_token: jwtToken, timeout: apiTimeoutMs, refresh_token: refreshToken }; return new SmartApiEnhanced(configs, apiRetryDelayMs, logger); } function getSmartapi(params) { const { brokerData, configs: { apiRetryDelayMs, apiTimeoutMs } = defaultConfigs } = params; if (validateBrokerData(brokerData) == null) return; const { apiKey, clientId } = brokerData; const configs = { api_key: apiKey, client_code: clientId, timeout: apiTimeoutMs }; return new SmartApiEnhanced(configs, apiRetryDelayMs, logger); } async function getLoggedWebsocket(brokerData) { if (validateBrokerTokenData(brokerData) == null) return; const { apiKey, clientId, jwtToken, feedToken } = brokerData; const webSocket = new WebSocketV2({ apikey: apiKey, clientcode: clientId, jwttoken: jwtToken, feedtype: feedToken }); return webSocket; } export { getLoggedSmartapi, getSmartapi, getLoggedWebsocket };