UNPKG

@itick/browser-sdk

Version:

Official iTick API SDK for browser. Real-time & historical data for global Stocks, Forex, Crypto, Indices, Futures, Funds, Precious Metals. REST (OHLCV/K-line) + low-latency WebSocket. Promise-based, TypeScript-ready. For quant trading & fintech

219 lines 10.8 kB
"use strict"; /** * Indices Module * Provides data access interfaces for indices */ Object.defineProperty(exports, "__esModule", { value: true }); exports.IndicesClient = void 0; const client_1 = require("../../utils/client"); const utils_1 = require("../../utils"); /** * Indices SDK Client * Specialized for indices data access */ class IndicesClient extends client_1.Client { constructor(token, options) { super(token, options); } /** * Get Indices Real-Time Trade Snapshot * @description Query latest trade real-time market data for indices based on market code and symbol code * @param params - Query parameters object * @param params.region - Market code (e.g., GB etc.), see {@link https://docs.itick.org/rest-api/indices/indices-tick Official Documentation} for complete supported list * @param params.code - Symbol code (e.g., DJI, SPX etc.) * @returns Promise wrapped standard API response, data is real-time market data {@link TickData} * @example * ```typescript * // Get real-time trade market data for Dow Jones Industrial Average (DJI) * getTick({ region: 'GB', code: 'DJI' }).then(response => { * console.log('Real-time market:', response.data); * }).catch(err => { * console.error('Failed to get market data:', err); * }); * ``` */ async getTick(params) { const { region, code } = params; return this._get('/indices/tick', { region, code }); } /** * Get Indices Latest Quote * @description Query latest quote real-time market data for indices based on market code and symbol code * @param params - Query parameters object * @param params.region - Market code (e.g., GB etc.), see {@link https://docs.itick.org/rest-api/indices/indices-quote Official Documentation} for complete supported list * @param params.code - Symbol code (e.g., DJI, SPX etc.) * @returns Promise wrapped API response, data is latest quote data {@link QuoteData} * @example * ```typescript * // Get latest quote for Dow Jones Industrial Average (DJI) * getQuote({ region: 'GB', code: 'DJI' }).then(response => { * console.log('Latest quote:', response.data); * }).catch(err => { * console.error('Failed to get quote:', err); * }); * ``` */ async getQuote(params) { const { region, code } = params; return this._get('/indices/quote', { region, code }); } /** * Get Indices Latest Order Book * @description Query latest order book data for indices based on market code and symbol code * @param params - Query parameters object * @param params.region - Market code (e.g., GB etc.), see {@link https://docs.itick.org/rest-api/indices/indices-depth Official Documentation} for complete supported list * @param params.code - Symbol code (e.g., DJI, SPX etc.) * @returns Promise wrapped API response, data is latest order book data {@link DepthData} * @example * ```typescript * // Get latest order book for Dow Jones Industrial Average (DJI) * getDepth({ region: 'GB', code: 'DJI' }).then(response => { * console.log('Latest order book:', response.data); * }).catch(err => { * console.error('Failed to get order book:', err); * }); * ``` */ async getDepth(params) { const { region, code } = params; return this._get('/indices/depth', { region, code }); } /** * Get Indices K-Line Data * @description Query indices K-line data based on market code, symbol code, K-line period, end time and number of records to return * @param options - Query parameters object {@link GetKlineOptions} * @param options.region - Market code (e.g., GB etc.), see {@link https://docs.itick.org/rest-api/indices/indices-kline Official Documentation} for complete supported list * @param options.code - Symbol code (e.g., DJI, SPX etc.) * @returns Promise wrapped API response, data is K-line data array {@link KlineData} * @example * ```typescript * // Get 5-minute K-line data for Dow Jones Industrial Average (DJI) * getKline({ region: 'GB', code: 'DJI', interval: '5m', limit: 100 }).then(response => { * console.log('K-line data:', response.data); * }).catch(err => { * console.error('Failed to get K-line data:', err); * }); * ``` */ async getKline(options) { const { region, code, kType, interval, limit, et } = options; const params = { region, code, kType: (0, utils_1.convertKlinePeriod)(interval ?? kType), limit }; if (et) params.et = et; return this._get('/indices/kline', params); } /** * Get Multiple Indices Latest Trades * @description Query latest trade real-time market data for multiple indices based on market code and symbol code list * @param params - Query parameters object * @param params.region - Market code (e.g., GB etc.), see {@link https://docs.itick.org/rest-api/indices/indices-ticks Official Documentation} for complete supported list * @param params.codes - Symbol code list (e.g., DJI, SPX etc.) * @returns Promise wrapped API response, data is multiple indices latest trade data object {@link TickDataMap} * @example * ```typescript * // Get latest trade market data for Dow Jones (DJI) and S&P 500 (SPX) * getTicks({ region: 'GB', codes: ['DJI', 'SPX'] }).then(response => { * console.log('Latest trades:', response.data); * }).catch(err => { * console.error('Failed to get trade market data:', err); * }); * ``` */ async getTicks(params) { const { region, codes } = params; return this._get('/indices/ticks', { region, codes: Array.isArray(codes) ? codes.join(',') : codes }); } /** * Get Multiple Indices Latest Quotes * @description Query latest quote real-time market data for multiple indices based on market code and symbol code list * @param params - Query parameters object * @param params.region - Market code (e.g., GB etc.), see {@link https://docs.itick.org/rest-api/indices/indices-quotes Official Documentation} for complete supported list * @param params.codes - Symbol code list (e.g., DJI, SPX etc.) * @returns Promise wrapped API response, data is multiple indices latest quote data object {@link QuoteDataMap} * @example * ```typescript * // Get latest quotes for Dow Jones (DJI) and S&P 500 (SPX) * getQuotes({ region: 'GB', codes: ['DJI', 'SPX'] }).then(response => { * console.log('Latest quotes:', response.data); * }).catch(err => { * console.error('Failed to get quotes:', err); * }); * ``` */ async getQuotes(params) { const { region, codes } = params; return this._get('/indices/quotes', { region, codes: Array.isArray(codes) ? codes.join(',') : codes }); } /** * Get Multiple Indices Latest Order Books * @description Query latest order book real-time market data for multiple indices based on market code and symbol code list * @param params - Query parameters object * @param params.region - Market code (e.g., GB etc.), see {@link https://docs.itick.org/rest-api/indices/indices-depths Official Documentation} for complete supported list * @param params.codes - Symbol code list (e.g., DJI, SPX etc.) * @returns Promise wrapped API response, data is multiple indices latest order book data object {@link DepthDataMap} * @example * ```typescript * // Get latest order books for Dow Jones (DJI) and S&P 500 (SPX) * getDepths({ region: 'GB', codes: ['DJI', 'SPX'] }).then(response => { * console.log('Latest order books:', response.data); * }).catch(err => { * console.error('Failed to get order books:', err); * }); * ``` */ async getDepths(params) { const { region, codes } = params; return this._get('/indices/depths', { region, codes: Array.isArray(codes) ? codes.join(',') : codes }); } /** * Get Multiple Indices K-Line Data * @description Query K-line data for multiple indices based on market code, symbol code list, K-line period, end time and number of records to return * @param options - Query parameters object {@link GetKlinesOptions} * @param options.region - Market code (e.g., GB etc.), see {@link https://docs.itick.org/rest-api/indices/indices-klines Official Documentation} for complete supported list * @param options.codes - Symbol code list (e.g., DJI, SPX etc.) * @returns Promise wrapped API response, data is multiple indices K-line data object {@link KlineDataMap} * @example * ```typescript * // Get 5-minute K-line data for Dow Jones (DJI) and S&P 500 (SPX) * getKlines({ region: 'GB', codes: ['DJI', 'SPX'], kType: '5m', limit: 100 }).then(response => { * console.log('K-line data:', response.data); * }).catch(err => { * console.error('Failed to get K-line data:', err); * }); * ``` */ async getKlines(options) { const { region, codes, kType, interval, limit, et } = options; const params = { region, codes: Array.isArray(codes) ? codes.join(',') : codes, kType: (0, utils_1.convertKlinePeriod)(interval ?? kType), limit }; if (et) params.et = et; return this._get('/indices/klines', params); } /** * Create WebSocket Connection * @description Creates a WebSocket connection and returns a SocketClient object for managing connection and subscribing to real-time data. Subscription data can be specified through options parameter. * Automatically handles connection retry and heartbeat mechanism to ensure connection stability and reliability. * @param options - Optional options object for creating WebSocket connection {@link CreateSocketOptions} * @returns SocketClient object for managing WebSocket connection * @example * ```typescript * // Create a WebSocket connection and subscribe to 1-minute K-line and real-time quote data for Dow Jones and S&P 500 * const client = new IndicesClient(token); * const socket = client.createSocket({ * subscribeData: { * codes: ['DJI$GB', 'SPX$GB'], * types: ['kline@1m', 'quote'] * } * }); * socket.onSocketMessage(data => { * console.log('Received WebSocket message:', data); * }); * ``` * @see Official Documentation https://docs.itick.org/websocket/indices */ createSocket(options) { return this._createSocket('/indices', options); } } exports.IndicesClient = IndicesClient; //# sourceMappingURL=index.js.map