JSFiddle - React, Tailwind, and code Playground
HTML
<pre id="o"></pre>
JavaScript
q=s=>+s.slice(1,s.length-1);f=s=>s[0]=="s"?("*".repeat(q(s))+"\n").repeat(q(s)):Array.apply(0,Array(-~(q(s)/2))).map((_,n)=>(s[s.length-1]=="-"?~~(q(s)/2)-n:n)).map(n=>(" ".repeat(q(s)/2-n)+"*".repeat(n*2+1))).join("\n")
tests = [
"s5+",
"s12-",
"t5+",
"t3-",
"s3-",
"t5-",
"t7+",
"t15-",
"t1-"];
for (test in tests) {
document.getElementById("o").innerHTML += tests[test] + ":<br>" + f(tests[test]) + "<br>";
}