Parse directly after setText
This commit is contained in:
parent
72455e3302
commit
2b6caba3df
|
@ -2,16 +2,16 @@
|
||||||
|
|
||||||
https://github.com/josdejong/jsoneditor
|
https://github.com/josdejong/jsoneditor
|
||||||
|
|
||||||
|
|
||||||
## not yet published, version 6.2.0
|
## not yet published, version 6.2.0
|
||||||
|
|
||||||
- Implemented new mode `preview`, capable of working with JSON documents
|
- Implemented new mode `preview`, capable of working with large JSON documents
|
||||||
up to 500 MiB.
|
up to 500 MiB.
|
||||||
- Fixed #730: in `code` mode, there was an initial undo action which clears
|
- Fixed #730: in `code` mode, there was an initial undo action which clears
|
||||||
the content.
|
the content.
|
||||||
- Upgraded dependencies `vanilla-picker@2.9.1`, `mobius1-selectr@2.4.13`,
|
- Upgraded dependencies `vanilla-picker@2.9.1`, `mobius1-selectr@2.4.13`,
|
||||||
`ajv@6.10.2`.
|
`ajv@6.10.2`.
|
||||||
|
|
||||||
|
|
||||||
## 2019-06-22, version 6.1.0
|
## 2019-06-22, version 6.1.0
|
||||||
|
|
||||||
- Implemented menu options `sort` and `transform` for modes `code` and `text`.
|
- Implemented menu options `sort` and `transform` for modes `code` and `text`.
|
||||||
|
|
|
@ -525,9 +525,7 @@ previewmode.get = function() {
|
||||||
var text = this.getText();
|
var text = this.getText();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
console.time('parse') // TODO: cleanup
|
|
||||||
this.json = util.parse(text); // this can throw an error
|
this.json = util.parse(text); // this can throw an error
|
||||||
console.timeEnd('parse') // TODO: cleanup
|
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
// try to sanitize json, replace JavaScript notation with JSON notation
|
// try to sanitize json, replace JavaScript notation with JSON notation
|
||||||
|
@ -547,14 +545,10 @@ previewmode.get = function() {
|
||||||
*/
|
*/
|
||||||
previewmode.getText = function() {
|
previewmode.getText = function() {
|
||||||
if (this.text === undefined) {
|
if (this.text === undefined) {
|
||||||
console.time('stringify') // TODO: cleanup
|
|
||||||
this.text = JSON.stringify(this.json, null, this.indentation);
|
this.text = JSON.stringify(this.json, null, this.indentation);
|
||||||
console.timeEnd('stringify') // TODO: cleanup
|
|
||||||
|
|
||||||
if (this.options.escapeUnicode === true) {
|
if (this.options.escapeUnicode === true) {
|
||||||
console.time('escape') // TODO: cleanup
|
|
||||||
this.text = util.escapeUnicodeChars(this.text);
|
this.text = util.escapeUnicodeChars(this.text);
|
||||||
console.timeEnd('escape') // TODO: cleanup
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -594,9 +588,7 @@ previewmode.updateText = function(jsonText) {
|
||||||
*/
|
*/
|
||||||
previewmode._setText = function(jsonText, json) {
|
previewmode._setText = function(jsonText, json) {
|
||||||
if (this.options.escapeUnicode === true) {
|
if (this.options.escapeUnicode === true) {
|
||||||
console.time('escape') // TODO: cleanup
|
|
||||||
this.text = util.escapeUnicodeChars(jsonText);
|
this.text = util.escapeUnicodeChars(jsonText);
|
||||||
console.timeEnd('escape') // TODO: cleanup
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.text = jsonText;
|
this.text = jsonText;
|
||||||
|
@ -605,7 +597,18 @@ previewmode._setText = function(jsonText, json) {
|
||||||
|
|
||||||
this._renderPreview();
|
this._renderPreview();
|
||||||
|
|
||||||
this._pushHistory();
|
if (this.json === undefined) {
|
||||||
|
var me = this;
|
||||||
|
this.executeWithBusyMessage(function () {
|
||||||
|
// force parsing the json now, else it will be done in validate without feedback
|
||||||
|
me.json = me.get();
|
||||||
|
me._renderPreview();
|
||||||
|
me._pushHistory();
|
||||||
|
}, 'parsing...');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this._pushHistory();
|
||||||
|
}
|
||||||
|
|
||||||
this._debouncedValidate();
|
this._debouncedValidate();
|
||||||
};
|
};
|
||||||
|
|
|
@ -252,14 +252,10 @@ function showTransformModal (container, json, onTransform) {
|
||||||
|
|
||||||
function updatePreview() {
|
function updatePreview() {
|
||||||
try {
|
try {
|
||||||
console.time('transform') // TODO: cleanup
|
|
||||||
var transformed = jmespath.search(value, query.value);
|
var transformed = jmespath.search(value, query.value);
|
||||||
console.timeEnd('transform') // TODO: cleanup
|
|
||||||
|
|
||||||
console.time('stringify') // TODO: cleanup
|
|
||||||
preview.className = 'jsoneditor-transform-preview';
|
preview.className = 'jsoneditor-transform-preview';
|
||||||
preview.value = stringifyPartial(transformed, 2, MAX_PREVIEW_CHARACTERS);
|
preview.value = stringifyPartial(transformed, 2, MAX_PREVIEW_CHARACTERS);
|
||||||
console.timeEnd('stringify') // TODO: cleanup
|
|
||||||
|
|
||||||
ok.disabled = false;
|
ok.disabled = false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue