79 lines
1.3 KiB
TypeScript
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,
|
|
},
|
|
}
|