summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/var/var_export.js.map
blob: 03812d25af6cad3b2b1445411b1fe3775f42d3a6 (plain) (blame)
1
{"version":3,"sources":["../../../src/php/var/var_export.js"],"names":["module","exports","var_export","mixedExpression","boolReturn","echo","require","retstr","iret","value","cnt","x","i","funcParts","idtLevel","arguments","innerIndent","outerIndent","getFuncName","fn","name","exec","_makeIndent","Array","join","__getType","inp","match","types","cons","type","constructor","toString","toLowerCase","length","replace","RegExp"],"mappings":"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","file":"var_export.js","sourcesContent":["module.exports = function var_export (mixedExpression, boolReturn) { // eslint-disable-line camelcase\n  //  discuss at: http://locutus.io/php/var_export/\n  // original by: Philip Peterson\n  // improved by: johnrembo\n  // improved by: Brett Zamir (http://brett-zamir.me)\n  //    input by: Brian Tafoya (http://www.premasolutions.com/)\n  //    input by: Hans Henrik (http://hanshenrik.tk/)\n  // bugfixed by: Brett Zamir (http://brett-zamir.me)\n  // bugfixed by: Brett Zamir (http://brett-zamir.me)\n  //   example 1: var_export(null)\n  //   returns 1: null\n  //   example 2: var_export({0: 'Kevin', 1: 'van', 2: 'Zonneveld'}, true)\n  //   returns 2: \"array (\\n  0 => 'Kevin',\\n  1 => 'van',\\n  2 => 'Zonneveld'\\n)\"\n  //   example 3: var data = 'Kevin'\n  //   example 3: var_export(data, true)\n  //   returns 3: \"'Kevin'\"\n\n  var echo = require('../strings/echo')\n  var retstr = ''\n  var iret = ''\n  var value\n  var cnt = 0\n  var x = []\n  var i = 0\n  var funcParts = []\n  // We use the last argument (not part of PHP) to pass in\n  // our indentation level\n  var idtLevel = arguments[2] || 2\n  var innerIndent = ''\n  var outerIndent = ''\n  var getFuncName = function (fn) {\n    var name = (/\\W*function\\s+([\\w$]+)\\s*\\(/).exec(fn)\n    if (!name) {\n      return '(Anonymous)'\n    }\n    return name[1]\n  }\n\n  var _makeIndent = function (idtLevel) {\n    return (new Array(idtLevel + 1))\n      .join(' ')\n  }\n  var __getType = function (inp) {\n    var i = 0\n    var match\n    var types\n    var cons\n    var type = typeof inp\n    if (type === 'object' && (inp && inp.constructor) &&\n      getFuncName(inp.constructor) === 'LOCUTUS_Resource') {\n      return 'resource'\n    }\n    if (type === 'function') {\n      return 'function'\n    }\n    if (type === 'object' && !inp) {\n      // Should this be just null?\n      return 'null'\n    }\n    if (type === 'object') {\n      if (!inp.constructor) {\n        return 'object'\n      }\n      cons = inp.constructor.toString()\n      match = cons.match(/(\\w+)\\(/)\n      if (match) {\n        cons = match[1].toLowerCase()\n      }\n      types = ['boolean', 'number', 'string', 'array']\n      for (i = 0; i < types.length; i++) {\n        if (cons === types[i]) {\n          type = types[i]\n          break\n        }\n      }\n    }\n    return type\n  }\n  var type = __getType(mixedExpression)\n\n  if (type === null) {\n    retstr = 'NULL'\n  } else if (type === 'array' || type === 'object') {\n    outerIndent = _makeIndent(idtLevel - 2)\n    innerIndent = _makeIndent(idtLevel)\n    for (i in mixedExpression) {\n      value = var_export(mixedExpression[i], 1, idtLevel + 2)\n      value = typeof value === 'string' ? value.replace(/</g, '&lt;')\n        .replace(/>/g, '&gt;') : value\n      x[cnt++] = innerIndent + i + ' => ' +\n        (__getType(mixedExpression[i]) === 'array' ? '\\n' : '') + value\n    }\n    iret = x.join(',\\n')\n    retstr = outerIndent + 'array (\\n' + iret + '\\n' + outerIndent + ')'\n  } else if (type === 'function') {\n    funcParts = mixedExpression.toString().match(/function .*?\\((.*?)\\) \\{([\\s\\S]*)\\}/)\n\n    // For lambda functions, var_export() outputs such as the following:\n    // '\\000lambda_1'. Since it will probably not be a common use to\n    // expect this (unhelpful) form, we'll use another PHP-exportable\n    // construct, create_function() (though dollar signs must be on the\n    // variables in JavaScript); if using instead in JavaScript and you\n    // are using the namespaced version, note that create_function() will\n    // not be available as a global\n    retstr = \"create_function ('\" + funcParts[1] + \"', '\" +\n      funcParts[2].replace(new RegExp(\"'\", 'g'), \"\\\\'\") + \"')\"\n  } else if (type === 'resource') {\n    // Resources treated as null for var_export\n    retstr = 'NULL'\n  } else {\n    retstr = typeof mixedExpression !== 'string' ? mixedExpression\n      : \"'\" + mixedExpression.replace(/([\"'])/g, '\\\\$1').replace(/\\0/g, '\\\\0') + \"'\"\n  }\n\n  if (!boolReturn) {\n    echo(retstr)\n    return null\n  }\n\n  return retstr\n}\n"]}