Should I forgive him?

Last night my boyfriend and I got into a huge fight.. One of which I didn't start I simply told him I was tired of feeling lonely he's currently dealing with withdrawing from methadone but has been using percoset to escape the pain. In 7 days he'll be going to detox fully and stay in rehab for about 3 months. Anyhow he threaten to leave me and since I didn't react or fight for him to stay he got violent he grabbed me by my throat but wasn't squeezing hard he was squeezing my wrist tight as well after all that happened its like he woke up from it and then he realized what he had did and tried to apologize and make up. Idk what to do I am expecting his baby and I'm just lost at this point. Please help.