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,21 +363,22 @@
|
||||
$(document).ready(function() {
|
||||
var schemaWrapper = {{{jsonSchema}}};
|
||||
var schema = schemaWrapper.schema;
|
||||
schemaWrapper.definitions = defs;
|
||||
//console.log(JSON.stringify(schema))
|
||||
JsonRefs.resolveRefs(schemaWrapper, {
|
||||
"depth": 3,
|
||||
"resolveRemoteRefs": false,
|
||||
"resolveFileRefs": false
|
||||
}, 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));
|
||||
if (schema.$ref != null) {
|
||||
schema = defsParser.$refs.get(schema.$ref);
|
||||
} else {
|
||||
schemaWrapper.definitions = Object.assign({}, defs);
|
||||
$RefParser.dereference(schemaWrapper).catch(function(err) {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
|
||||
//console.log(JSON.stringify(schema));
|
||||
var view = new JSONSchemaView(schema, 3);
|
||||
$('#responses-{{nickname}}-{{code}}-schema-data').val(stringify(schema));
|
||||
var result = $('#responses-{{nickname}}-{{code}}-schema-{{code}}');
|
||||
result.empty();
|
||||
result.append(view.render());
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
<input id='responses-{{nickname}}-{{code}}-schema-data' type='hidden' value=''></input>
|
||||
@ -448,8 +449,17 @@
|
||||
</div>
|
||||
{{>js_jsonformatter}}
|
||||
{{>js_jsonschemaview}}
|
||||
{{>js_jsonref}}
|
||||
{{>js_json_schema_ref_parser}}
|
||||
{{>js_json_stringify_safe}}
|
||||
{{>js_webfontloader}}
|
||||
<script>
|
||||
var schemaWrapper = {};
|
||||
schemaWrapper.definitions = Object.assign({}, defs);
|
||||
defsParser = new $RefParser();
|
||||
defsParser.dereference(schemaWrapper).catch(function(err) {
|
||||
console.log(err);
|
||||
});
|
||||
</script>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$('.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
@ -5,29 +5,20 @@
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var schemaWrapper = {{{jsonSchema}}};
|
||||
|
||||
var schema = schemaWrapper.schema;
|
||||
schemaWrapper.definitions = defs;
|
||||
JsonRefs.resolveRefs(schemaWrapper, {"depth":3, "resolveRemoteRefs":false,"resolveFileRefs":false },function (err, resolved, metadata) {
|
||||
|
||||
|
||||
|
||||
var view = new JSONSchemaView(resolved.schema,2,{isBodyParam: true});
|
||||
if (schema.$ref != null) {
|
||||
schema = defsParser.$refs.get(schema.$ref);
|
||||
} else {
|
||||
schemaWrapper.definitions = Object.assign({}, defs);
|
||||
$RefParser.dereference(schemaWrapper).catch(function(err) {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
|
||||
var view = new JSONSchemaView(schema,2,{isBodyParam: true});
|
||||
var result = $('#d2e199_{{nickname}}_{{paramName}}');
|
||||
result.empty();
|
||||
result.append(view.render());
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
<div id="d2e199_{{nickname}}_{{paramName}}"></div>
|
||||
|
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user