1 line
14 KiB
JSON
1 line
14 KiB
JSON
{"ast":null,"code":"/*\n * extsprintf.js: extended POSIX-style sprintf\n */\nvar mod_assert = require('assert');\n\nvar mod_util = require('util');\n/*\n * Public interface\n */\n\n\nexports.sprintf = jsSprintf;\nexports.printf = jsPrintf;\nexports.fprintf = jsFprintf;\n/*\n * Stripped down version of s[n]printf(3c). We make a best effort to throw an\n * exception when given a format string we don't understand, rather than\n * ignoring it, so that we won't break existing programs if/when we go implement\n * the rest of this.\n *\n * This implementation currently supports specifying\n *\t- field alignment ('-' flag),\n * \t- zero-pad ('0' flag)\n *\t- always show numeric sign ('+' flag),\n *\t- field width\n *\t- conversions for strings, decimal integers, and floats (numbers).\n *\t- argument size specifiers. These are all accepted but ignored, since\n *\t Javascript has no notion of the physical size of an argument.\n *\n * Everything else is currently unsupported, most notably precision, unsigned\n * numbers, non-decimal numbers, and characters.\n */\n\nfunction jsSprintf(fmt) {\n var regex = ['([^%]*)',\n /* normal text */\n '%',\n /* start of format */\n '([\\'\\\\-+ #0]*?)',\n /* flags (optional) */\n '([1-9]\\\\d*)?',\n /* width (optional) */\n '(\\\\.([1-9]\\\\d*))?',\n /* precision (optional) */\n '[lhjztL]*?',\n /* length mods (ignored) */\n '([diouxXfFeEgGaAcCsSp%jr])'\n /* conversion */\n ].join('');\n var re = new RegExp(regex);\n var args = Array.prototype.slice.call(arguments, 1);\n var flags, width, precision, conversion;\n var left, pad, sign, arg, match;\n var ret = '';\n var argn = 1;\n mod_assert.equal('string', typeof fmt);\n\n while ((match = re.exec(fmt)) !== null) {\n ret += match[1];\n fmt = fmt.substring(match[0].length);\n flags = match[2] || '';\n width = match[3] || 0;\n precision = match[4] || '';\n conversion = match[6];\n left = false;\n sign = false;\n pad = ' ';\n\n if (conversion == '%') {\n ret += '%';\n continue;\n }\n\n if (args.length === 0) throw new Error('too few args to sprintf');\n arg = args.shift();\n argn++;\n if (flags.match(/[\\' #]/)) throw new Error('unsupported flags: ' + flags);\n if (precision.length > 0) throw new Error('non-zero precision not supported');\n if (flags.match(/-/)) left = true;\n if (flags.match(/0/)) pad = '0';\n if (flags.match(/\\+/)) sign = true;\n\n switch (conversion) {\n case 's':\n if (arg === undefined || arg === null) throw new Error('argument ' + argn + ': attempted to print undefined or null ' + 'as a string');\n ret += doPad(pad, width, left, arg.toString());\n break;\n\n case 'd':\n arg = Math.floor(arg);\n\n /*jsl:fallthru*/\n\n case 'f':\n sign = sign && arg > 0 ? '+' : '';\n ret += sign + doPad(pad, width, left, arg.toString());\n break;\n\n case 'x':\n ret += doPad(pad, width, left, arg.toString(16));\n break;\n\n case 'j':\n /* non-standard */\n if (width === 0) width = 10;\n ret += mod_util.inspect(arg, false, width);\n break;\n\n case 'r':\n /* non-standard */\n ret += dumpException(arg);\n break;\n\n default:\n throw new Error('unsupported conversion: ' + conversion);\n }\n }\n\n ret += fmt;\n return ret;\n}\n\nfunction jsPrintf() {\n var args = Array.prototype.slice.call(arguments);\n args.unshift(process.stdout);\n jsFprintf.apply(null, args);\n}\n\nfunction jsFprintf(stream) {\n var args = Array.prototype.slice.call(arguments, 1);\n return stream.write(jsSprintf.apply(this, args));\n}\n\nfunction doPad(chr, width, left, str) {\n var ret = str;\n\n while (ret.length < width) {\n if (left) ret += chr;else ret = chr + ret;\n }\n\n return ret;\n}\n/*\n * This function dumps long stack traces for exceptions having a cause() method.\n * See node-verror for an example.\n */\n\n\nfunction dumpException(ex) {\n var ret;\n if (!(ex instanceof Error)) throw new Error(jsSprintf('invalid type for %%r: %j', ex));\n /* Note that V8 prepends \"ex.stack\" with ex.toString(). */\n\n ret = 'EXCEPTION: ' + ex.constructor.name + ': ' + ex.stack;\n\n if (ex.cause && typeof ex.cause === 'function') {\n var cex = ex.cause();\n\n if (cex) {\n ret += '\\nCaused by: ' + dumpException(cex);\n }\n }\n\n return ret;\n}","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/extsprintf/lib/extsprintf.js"],"names":["mod_assert","require","mod_util","exports","sprintf","jsSprintf","printf","jsPrintf","fprintf","jsFprintf","fmt","regex","join","re","RegExp","args","Array","prototype","slice","call","arguments","flags","width","precision","conversion","left","pad","sign","arg","match","ret","argn","equal","exec","substring","length","Error","shift","undefined","doPad","toString","Math","floor","inspect","dumpException","unshift","process","stdout","apply","stream","write","chr","str","ex","constructor","name","stack","cause","cex"],"mappings":"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","sourcesContent":["/*\n * extsprintf.js: extended POSIX-style sprintf\n */\n\nvar mod_assert = require('assert');\nvar mod_util = require('util');\n\n/*\n * Public interface\n */\nexports.sprintf = jsSprintf;\nexports.printf = jsPrintf;\nexports.fprintf = jsFprintf;\n\n/*\n * Stripped down version of s[n]printf(3c). We make a best effort to throw an\n * exception when given a format string we don't understand, rather than\n * ignoring it, so that we won't break existing programs if/when we go implement\n * the rest of this.\n *\n * This implementation currently supports specifying\n *\t- field alignment ('-' flag),\n * \t- zero-pad ('0' flag)\n *\t- always show numeric sign ('+' flag),\n *\t- field width\n *\t- conversions for strings, decimal integers, and floats (numbers).\n *\t- argument size specifiers. These are all accepted but ignored, since\n *\t Javascript has no notion of the physical size of an argument.\n *\n * Everything else is currently unsupported, most notably precision, unsigned\n * numbers, non-decimal numbers, and characters.\n */\nfunction jsSprintf(fmt)\n{\n\tvar regex = [\n\t '([^%]*)',\t\t\t\t/* normal text */\n\t '%',\t\t\t\t/* start of format */\n\t '([\\'\\\\-+ #0]*?)',\t\t\t/* flags (optional) */\n\t '([1-9]\\\\d*)?',\t\t\t/* width (optional) */\n\t '(\\\\.([1-9]\\\\d*))?',\t\t/* precision (optional) */\n\t '[lhjztL]*?',\t\t\t/* length mods (ignored) */\n\t '([diouxXfFeEgGaAcCsSp%jr])'\t/* conversion */\n\t].join('');\n\n\tvar re = new RegExp(regex);\n\tvar args = Array.prototype.slice.call(arguments, 1);\n\tvar flags, width, precision, conversion;\n\tvar left, pad, sign, arg, match;\n\tvar ret = '';\n\tvar argn = 1;\n\n\tmod_assert.equal('string', typeof (fmt));\n\n\twhile ((match = re.exec(fmt)) !== null) {\n\t\tret += match[1];\n\t\tfmt = fmt.substring(match[0].length);\n\n\t\tflags = match[2] || '';\n\t\twidth = match[3] || 0;\n\t\tprecision = match[4] || '';\n\t\tconversion = match[6];\n\t\tleft = false;\n\t\tsign = false;\n\t\tpad = ' ';\n\n\t\tif (conversion == '%') {\n\t\t\tret += '%';\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (args.length === 0)\n\t\t\tthrow (new Error('too few args to sprintf'));\n\n\t\targ = args.shift();\n\t\targn++;\n\n\t\tif (flags.match(/[\\' #]/))\n\t\t\tthrow (new Error(\n\t\t\t 'unsupported flags: ' + flags));\n\n\t\tif (precision.length > 0)\n\t\t\tthrow (new Error(\n\t\t\t 'non-zero precision not supported'));\n\n\t\tif (flags.match(/-/))\n\t\t\tleft = true;\n\n\t\tif (flags.match(/0/))\n\t\t\tpad = '0';\n\n\t\tif (flags.match(/\\+/))\n\t\t\tsign = true;\n\n\t\tswitch (conversion) {\n\t\tcase 's':\n\t\t\tif (arg === undefined || arg === null)\n\t\t\t\tthrow (new Error('argument ' + argn +\n\t\t\t\t ': attempted to print undefined or null ' +\n\t\t\t\t 'as a string'));\n\t\t\tret += doPad(pad, width, left, arg.toString());\n\t\t\tbreak;\n\n\t\tcase 'd':\n\t\t\targ = Math.floor(arg);\n\t\t\t/*jsl:fallthru*/\n\t\tcase 'f':\n\t\t\tsign = sign && arg > 0 ? '+' : '';\n\t\t\tret += sign + doPad(pad, width, left,\n\t\t\t arg.toString());\n\t\t\tbreak;\n\n\t\tcase 'x':\n\t\t\tret += doPad(pad, width, left, arg.toString(16));\n\t\t\tbreak;\n\n\t\tcase 'j': /* non-standard */\n\t\t\tif (width === 0)\n\t\t\t\twidth = 10;\n\t\t\tret += mod_util.inspect(arg, false, width);\n\t\t\tbreak;\n\n\t\tcase 'r': /* non-standard */\n\t\t\tret += dumpException(arg);\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tthrow (new Error('unsupported conversion: ' +\n\t\t\t conversion));\n\t\t}\n\t}\n\n\tret += fmt;\n\treturn (ret);\n}\n\nfunction jsPrintf() {\n\tvar args = Array.prototype.slice.call(arguments);\n\targs.unshift(process.stdout);\n\tjsFprintf.apply(null, args);\n}\n\nfunction jsFprintf(stream) {\n\tvar args = Array.prototype.slice.call(arguments, 1);\n\treturn (stream.write(jsSprintf.apply(this, args)));\n}\n\nfunction doPad(chr, width, left, str)\n{\n\tvar ret = str;\n\n\twhile (ret.length < width) {\n\t\tif (left)\n\t\t\tret += chr;\n\t\telse\n\t\t\tret = chr + ret;\n\t}\n\n\treturn (ret);\n}\n\n/*\n * This function dumps long stack traces for exceptions having a cause() method.\n * See node-verror for an example.\n */\nfunction dumpException(ex)\n{\n\tvar ret;\n\n\tif (!(ex instanceof Error))\n\t\tthrow (new Error(jsSprintf('invalid type for %%r: %j', ex)));\n\n\t/* Note that V8 prepends \"ex.stack\" with ex.toString(). */\n\tret = 'EXCEPTION: ' + ex.constructor.name + ': ' + ex.stack;\n\n\tif (ex.cause && typeof (ex.cause) === 'function') {\n\t\tvar cex = ex.cause();\n\t\tif (cex) {\n\t\t\tret += '\\nCaused by: ' + dumpException(cex);\n\t\t}\n\t}\n\n\treturn (ret);\n}\n"]},"metadata":{},"sourceType":"script"} |