import type { ProtocolContext, ProtocolPacket, ProtocolParser } from "./types.js";
import { gt06Protocol } from "./gt06/parser.js";
import { trackerKingProtocol } from "./trackerking/parser.js";

const parsers: ProtocolParser[] = [gt06Protocol, trackerKingProtocol];

export const detectProtocol = (payload: Buffer, context?: ProtocolContext): ProtocolPacket | null => {
  const parser = parsers.find((candidate) => candidate.matches(payload));
  if (!parser) {
    return null;
  }
  return parser.parse(payload, context);
};
