const data = {
"methods": [
{
"name": "deleteProduct",
"description": "删除当前商品",
"params": [
{
"title": "param",
"type": {
"name": " @import('@jd/b2b-be-matchmaking-sdk/lib/vos/QuotationVo).QuotationVo "
},
"name": "data"
}
],
"tags": {
"access": [
{
"description": "public",
"title": "access"
}
],
"params": [
{
"title": "param",
"type": {
"name": " @import('@jd/b2b-be-matchmaking-sdk/lib/vos/QuotationVo).QuotationVo "
},
"name": "data"
}
]
}
}
],
"exportName": "default",
"displayName": "addProduct",
"description": "",
"tags": {},
"props": [
{
"name": "params",
"tags": {},
"description": "The size of the button allows only some values",
"values": [
"small",
"medium",
"large"
],
"type": {
"name": "QuotationVo"
},
"required": true
},
{
"name": "size",
"tags": {},
"type": {
"name": "string"
},
"defaultValue": {
"func": false,
"value": "'small'"
}
}
],
"events": [
{
"name": "success",
"description": "Success event.",
"type": {
"names": [
"undefined"
]
},
"properties": [
{
"type": {
"names": [
"string"
]
},
"name": "content",
"description": "content of the first prop passed to the event"
},
{
"type": {
"names": [
"object"
]
},
"name": "example",
"description": "the demo example"
}
]
}
],
"slots": [
{
"name": "footer",
"scoped": true,
"description": "渲染底部footer内容",
"bindings": [
{
"title": "binding",
"type": {
"name": "object"
},
"name": "data",
"description": "data of the menu item"
}
]
}
]
}
function transformData (data) {
return {
displayName: data.displayName,
description: data.description,
methods: transformMethods(data),
props: transformProps(data),
events: transformEvents(data)
}
}
function transformMethods(data) {
const methods = data.methods
if(methods) {
return methods.map(method => {
return {
name: method.name,
params: method.params.map(param => {
return {
name: param.name,
type: param.type.name
}
}),
description: method.description
}
})
}
return []
}
function transformProps(data) {
const props = data.props
if(props) {
return props.map(prop => {
return {
name: prop.name,
type: prop.type.name,
values: prop.values,
required: prop.required,
defaultValue: prop.defaultValue.value,
description: prop.description
}
})
}
return []
}
function transformEvents(data) {
const events = data.events
if(events) {
return events.map(event => {
return {
name: event.name,
description: event.description,
properties: event.properties.map(propertie => {
return {
name: propertie.name,
description: propertie.description,
type: propertie.type.name,
}
})
}
})
}
return []
}
function transformSlots(data) {
const slots = data.slots
if(slots) {
return slots.map(slot => {
return {
name: slot.name,
description: slot.description,
bindings: event.bindings.map(binding => {
return {
name: binding.name,
description: binding.description,
type: binding.type.name,
}
})
}
})
}
return []
}
transformData(data)