UNPKG

growwapi

Version:
49 lines (48 loc) 1.84 kB
import { LiveFeedSubscriptionType, Segment } from '../../types'; export function subscriptionSegmentParser(segment) { switch (segment) { case Segment.CASH: return 'eq'; case Segment.FNO: return 'fo'; default: return 'eq'; } } export function subscriptionTypeParser(type) { switch (type) { case LiveFeedSubscriptionType.Price: return 'price'; case LiveFeedSubscriptionType.Index: return 'indices'; case LiveFeedSubscriptionType.MarketDepth: return 'book'; default: throw new Error(`Unknown subscription type: ${type}`); } } export function liveUpdatesParser(type, subscriptionId) { switch (type) { case LiveFeedSubscriptionType.FnoOrderUpdates: return `stocks_fo/order/updates.apex.${subscriptionId}`; case LiveFeedSubscriptionType.FnoPositionUpdates: return `stocks_fo/position/updates.apex.${subscriptionId}`; case LiveFeedSubscriptionType.EquityOrderUpdates: return `stocks/order/updates.apex.${subscriptionId}`; default: throw new Error(`Unknown subscription type: ${type}`); } } export function liveIndexParser(type, instruction) { const exchange = instruction.exchange?.toLowerCase(); const token = instruction.exchangeToken; const typeString = subscriptionTypeParser(type); return `/ld/${typeString}/${exchange}/price.${token}`; } export function liveMarketParser(type, instruction) { const segment = subscriptionSegmentParser(instruction.segment); const exchange = instruction.exchange?.toLowerCase(); const token = instruction.exchangeToken; const typeString = subscriptionTypeParser(type); return `/ld/${segment}/${exchange}/${typeString}.${token}`; }