element.scrollHeight is probably worth investigating.
If I was going to approach this (and I’ve not tested this at all), I’d set the textarea’s height to 1px measure the scroll height and then reset the textarea’s height.
https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight