diff options
Diffstat (limited to 'node_modules/locutus/php/var/print_r.js')
-rw-r--r-- | node_modules/locutus/php/var/print_r.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/node_modules/locutus/php/var/print_r.js b/node_modules/locutus/php/var/print_r.js new file mode 100644 index 0000000..534ebe3 --- /dev/null +++ b/node_modules/locutus/php/var/print_r.js @@ -0,0 +1,75 @@ +'use strict'; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +module.exports = function print_r(array, returnVal) { + // eslint-disable-line camelcase + // discuss at: http://locutus.io/php/print_r/ + // original by: Michael White (http://getsprink.com) + // improved by: Ben Bryan + // improved by: Brett Zamir (http://brett-zamir.me) + // improved by: Kevin van Zonneveld (http://kvz.io) + // input by: Brett Zamir (http://brett-zamir.me) + // example 1: print_r(1, true) + // returns 1: '1' + + var echo = require('../strings/echo'); + + var output = ''; + var padChar = ' '; + var padVal = 4; + + var _repeatChar = function _repeatChar(len, padChar) { + var str = ''; + for (var i = 0; i < len; i++) { + str += padChar; + } + return str; + }; + var _formatArray = function _formatArray(obj, curDepth, padVal, padChar) { + if (curDepth > 0) { + curDepth++; + } + + var basePad = _repeatChar(padVal * curDepth, padChar); + var thickPad = _repeatChar(padVal * (curDepth + 1), padChar); + var str = ''; + + if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && obj !== null && obj.constructor) { + str += 'Array\n' + basePad + '(\n'; + for (var key in obj) { + if (Object.prototype.toString.call(obj[key]) === '[object Array]') { + str += thickPad; + str += '['; + str += key; + str += '] => '; + str += _formatArray(obj[key], curDepth + 1, padVal, padChar); + } else { + str += thickPad; + str += '['; + str += key; + str += '] => '; + str += obj[key]; + str += '\n'; + } + } + str += basePad + ')\n'; + } else if (obj === null || obj === undefined) { + str = ''; + } else { + // for our "resource" class + str = obj.toString(); + } + + return str; + }; + + output = _formatArray(array, 0, padVal, padChar); + + if (returnVal !== true) { + echo(output); + return true; + } + return output; +}; +//# sourceMappingURL=print_r.js.map
\ No newline at end of file |