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
);
}