script.jsexport const sleep = (milliseconds) => new Promise(resolve => setTimeout(resolve, milliseconds));
script.jsArray.range = function(n) {
return Array.from(Array(n), (v, k) => k);
}
script.jsString.prototype.mapLine = function(func) {
return (this.split(/\n/).map(line => [line.match(/^\s*/), func(line.trim()), line.match(/\s*$/)].join("")).join('\n'));
}
script.jsString.prototype.sandwich = function(left,right) {
return (this. replace(/(.+)/g, left+"$1"+right));
}
script.jsString.prototype.mathEsc = function() {
return (this.replace(/\s/g,"\\ "). replace(/\^/,"\^\\wedge"));
}
script.jsString.prototype.mathMode = function() {
return (this.sandwich("[\$ "," ]"));
}