feat: introduce trigger functionality (#27644)
Signed-off-by: lyzno1 <yuanyouhuilyz@gmail.com> Co-authored-by: Stream <Stream_2@qq.com> Co-authored-by: lyzno1 <92089059+lyzno1@users.noreply.github.com> Co-authored-by: zhsama <torvalds@linux.do> Co-authored-by: Harry <xh001x@hotmail.com> Co-authored-by: lyzno1 <yuanyouhuilyz@gmail.com> Co-authored-by: yessenia <yessenia.contact@gmail.com> Co-authored-by: hjlarry <hjlarry@163.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: WTW0313 <twwu@dify.ai> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
52
web/app/components/workflow/utils/trigger.ts
Normal file
52
web/app/components/workflow/utils/trigger.ts
Normal file
@@ -0,0 +1,52 @@
|
||||
import type { TriggerWithProvider } from '@/app/components/workflow/block-selector/types'
|
||||
import type { PluginTriggerNodeType } from '@/app/components/workflow/nodes/trigger-plugin/types'
|
||||
|
||||
export type TriggerCheckParams = {
|
||||
triggerInputsSchema: Array<{
|
||||
variable: string
|
||||
label: string
|
||||
required?: boolean
|
||||
}>
|
||||
isReadyForCheckValid: boolean
|
||||
}
|
||||
|
||||
export const getTriggerCheckParams = (
|
||||
triggerData: PluginTriggerNodeType,
|
||||
triggerProviders: TriggerWithProvider[] | undefined,
|
||||
language: string,
|
||||
): TriggerCheckParams => {
|
||||
if (!triggerProviders) {
|
||||
return {
|
||||
triggerInputsSchema: [],
|
||||
isReadyForCheckValid: false,
|
||||
}
|
||||
}
|
||||
|
||||
const {
|
||||
provider_id,
|
||||
provider_name,
|
||||
event_name,
|
||||
} = triggerData
|
||||
|
||||
const provider = triggerProviders.find(item =>
|
||||
item.name === provider_name
|
||||
|| item.id === provider_id
|
||||
|| (provider_id && item.plugin_id === provider_id),
|
||||
)
|
||||
|
||||
const currentEvent = provider?.events.find(event => event.name === event_name)
|
||||
|
||||
const triggerInputsSchema = (currentEvent?.parameters || []).map((parameter) => {
|
||||
const label = parameter.label?.[language] || parameter.label?.en_US || parameter.name
|
||||
return {
|
||||
variable: parameter.name,
|
||||
label,
|
||||
required: parameter.required,
|
||||
}
|
||||
})
|
||||
|
||||
return {
|
||||
triggerInputsSchema,
|
||||
isReadyForCheckValid: true,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user