budibase/packages/server/src/definitions/common.ts

79 lines
1.3 KiB
TypeScript

interface Base {
_id?: string,
_rev?: string,
}
export interface TableSchema {
[key: string]: {
// TODO: replace with field types enum when done
type: string,
fieldName?: string,
name: string,
constraints?: {
type?: string,
email?: boolean,
inclusion?: string[],
length?: {
minimum?: string | number,
maximum?: string | number,
},
presence?: boolean,
},
},
}
export interface Table extends Base {
type?: string,
views?: {},
name?: string,
primary?: string[],
schema: TableSchema,
primaryDisplay?: string,
sourceId?: string,
}
export interface Row extends Base {
type?: string,
tableId: string,
[key: string]: any,
}
interface JsonSchemaField {
properties: {
[key: string]: {
type: string,
title: string,
customType?: string,
},
},
required?: string[],
}
export interface AutomationStep {
description: string,
event?: string,
icon: string,
id: string,
inputs: {
[key: string]: any,
},
name: string,
schema: {
inputs: JsonSchemaField,
outputs: JsonSchemaField,
},
stepId: string,
tagline: string,
type: string,
}
export interface Automation extends Base {
name: string,
type: string,
appId?: string,
definition: {
steps: AutomationStep[],
trigger?: AutomationStep,
},
}