Danse with his power armor, high durability, and perception will have no problem tanking everything while standing in one spot with a mini gun or gatling gun. You don't need to maintain his power armor and he has the best armor in the game. He also has really high accuracy in general and high strength which means that he demolishes anything with a minigun bashing once the enemies come close to him. He was made specifically to be a tank and frontal combat. If you want a companion that focuses on combat and can tank pretty much anything, it would be him, but he's a goody-two-shoes so if you plan on playing an evil character, he may get mad and leave you.
Curie is the worst companion to bring to a fight, she has really buggy AI that may make her do more melee than firefight and may even change her weapons to punching the enemies.
Piper is not suited for combat in general.
Codsworth is pretty useless since he requires short range most of the time and may get in the range of fire.
Strong is also durable, but not as durable as Danse, and he also prefers more melee combat.
Nick is good as well, he has high endurance, but his aim is pretty terrible.
MacCready is a bit too weak to tank anything, he's more of a range attackers.
X6 is also a good frontal attacker, he has high accuracy, and high durability, but not as durable as Danse, but he's better for an evil playthrough since Danse gets annoyed whenever you do something evil.
Cait, Deacon, Preston are pretty much around the same range.
Basically, the top 3 people to use for frontal attacks are:
1. Danse
2. X6
3. Cait/Deacon/Preston