index.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. var JSONFormatter = require('../dist/json-formatter.js').default;
  2. var live = document.getElementById('live');
  3. var hoverPreviewEnabledCheckbox = document.getElementById('hoverPreviewEnabled');
  4. function render() {
  5. live.style.backgroundColor = 'transparent';
  6. var result = document.getElementById('live-result');
  7. try {
  8. var formatter = new JSONFormatter(JSON.parse(live.value), 1, { hoverPreviewEnabled: hoverPreviewEnabledCheckbox.checked });
  9. result.innerHTML = '';
  10. result.appendChild(formatter.render());
  11. } catch (e) {
  12. live.style.backgroundColor = 'rgba(255, 87, 34, 0.35)';
  13. }
  14. }
  15. live.addEventListener('keyup', render);
  16. hoverPreviewEnabledCheckbox.addEventListener('change', render);
  17. render();
  18. var complex = {
  19. numbers: [
  20. 1,
  21. 2,
  22. 3
  23. ],
  24. boolean: true,
  25. 'null': null,
  26. number: 123,
  27. anObject: {
  28. a: 'b',
  29. c: 'd',
  30. e: 'f\"'
  31. },
  32. string: 'Hello World',
  33. url: 'https://github.com/mohsen1/json-formatter-js',
  34. date: 'Sun Aug 03 2014 20:46:55 GMT-0700 (PDT)',
  35. func: function add(a, b) { return a + b; }
  36. };
  37. var deep = { a: { b: { c: { d: {} } } } };
  38. var examples = [
  39. { title: 'Complex', json: complex },
  40. { title: 'Number', json: 42 },
  41. { title: 'null', json: null },
  42. { title: 'Empty Object', json: Object.create(null) },
  43. { title: 'Empty Array', json: [] },
  44. { title: 'Deep', json: deep },
  45. { title: 'Dark', json: complex, config: { theme: 'dark' } }
  46. ];
  47. var result = document.querySelector('.result');
  48. examples.forEach(function (example) {
  49. var title = document.createElement('h3');
  50. var formatter = new JSONFormatter(example.json, 1, example.config);
  51. title.innerText = example.title;
  52. result.appendChild(title)
  53. var el = formatter.render();
  54. if (example.config && example.config.theme === 'dark') {
  55. el.style.backgroundColor = '#1E1E1E';
  56. }
  57. result.appendChild(el);
  58. });
  59. fetch('demo/giant.json').then(function (resp) {
  60. resp.json().then(function (giant) {
  61. var giantFormatter = new JSONFormatter(giant, 2, { hoverPreviewEnabled: true });
  62. var title = document.createElement('h3');
  63. title.innerText = 'Giant JSON';
  64. result.appendChild(title);
  65. console.time('Rendering giant JSON');
  66. result.appendChild(giantFormatter.render());
  67. console.timeEnd('Rendering giant JSON');
  68. });
  69. })