forked from loafle/openapi-generator-original
[Html2] Fix circular references (#5313)
* [html2] Fix circular references Signed-off-by: weiyang <weiyang.ones@gmail.com> * [samples][html2] Fix circular references Signed-off-by: weiyang <weiyang.ones@gmail.com> * Optimize code format Signed-off-by: weiyang <weiyang.ones@gmail.com>
This commit is contained in:
parent
5de04fa612
commit
abffdca441
@ -363,20 +363,21 @@
|
|||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
var schemaWrapper = {{{jsonSchema}}};
|
var schemaWrapper = {{{jsonSchema}}};
|
||||||
var schema = schemaWrapper.schema;
|
var schema = schemaWrapper.schema;
|
||||||
schemaWrapper.definitions = defs;
|
if (schema.$ref != null) {
|
||||||
//console.log(JSON.stringify(schema))
|
schema = defsParser.$refs.get(schema.$ref);
|
||||||
JsonRefs.resolveRefs(schemaWrapper, {
|
} else {
|
||||||
"depth": 3,
|
schemaWrapper.definitions = Object.assign({}, defs);
|
||||||
"resolveRemoteRefs": false,
|
$RefParser.dereference(schemaWrapper).catch(function(err) {
|
||||||
"resolveFileRefs": false
|
console.log(err);
|
||||||
}, function(err, resolved, metadata) {
|
});
|
||||||
//console.log(JSON.stringify(resolved));
|
}
|
||||||
var view = new JSONSchemaView(resolved.schema, 3);
|
|
||||||
$('#responses-{{nickname}}-{{code}}-schema-data').val(JSON.stringify(resolved.schema));
|
//console.log(JSON.stringify(schema));
|
||||||
var result = $('#responses-{{nickname}}-{{code}}-schema-{{code}}');
|
var view = new JSONSchemaView(schema, 3);
|
||||||
result.empty();
|
$('#responses-{{nickname}}-{{code}}-schema-data').val(stringify(schema));
|
||||||
result.append(view.render());
|
var result = $('#responses-{{nickname}}-{{code}}-schema-{{code}}');
|
||||||
});
|
result.empty();
|
||||||
|
result.append(view.render());
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
</div>
|
</div>
|
||||||
@ -448,8 +449,17 @@
|
|||||||
</div>
|
</div>
|
||||||
{{>js_jsonformatter}}
|
{{>js_jsonformatter}}
|
||||||
{{>js_jsonschemaview}}
|
{{>js_jsonschemaview}}
|
||||||
{{>js_jsonref}}
|
{{>js_json_schema_ref_parser}}
|
||||||
|
{{>js_json_stringify_safe}}
|
||||||
{{>js_webfontloader}}
|
{{>js_webfontloader}}
|
||||||
|
<script>
|
||||||
|
var schemaWrapper = {};
|
||||||
|
schemaWrapper.definitions = Object.assign({}, defs);
|
||||||
|
defsParser = new $RefParser();
|
||||||
|
defsParser.dereference(schemaWrapper).catch(function(err) {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
$('.nav-tabs-examples').find('a:first').tab('show');
|
$('.nav-tabs-examples').find('a:first').tab('show');
|
||||||
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,27 @@
|
|||||||
|
<script>
|
||||||
|
// https://github.com/isaacs/json-stringify-safe v5.0.1
|
||||||
|
function stringify(obj, replacer, spaces, cycleReplacer) {
|
||||||
|
return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces)
|
||||||
|
}
|
||||||
|
|
||||||
|
function serializer(replacer, cycleReplacer) {
|
||||||
|
var stack = [], keys = []
|
||||||
|
|
||||||
|
if (cycleReplacer == null) cycleReplacer = function(key, value) {
|
||||||
|
if (stack[0] === value) return "[Circular ~]"
|
||||||
|
return "[Circular ~." + keys.slice(0, stack.indexOf(value)).join(".") + "]"
|
||||||
|
}
|
||||||
|
|
||||||
|
return function(key, value) {
|
||||||
|
if (stack.length > 0) {
|
||||||
|
var thisPos = stack.indexOf(this)
|
||||||
|
~thisPos ? stack.splice(thisPos + 1) : stack.push(this)
|
||||||
|
~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key)
|
||||||
|
if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value)
|
||||||
|
}
|
||||||
|
else stack.push(value)
|
||||||
|
|
||||||
|
return replacer == null ? value : replacer.call(this, key, value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
File diff suppressed because one or more lines are too long
@ -3,33 +3,24 @@
|
|||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
var schemaWrapper = {{{jsonSchema}}};
|
var schemaWrapper = {{{jsonSchema}}};
|
||||||
|
var schema = schemaWrapper.schema;
|
||||||
var schema = schemaWrapper.schema;
|
if (schema.$ref != null) {
|
||||||
schemaWrapper.definitions = defs;
|
schema = defsParser.$refs.get(schema.$ref);
|
||||||
JsonRefs.resolveRefs(schemaWrapper, {"depth":3, "resolveRemoteRefs":false,"resolveFileRefs":false },function (err, resolved, metadata) {
|
} else {
|
||||||
|
schemaWrapper.definitions = Object.assign({}, defs);
|
||||||
|
$RefParser.dereference(schemaWrapper).catch(function(err) {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
var view = new JSONSchemaView(schema,2,{isBodyParam: true});
|
||||||
var view = new JSONSchemaView(resolved.schema,2,{isBodyParam: true});
|
var result = $('#d2e199_{{nickname}}_{{paramName}}');
|
||||||
|
result.empty();
|
||||||
var result = $('#d2e199_{{nickname}}_{{paramName}}');
|
result.append(view.render());
|
||||||
result.empty();
|
});
|
||||||
result.append(view.render());
|
</script>
|
||||||
|
<div id="d2e199_{{nickname}}_{{paramName}}"></div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
<div id="d2e199_{{nickname}}_{{paramName}}"></div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user