From 85058afd027aa58dc49c4b2d583fe4a6bd56cd5d Mon Sep 17 00:00:00 2001 From: surunzi Date: Wed, 12 Oct 2016 16:15:03 +0800 Subject: [PATCH] Dev: Object display --- src/Console/Log.es6 | 26 +---- src/Console/Logger.es6 | 3 - src/Console/Logger.scss | 5 - src/Sources/Sources.scss | 2 +- src/lib/JsonViewer.es6 | 26 +++-- src/lib/getAbstract.es6 | 3 +- src/lib/json.scss | 5 +- src/lib/stringify.es6 | 225 ++++++++++++++++----------------------- test/console.js | 7 +- 9 files changed, 117 insertions(+), 185 deletions(-) diff --git a/src/Console/Log.es6 b/src/Console/Log.es6 index 5c53c81..3688c41 100644 --- a/src/Console/Log.es6 +++ b/src/Console/Log.es6 @@ -184,22 +184,6 @@ var getAbstract = util.wrap(origGetAbstract, function (fn, obj) }); }); -function stringifyWrapper(obj, options = {}) -{ - util.defaults(options, { - simple: true, - keyNum: 5, - sortKeys: false, - highlight: true, - keyQuotes: false, - specialVal: true, - getterVal: Log.showGetterVal, - unenumerable: false - }); - - return stringify(obj, options); -} - function formatTable(args) { let table = args[0], @@ -418,15 +402,9 @@ var render = data => tpl(data); function extractObj(obj, options = {}) { util.defaults(options, { - highlight: false, - keyQuotes: true, - simple: false, - sortKeys: true, - keyNum: 0, getterVal: Log.showGetterVal, - unenumerable: Log.showUnenumerable, - specialVal: false + unenumerable: Log.showUnenumerable }); - return JSON.parse(stringifyWrapper(obj, options)); + return JSON.parse(stringify(obj, options)); } diff --git a/src/Console/Logger.es6 b/src/Console/Logger.es6 index c4c944a..f0d4849 100644 --- a/src/Console/Logger.es6 +++ b/src/Console/Logger.es6 @@ -1,7 +1,4 @@ import util from '../lib/util' -import stringify from '../lib/stringify.es6' -import highlight from '../lib/highlight.es6' -import beautify from 'js-beautify' import Log from './Log.es6' export default class Logger extends util.Emitter diff --git a/src/Console/Logger.scss b/src/Console/Logger.scss index d0e1bc7..bf1307c 100644 --- a/src/Console/Logger.scss +++ b/src/Console/Logger.scss @@ -103,11 +103,6 @@ border-top: 1px solid $yellow; border-bottom: 1px solid $yellow; } - &.dir, &.table, &.log, &.info, &.warn, &.output, &.debug { - .json { - padding-top: 10px; - } - } &.info { color: $blue; } diff --git a/src/Sources/Sources.scss b/src/Sources/Sources.scss index d3b7100..c973119 100644 --- a/src/Sources/Sources.scss +++ b/src/Sources/Sources.scss @@ -33,7 +33,7 @@ } .json { background: #fff; - padding: $padding 25px 10px; + padding: 0 25px 10px; } .http { .breadcrumb { diff --git a/src/lib/JsonViewer.es6 b/src/lib/JsonViewer.es6 index 9e26faf..3c4d09f 100644 --- a/src/lib/JsonViewer.es6 +++ b/src/lib/JsonViewer.es6 @@ -23,6 +23,8 @@ export default class JsonViewer var $this = util.$(this), $firstSpan = util.$(this).find('span').eq(0); + if ($this.data('first-level') === 'true') return; + if (!$firstSpan.hasClass('eruda-expanded')) return; e.stopImmediatePropagation(); @@ -56,10 +58,16 @@ function jsonToHtml(data, firstLevel) function createEl(key, val, firstLevel) { - var type = 'object'; + let type = 'object', + isUnenumerable = false; if (key === 'erudaProto') key = '__proto__'; if (key === 'erudaId') return `
  • `; + if (util.startWith(key, 'erudaUnenumerable')) + { + key = util.trim(key.replace('erudaUnenumerable', '')); + isUnenumerable = true; + } if (util.isArr(val)) type = 'array'; @@ -67,8 +75,8 @@ function createEl(key, val, firstLevel) { if (firstLevel) return ''; - var keyClass = 'eruda-key'; - if (util.contain(LIGHTER_KEY, key)) keyClass = 'eruda-key-lighter'; + let keyClass = 'eruda-key'; + if (isUnenumerable || util.contain(LIGHTER_KEY, key)) keyClass = 'eruda-key-lighter'; return `${encode(key)}: `; } @@ -84,10 +92,10 @@ function createEl(key, val, firstLevel) { var objAbstract = val['erudaObjAbstract'] || util.upperFirst(type); - var obj = `
  • + var obj = `
  • ${wrapKey(key)} - ${objAbstract} + ${firstLevel ? '' : objAbstract}