mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-12 11:20:11 +00:00
352 lines
7.0 KiB
YAML
352 lines
7.0 KiB
YAML
$id: "@ali/low-code-component-protocol-schema"
|
||
description: json schema for low code component protocol
|
||
allOf:
|
||
- $ref: "#/definitions/BasicSection"
|
||
- $ref: "#/definitions/PropsSection"
|
||
- $ref: "#/definitions/ConfigureSection"
|
||
definitions:
|
||
BasicSection:
|
||
type: object
|
||
properties:
|
||
componentName:
|
||
type: string
|
||
title:
|
||
type: string
|
||
description:
|
||
type: string
|
||
docUrl:
|
||
type: string
|
||
screenshot:
|
||
type: string
|
||
icon:
|
||
type: string
|
||
tags:
|
||
type: array
|
||
items:
|
||
type: string
|
||
devMode:
|
||
enum:
|
||
- proCode
|
||
- lowCode
|
||
npm:
|
||
$ref: "#/definitions/Npm"
|
||
required:
|
||
- componentName
|
||
- title
|
||
- npm
|
||
PropsSection:
|
||
type: object
|
||
required:
|
||
- props
|
||
properties:
|
||
props:
|
||
type: array
|
||
items:
|
||
properties:
|
||
name:
|
||
type: string
|
||
propType:
|
||
$ref: "#/definitions/PropType"
|
||
description:
|
||
type: string
|
||
defaultValue: {}
|
||
required:
|
||
- name
|
||
- propType
|
||
ConfigureSection:
|
||
type: object
|
||
properties:
|
||
configure:
|
||
type: object
|
||
properties:
|
||
props:
|
||
type: array
|
||
items:
|
||
$ref: "#/definitions/ConfigureProp"
|
||
styles:
|
||
type: object
|
||
properties: {}
|
||
events:
|
||
type: object
|
||
properties: {}
|
||
component:
|
||
$ref: "#/definitions/ConfigureComponent"
|
||
Npm:
|
||
type: object
|
||
properties:
|
||
package:
|
||
type: string
|
||
exportName:
|
||
type: string
|
||
subName:
|
||
type: string
|
||
main:
|
||
type: string
|
||
destructuring:
|
||
type: boolean
|
||
version:
|
||
type: string
|
||
required:
|
||
- package
|
||
- exportName
|
||
- subName
|
||
- main
|
||
- destructuring
|
||
- version
|
||
PropType:
|
||
oneOf:
|
||
- $ref: "#/definitions/BasicType"
|
||
- $ref: "#/definitions/RequiredType"
|
||
- $ref: "#/definitions/ComplexType"
|
||
BasicType:
|
||
type: string
|
||
enum:
|
||
- array
|
||
- bool
|
||
- func
|
||
- number
|
||
- object
|
||
- string
|
||
- node
|
||
- element
|
||
- any
|
||
RequiredType:
|
||
type: object
|
||
properties:
|
||
type:
|
||
$ref: "#/definitions/BasicType"
|
||
isRequired:
|
||
type: boolean
|
||
additionalProperties: false
|
||
required:
|
||
- type
|
||
ComplexType:
|
||
oneOf:
|
||
- $ref: "#/definitions/OneOf"
|
||
- $ref: "#/definitions/OneOfType"
|
||
- $ref: "#/definitions/ArrayOf"
|
||
- $ref: "#/definitions/ObjectOf"
|
||
- $ref: "#/definitions/Shape"
|
||
- $ref: "#/definitions/Exact"
|
||
OneOf:
|
||
type: object
|
||
required:
|
||
- type
|
||
- value
|
||
properties:
|
||
type:
|
||
type: string
|
||
enum:
|
||
- oneOf
|
||
value:
|
||
type: array
|
||
items:
|
||
oneOf:
|
||
- type: string
|
||
- type: number
|
||
- type: boolean
|
||
isRequired:
|
||
type: boolean
|
||
OneOfType:
|
||
type: object
|
||
required:
|
||
- type
|
||
- value
|
||
properties:
|
||
type:
|
||
type: string
|
||
enum:
|
||
- oneOfType
|
||
value:
|
||
type: array
|
||
items:
|
||
$ref: "#/definitions/PropType"
|
||
isRequired:
|
||
type: boolean
|
||
ArrayOf:
|
||
type: object
|
||
required:
|
||
- type
|
||
- value
|
||
properties:
|
||
type:
|
||
type: string
|
||
enum:
|
||
- arrayOf
|
||
value:
|
||
$ref: "#/definitions/PropType"
|
||
isRequired:
|
||
type: boolean
|
||
ObjectOf:
|
||
type: object
|
||
required:
|
||
- type
|
||
- value
|
||
properties:
|
||
type:
|
||
type: string
|
||
enum:
|
||
- objectOf
|
||
value:
|
||
$ref: "#/definitions/PropType"
|
||
isRequired:
|
||
type: boolean
|
||
Shape:
|
||
type: object
|
||
required:
|
||
- type
|
||
- value
|
||
properties:
|
||
type:
|
||
type: string
|
||
enum:
|
||
- shape
|
||
value:
|
||
type: array
|
||
items:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
propType:
|
||
$ref: "#/definitions/PropType"
|
||
additionalProperties: false
|
||
isRequired:
|
||
type: boolean
|
||
ShapeItem:
|
||
type: object
|
||
required:
|
||
- name
|
||
- propType
|
||
properties:
|
||
name:
|
||
type: string
|
||
propType:
|
||
$ref: "#/definitions/PropType"
|
||
isRequired:
|
||
type: boolean
|
||
additionalProperties: false
|
||
Exact:
|
||
type: object
|
||
required:
|
||
- type
|
||
- value
|
||
properties:
|
||
type:
|
||
type: string
|
||
enum:
|
||
- exact
|
||
value:
|
||
type: array
|
||
items:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
propType:
|
||
$ref: "#/definitions/PropType"
|
||
additionalProperties: false
|
||
isRequired:
|
||
type: boolean
|
||
ConfigureProp:
|
||
type: object
|
||
allOf:
|
||
- type: object
|
||
properties:
|
||
title:
|
||
type: string
|
||
extraProps:
|
||
type: object
|
||
properties: {}
|
||
- oneOf:
|
||
- $ref: "#/definitions/ConfigureFieldProp"
|
||
- $ref: "#/definitions/ConfigureGroupProp"
|
||
ConfigureFieldProp:
|
||
type: object
|
||
required:
|
||
- type
|
||
properties:
|
||
type:
|
||
type: string
|
||
enum:
|
||
- field
|
||
name:
|
||
type: string
|
||
setter:
|
||
$ref: "#/definitions/ConfigureFieldSetter"
|
||
ConfigureFieldSetter:
|
||
type: object
|
||
required:
|
||
- componentName
|
||
properties:
|
||
componentName:
|
||
type: string
|
||
enum:
|
||
- List
|
||
- Object
|
||
- Function
|
||
- Node
|
||
- Mixin
|
||
- Expression
|
||
- Switch
|
||
- Number
|
||
- Input
|
||
- TextArea
|
||
- Date
|
||
- DateYear
|
||
- DateMonth
|
||
- DateRange
|
||
- ColorPicker
|
||
- CodeEditor
|
||
- Select
|
||
- RadioGroup
|
||
props:
|
||
type: object
|
||
properties: {} # 暂未校验每个控件的props,待控件入料后获取真实属性
|
||
ConfigureGroupProp:
|
||
type: object
|
||
required:
|
||
- type
|
||
- items
|
||
properties:
|
||
type:
|
||
type: string
|
||
enum:
|
||
- group
|
||
items:
|
||
type: array
|
||
items:
|
||
$ref: "#/definitions/ConfigureProp"
|
||
ConfigureComponent:
|
||
type: object
|
||
properties:
|
||
isContainer:
|
||
type: boolean
|
||
isModal:
|
||
type: boolean
|
||
descriptor:
|
||
type: string
|
||
nestingRule:
|
||
type: object
|
||
properties:
|
||
childWhitelist:
|
||
type: array
|
||
items:
|
||
type: string
|
||
parentWhitelist:
|
||
type: array
|
||
items:
|
||
type: string
|
||
descendantBlacklist:
|
||
type: array
|
||
items:
|
||
type: string
|
||
ancestorWhitelist:
|
||
type: array
|
||
items:
|
||
type: string
|
||
isNullNode:
|
||
type: boolean
|
||
isLayout:
|
||
type: boolean
|