0

Run Flow by Path and Wait for Result

by
Published today

Run a flow and return its result. Holds one HTTP request open, so for runs longer than the instance's request timeout use Run Flow by Path followed by Wait for Job.

Script windmill Verified

The script

Submitted by hugo989 Typescript (fetch-only)
Verified 4 hours ago
1
//native
2

3
import * as wmill from "windmill-client"
4

5
// windmill-client errors only carry the status text: throw the response body, which says why
6
wmill.OpenAPI.interceptors.response.use(async (response) => {
7
  if (!response.ok) {
8
    throw new Error(`${response.status} ${await response.text()}`)
9
  }
10
  return response
11
})
12

13
export type DynSelect_path = string
14

15
export async function path() {
16
  const paths = await wmill.FlowService.listFlowPaths({
17
    workspace: wmill.getWorkspace(),
18
  })
19
  return paths.map((p) => ({ value: p, label: p }))
20
}
21

22
/**
23
 * Run Flow by Path and Wait for Result
24
 * Run a flow and return its result. Holds one HTTP request open, so for runs longer than the instance's request timeout use Run Flow by Path followed by Wait for Job.
25
 */
26
export async function main(
27
  path: DynSelect_path,
28
  args: { [key: string]: any } | undefined
29
) {
30
  return await wmill.JobService.runWaitResultFlowByPath({
31
    workspace: wmill.getWorkspace(),
32
    path,
33
    requestBody: args ?? {},
34
  })
35
}
36