chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
import * as sdk from '@botpress/sdk'
|
||||
import deletable from './bp_modules/deletable'
|
||||
import listable from './bp_modules/listable'
|
||||
|
||||
const itemSchema = listable.definition.entities.item.schema
|
||||
|
||||
export default new sdk.PluginDefinition({
|
||||
name: 'synchronizer',
|
||||
version: '1.0.0',
|
||||
configuration: {
|
||||
schema: sdk.z.object({
|
||||
tableName: sdk.z.string().title('Table Name').describe('The name of the table to store items'),
|
||||
}),
|
||||
},
|
||||
actions: {
|
||||
synchronize: {
|
||||
title: 'Synchronize',
|
||||
description: 'Manually synchronize a page of items without waiting for the cron job',
|
||||
input: { schema: sdk.z.object({}) },
|
||||
output: { schema: sdk.z.object({ itemsLeft: sdk.z.boolean() }) },
|
||||
},
|
||||
clear: {
|
||||
title: 'Clear',
|
||||
description: 'Clear the table',
|
||||
input: { schema: sdk.z.object({}) },
|
||||
output: { schema: sdk.z.object({}) },
|
||||
},
|
||||
},
|
||||
states: {
|
||||
table: {
|
||||
type: 'bot',
|
||||
schema: sdk.z.object({
|
||||
tableCreated: sdk.z.boolean().optional().title('Table Created').describe('Whether the table has been created'),
|
||||
}),
|
||||
},
|
||||
job: {
|
||||
type: 'bot',
|
||||
schema: sdk.z.object({
|
||||
nextToken: sdk.z
|
||||
.string()
|
||||
.optional()
|
||||
.title('Next Token')
|
||||
.describe('The token to use to get the next page of items'),
|
||||
}),
|
||||
},
|
||||
},
|
||||
events: {
|
||||
listItems: {
|
||||
schema: sdk.z.object({}),
|
||||
},
|
||||
rowInserted: {
|
||||
schema: sdk.z.object({ row: itemSchema }),
|
||||
},
|
||||
rowUpdated: {
|
||||
schema: sdk.z.object({ row: itemSchema }),
|
||||
},
|
||||
rowDeleted: {
|
||||
schema: sdk.z.object({ row: itemSchema.pick({ id: true }) }),
|
||||
},
|
||||
},
|
||||
recurringEvents: {
|
||||
runListItem: {
|
||||
type: 'listItems',
|
||||
payload: {},
|
||||
schedule: {
|
||||
cron: '* * * * *', // every minute
|
||||
},
|
||||
},
|
||||
},
|
||||
interfaces: {
|
||||
listable: sdk.version.allWithinMajorOf(listable),
|
||||
deletable: sdk.version.allWithinMajorOf(deletable),
|
||||
},
|
||||
})
|
||||
Reference in New Issue
Block a user