UNPKG

starling-framework

Version:

A fast, productive library for 2D cross-platform development.

216 lines (199 loc) 5.13 kB
// Class: StringTools var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this $global.Object.defineProperty(exports, "__esModule", {value: true}); var __map_reserved = {}; // Imports var $hxClasses = require("./hxClasses_stub").default; var $import = require("./import_stub").default; function HxOverrides() {return require("./HxOverrides");} function EReg() {return require("./EReg");} function StringBuf() {return require("./StringBuf");} // Constructor var StringTools = function(){} // Meta StringTools.__name__ = ["StringTools"]; StringTools.prototype = { }; StringTools.prototype.__class__ = StringTools.prototype.constructor = $hxClasses["StringTools"] = StringTools; // Init // Statics StringTools.urlEncode = function(s) { return encodeURIComponent(s); } StringTools.urlDecode = function(s) { return decodeURIComponent(s.split("+").join(" ")); } StringTools.htmlEscape = function(s,quotes) { s = s.split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;"); if(quotes) { return s.split("\"").join("&quot;").split("'").join("&#039;"); } else { return s; } } StringTools.htmlUnescape = function(s) { return s.split("&gt;").join(">").split("&lt;").join("<").split("&quot;").join("\"").split("&#039;").join("'").split("&amp;").join("&"); } StringTools.startsWith = function(s,start) { if(s.length >= start.length) { return (HxOverrides().default).substr(s,0,start.length) == start; } else { return false; } } StringTools.endsWith = function(s,end) { var elen = end.length; var slen = s.length; if(slen >= elen) { return (HxOverrides().default).substr(s,slen - elen,elen) == end; } else { return false; } } StringTools.isSpace = function(s,pos) { var c = (HxOverrides().default).cca(s,pos); if(!(c > 8 && c < 14)) { return c == 32; } else { return true; } } StringTools.ltrim = function(s) { var l = s.length; var r = 0; while(r < l && StringTools.isSpace(s,r)) ++r; if(r > 0) { return (HxOverrides().default).substr(s,r,l - r); } else { return s; } } StringTools.rtrim = function(s) { var l = s.length; var r = 0; while(r < l && StringTools.isSpace(s,l - r - 1)) ++r; if(r > 0) { return (HxOverrides().default).substr(s,0,l - r); } else { return s; } } StringTools.trim = function(s) { return StringTools.ltrim(StringTools.rtrim(s)); } StringTools.lpad = function(s,c,l) { if(c.length <= 0) { return s; } while(s.length < l) s = c + s; return s; } StringTools.rpad = function(s,c,l) { if(c.length <= 0) { return s; } while(s.length < l) s += c; return s; } StringTools.replace = function(s,sub,by) { return s.split(sub).join(by); } StringTools.hex = function(n,digits) { var s = ""; var hexChars = "0123456789ABCDEF"; while(true) { s = hexChars.charAt(n & 15) + s; n >>>= 4; if(!(n > 0)) { break; } } if(digits != null) { while(s.length < digits) s = "0" + s; } return s; } StringTools.fastCodeAt = function(s,index) { return s.charCodeAt(index); } StringTools.isEof = function(c) { return c != c; } StringTools.quoteUnixArg = function(argument) { if(argument == "") { return "''"; } if(!new (EReg().default)("[^a-zA-Z0-9_@%+=:,./-]","").match(argument)) { return argument; } return "'" + StringTools.replace(argument,"'","'\"'\"'") + "'"; } StringTools.quoteWinArg = function(argument,escapeMetaCharacters) { if(!new (EReg().default)("^[^ \t\\\\\"]+$","").match(argument)) { var result = new (StringBuf().default)(); var needquote = argument.indexOf(" ") != -1 || argument.indexOf("\t") != -1 || argument == ""; if(needquote) { result.add("\""); } var bs_buf = new (StringBuf().default)(); var _g1 = 0; var _g = argument.length; while(_g1 < _g) { var i = _g1++; var _g2 = (HxOverrides().default).cca(argument,i); if(_g2 == null) { var c = _g2; if(bs_buf.get_length() > 0) { result.add(bs_buf.toString()); bs_buf = new (StringBuf().default)(); } result.addChar(c); } else { switch(_g2) { case 34: var bs = bs_buf.toString(); result.add(bs); result.add(bs); bs_buf = new (StringBuf().default)(); result.add("\\\""); break; case 92: bs_buf.add("\\"); break; default: var c1 = _g2; if(bs_buf.get_length() > 0) { result.add(bs_buf.toString()); bs_buf = new (StringBuf().default)(); } result.addChar(c1); } } } result.add(bs_buf.toString()); if(needquote) { result.add(bs_buf.toString()); result.add("\""); } argument = result.toString(); } if(escapeMetaCharacters) { var result1 = new (StringBuf().default)(); var _g11 = 0; var _g3 = argument.length; while(_g11 < _g3) { var i1 = _g11++; var c2 = (HxOverrides().default).cca(argument,i1); if(StringTools.winMetaCharacters.indexOf(c2) >= 0) { result1.addChar(94); } result1.addChar(c2); } return result1.toString(); } else { return argument; } } StringTools.winMetaCharacters = [32,40,41,37,33,94,34,60,62,38,124,10,13,44,59] // Export exports.default = StringTools;