pretty-print-json
Version:
Pretty-print JSON data into HTML to indent and colorize (written in TypeScript)
3 lines (2 loc) • 2.19 kB
JavaScript
//! pretty-print-json v1.0.0 ~ github.com/center-key/pretty-print-json ~ MIT License
function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _defineProperty(a,b,c){return b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}var prettyPrintJson={version:"1.0.0",toHtml:function toHtml(a,b){var c=_objectSpread(_objectSpread({},{indent:3,linkUrls:!0,quoteKeys:!1}),b),d=function(a,b){return b?"<span class=json-"+a+">"+b+"</span>":""},e=function(a){var b=/^"/.test(a)&&"string",e=["true","false"].includes(a)&&"boolean",f=b&&c.linkUrls?a.replace(/https?:\/\/[^\s"]+/g,function makeLink(a){return"<a class=json-link href=\""+a+"\">"+a+"</a>"}):a;return d(e||"null"===a&&"null"||b||"number",f)},f=JSON.stringify(a,null,c.indent)||"undefined";return function htmlEntities(a){return a.replace(/&/g,"&").replace(/\\"/g,"\"").replace(/</g,"<").replace(/>/g,">")}(f).replace(/^( *)("[^"]+": )?("[^"]*"|[\w.+-]*)?([{}[\],]*)?$/mg,function replacer(a,b,f,g,h){var i={indent:b,key:f,value:g,end:h},j=c.quoteKeys?/(.*)(): /:/"([\w$]+)": |(.*): /,k=i.indent||"",l=i.key&&i.key.replace(j,"$1$2"),m=i.key?d("key",l)+d("mark",": "):"",n=i.value?e(i.value):"",o=d("mark",i.end);return k+m+n+o})}};"object"===("undefined"==typeof window?"undefined":_typeof(window))&&(window.prettyPrintJson=prettyPrintJson);