redoc/lib/components/SchemaSample/schema-sample.js

48 lines
1.2 KiB
JavaScript
Raw Normal View History

2015-10-21 17:24:04 +03:00
'use strict';
import {RedocComponent, BaseComponent} from '../base';
import SchemaSampler from 'json-schema-instantiator';
@RedocComponent({
selector: 'schema-sample',
2015-10-30 11:26:23 +03:00
templateUrl: './lib/components/SchemaSample/schema-sample.html',
styles: [`
pre {
background-color: #121427;
}
`]
2015-10-21 17:24:04 +03:00
})
2015-10-27 20:44:08 +03:00
export default class SchemaSample extends BaseComponent {
2015-10-21 17:24:04 +03:00
constructor(schemaMgr) {
super(schemaMgr);
}
init() {
this.data = {};
// sometimes for some reason this method is called without resolved pointer
// TODO: fix it and remove the following workaround
2015-10-21 17:24:04 +03:00
if (!this.componentSchema || !this.pointer) {
return;
}
2015-10-25 14:26:38 +03:00
let base = {};
let sample;
2015-10-25 14:26:38 +03:00
// got pointer not directly to the schema but e.g. to response obj
if (this.componentSchema.schema) {
base = this.componentSchema;
this.componentSchema = this.componentSchema.schema;
}
if (base.examples && base.examples['application/json']) {
sample = base.examples['application/json'];
} else {
2015-10-25 14:26:38 +03:00
this.dereference(this.componentSchema);
sample = SchemaSampler.instantiate(this.componentSchema);
}
2015-10-21 17:24:04 +03:00
this.data.sample = sample;
}
}