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>";
}