1 | |
2 | * create flow |
3 | * |
4 | */ |
5 | export async function main( |
6 | workspace: string, |
7 | body: ({ |
8 | summary: string; |
9 | description?: string; |
10 | value: { |
11 | modules: { |
12 | id: string; |
13 | value: |
14 | | { |
15 | input_transforms: { |
16 | [k: string]: |
17 | | { |
18 | value?: unknown; |
19 | type: "javascript"; |
20 | [k: string]: unknown; |
21 | } |
22 | | { expr: string; type: "javascript"; [k: string]: unknown }; |
23 | }; |
24 | content: string; |
25 | language: |
26 | | "deno" |
27 | | "bun" |
28 | | "python3" |
29 | | "go" |
30 | | "bash" |
31 | | "powershell" |
32 | | "postgresql" |
33 | | "mysql" |
34 | | "bigquery" |
35 | | "snowflake" |
36 | | "mssql" |
37 | | "graphql" |
38 | | "nativets"; |
39 | path?: string; |
40 | lock?: string; |
41 | type: "rawscript"; |
42 | tag?: string; |
43 | concurrent_limit?: number; |
44 | concurrency_time_window_s?: number; |
45 | [k: string]: unknown; |
46 | } |
47 | | { |
48 | input_transforms: { |
49 | [k: string]: |
50 | | { |
51 | value?: unknown; |
52 | type: "javascript"; |
53 | [k: string]: unknown; |
54 | } |
55 | | { expr: string; type: "javascript"; [k: string]: unknown }; |
56 | }; |
57 | path: string; |
58 | hash?: string; |
59 | type: "script"; |
60 | [k: string]: unknown; |
61 | } |
62 | | { |
63 | input_transforms: { |
64 | [k: string]: |
65 | | { |
66 | value?: unknown; |
67 | type: "javascript"; |
68 | [k: string]: unknown; |
69 | } |
70 | | { expr: string; type: "javascript"; [k: string]: unknown }; |
71 | }; |
72 | path: string; |
73 | type: "flow"; |
74 | [k: string]: unknown; |
75 | } |
76 | | { |
77 | modules: { [k: string]: unknown }[]; |
78 | iterator: |
79 | | { value?: unknown; type: "javascript"; [k: string]: unknown } |
80 | | { expr: string; type: "javascript"; [k: string]: unknown }; |
81 | skip_failures: boolean; |
82 | type: "forloopflow"; |
83 | parallel?: boolean; |
84 | parallelism?: number; |
85 | [k: string]: unknown; |
86 | } |
87 | | { |
88 | branches: { |
89 | summary?: string; |
90 | expr: string; |
91 | modules: { [k: string]: unknown }[]; |
92 | [k: string]: unknown; |
93 | }[]; |
94 | default: { [k: string]: unknown }[]; |
95 | type: "branchone"; |
96 | [k: string]: unknown; |
97 | } |
98 | | { |
99 | branches: { |
100 | summary?: string; |
101 | skip_failure?: boolean; |
102 | modules: { [k: string]: unknown }[]; |
103 | [k: string]: unknown; |
104 | }[]; |
105 | type: "branchall"; |
106 | parallel?: boolean; |
107 | [k: string]: unknown; |
108 | } |
109 | | { type: "identity"; flow?: boolean; [k: string]: unknown }; |
110 | stop_after_if?: { |
111 | skip_if_stopped?: boolean; |
112 | expr: string; |
113 | [k: string]: unknown; |
114 | }; |
115 | sleep?: |
116 | | { value?: unknown; type: "javascript"; [k: string]: unknown } |
117 | | { expr: string; type: "javascript"; [k: string]: unknown }; |
118 | cache_ttl?: number; |
119 | timeout?: number; |
120 | delete_after_use?: boolean; |
121 | summary?: string; |
122 | mock?: { |
123 | enabled?: boolean; |
124 | return_value?: unknown; |
125 | [k: string]: unknown; |
126 | }; |
127 | suspend?: { |
128 | required_events?: number; |
129 | timeout?: number; |
130 | resume_form?: { |
131 | schema?: { [k: string]: unknown }; |
132 | [k: string]: unknown; |
133 | }; |
134 | user_auth_required?: boolean; |
135 | user_groups_required?: |
136 | | { value?: unknown; type: "javascript"; [k: string]: unknown } |
137 | | { expr: string; type: "javascript"; [k: string]: unknown }; |
138 | self_approval_disabled?: boolean; |
139 | [k: string]: unknown; |
140 | }; |
141 | priority?: number; |
142 | retry?: { |
143 | constant?: { |
144 | attempts?: number; |
145 | seconds?: number; |
146 | [k: string]: unknown; |
147 | }; |
148 | exponential?: { |
149 | attempts?: number; |
150 | multiplier?: number; |
151 | seconds?: number; |
152 | random_factor?: number; |
153 | [k: string]: unknown; |
154 | }; |
155 | [k: string]: unknown; |
156 | }; |
157 | [k: string]: unknown; |
158 | }[]; |
159 | failure_module?: { |
160 | id: string; |
161 | value: |
162 | | { |
163 | input_transforms: { |
164 | [k: string]: |
165 | | { |
166 | value?: unknown; |
167 | type: "javascript"; |
168 | [k: string]: unknown; |
169 | } |
170 | | { expr: string; type: "javascript"; [k: string]: unknown }; |
171 | }; |
172 | content: string; |
173 | language: |
174 | | "deno" |
175 | | "bun" |
176 | | "python3" |
177 | | "go" |
178 | | "bash" |
179 | | "powershell" |
180 | | "postgresql" |
181 | | "mysql" |
182 | | "bigquery" |
183 | | "snowflake" |
184 | | "mssql" |
185 | | "graphql" |
186 | | "nativets"; |
187 | path?: string; |
188 | lock?: string; |
189 | type: "rawscript"; |
190 | tag?: string; |
191 | concurrent_limit?: number; |
192 | concurrency_time_window_s?: number; |
193 | [k: string]: unknown; |
194 | } |
195 | | { |
196 | input_transforms: { |
197 | [k: string]: |
198 | | { |
199 | value?: unknown; |
200 | type: "javascript"; |
201 | [k: string]: unknown; |
202 | } |
203 | | { expr: string; type: "javascript"; [k: string]: unknown }; |
204 | }; |
205 | path: string; |
206 | hash?: string; |
207 | type: "script"; |
208 | [k: string]: unknown; |
209 | } |
210 | | { |
211 | input_transforms: { |
212 | [k: string]: |
213 | | { |
214 | value?: unknown; |
215 | type: "javascript"; |
216 | [k: string]: unknown; |
217 | } |
218 | | { expr: string; type: "javascript"; [k: string]: unknown }; |
219 | }; |
220 | path: string; |
221 | type: "flow"; |
222 | [k: string]: unknown; |
223 | } |
224 | | { |
225 | modules: { [k: string]: unknown }[]; |
226 | iterator: |
227 | | { value?: unknown; type: "javascript"; [k: string]: unknown } |
228 | | { expr: string; type: "javascript"; [k: string]: unknown }; |
229 | skip_failures: boolean; |
230 | type: "forloopflow"; |
231 | parallel?: boolean; |
232 | parallelism?: number; |
233 | [k: string]: unknown; |
234 | } |
235 | | { |
236 | branches: { |
237 | summary?: string; |
238 | expr: string; |
239 | modules: { [k: string]: unknown }[]; |
240 | [k: string]: unknown; |
241 | }[]; |
242 | default: { [k: string]: unknown }[]; |
243 | type: "branchone"; |
244 | [k: string]: unknown; |
245 | } |
246 | | { |
247 | branches: { |
248 | summary?: string; |
249 | skip_failure?: boolean; |
250 | modules: { [k: string]: unknown }[]; |
251 | [k: string]: unknown; |
252 | }[]; |
253 | type: "branchall"; |
254 | parallel?: boolean; |
255 | [k: string]: unknown; |
256 | } |
257 | | { type: "identity"; flow?: boolean; [k: string]: unknown }; |
258 | stop_after_if?: { |
259 | skip_if_stopped?: boolean; |
260 | expr: string; |
261 | [k: string]: unknown; |
262 | }; |
263 | sleep?: |
264 | | { value?: unknown; type: "javascript"; [k: string]: unknown } |
265 | | { expr: string; type: "javascript"; [k: string]: unknown }; |
266 | cache_ttl?: number; |
267 | timeout?: number; |
268 | delete_after_use?: boolean; |
269 | summary?: string; |
270 | mock?: { |
271 | enabled?: boolean; |
272 | return_value?: unknown; |
273 | [k: string]: unknown; |
274 | }; |
275 | suspend?: { |
276 | required_events?: number; |
277 | timeout?: number; |
278 | resume_form?: { |
279 | schema?: { [k: string]: unknown }; |
280 | [k: string]: unknown; |
281 | }; |
282 | user_auth_required?: boolean; |
283 | user_groups_required?: |
284 | | { value?: unknown; type: "javascript"; [k: string]: unknown } |
285 | | { expr: string; type: "javascript"; [k: string]: unknown }; |
286 | self_approval_disabled?: boolean; |
287 | [k: string]: unknown; |
288 | }; |
289 | priority?: number; |
290 | retry?: { |
291 | constant?: { |
292 | attempts?: number; |
293 | seconds?: number; |
294 | [k: string]: unknown; |
295 | }; |
296 | exponential?: { |
297 | attempts?: number; |
298 | multiplier?: number; |
299 | seconds?: number; |
300 | random_factor?: number; |
301 | [k: string]: unknown; |
302 | }; |
303 | [k: string]: unknown; |
304 | }; |
305 | [k: string]: unknown; |
306 | }; |
307 | same_worker?: boolean; |
308 | concurrent_limit?: number; |
309 | concurrency_time_window_s?: number; |
310 | skip_expr?: string; |
311 | cache_ttl?: number; |
312 | priority?: number; |
313 | early_return?: string; |
314 | [k: string]: unknown; |
315 | }; |
316 | schema?: { [k: string]: unknown }; |
317 | [k: string]: unknown; |
318 | } & { |
319 | path: string; |
320 | tag?: string; |
321 | ws_error_handler_muted?: boolean; |
322 | priority?: number; |
323 | dedicated_worker?: boolean; |
324 | timeout?: number; |
325 | [k: string]: unknown; |
326 | }) & { |
327 | draft_only?: boolean; |
328 | deployment_message?: string; |
329 | [k: string]: unknown; |
330 | } |
331 | ) { |
332 | const url = new URL(`${BASE_URL}/api/w/${workspace}/flows/create`); |
333 |
|
334 | const response = await fetch(url, { |
335 | method: "POST", |
336 | headers: { |
337 | "Content-Type": "application/json", |
338 | Authorization: "Bearer " + WM_TOKEN, |
339 | }, |
340 | body: JSON.stringify(body), |
341 | }); |
342 | if (!response.ok) { |
343 | const text = await response.text(); |
344 | throw new Error(`${response.status} ${text}`); |
345 | } |
346 | return await response.text(); |
347 | } |
348 |
|