Загрузка данных


import type { SymbolInfo, SymbolInfoInput } from '@src/types';

export function getSymbolFromSymbolId(symbolId: string): string {
  const normalizedSymbolId = symbolId.trim();

  if (!normalizedSymbolId) {
    return '';
  }

  const separatorIndex = normalizedSymbolId.lastIndexOf(':');

  if (separatorIndex === -1) {
    return normalizedSymbolId;
  }

  const symbol = normalizedSymbolId.slice(separatorIndex + 1).trim();

  return symbol || normalizedSymbolId;
}

export function normalizeSymbolInfo(input: SymbolInfoInput): SymbolInfo | undefined {
  const symbolId = input.symbolId?.trim();

  if (!symbolId) {
    return undefined;
  }

  const symbolFromId = getSymbolFromSymbolId(symbolId);
  const symbol = input.symbol?.trim() || symbolFromId;
  const symbolName = input.symbolName?.trim() || symbol;

  return {
    symbolId,
    symbol,
    symbolName,
  };
}

export function areSymbolInfosEqual(left: SymbolInfo, right: SymbolInfo): boolean {
  return (
    left.symbolId === right.symbolId &&
    left.symbol === right.symbol &&
    left.symbolName === right.symbolName
  );
}