1- import { json , type RequestHandler } from '@sveltejs/kit' ;
1+ import { type RequestHandler } from '@sveltejs/kit' ;
22import { getRun , start } from 'workflow/api' ;
33import { hydrateWorkflowArguments } from 'workflow/internal/serialization' ;
4- import * as calcWorkflow from '../../../../workflows/0_calc' ;
5- import * as batchingWorkflow from '../../../../workflows/6_batching' ;
6- import * as duplicateE2e from '../../../../workflows/98_duplicate_case' ;
7- import * as e2eWorkflows from '../../../../workflows/99_e2e' ;
4+ import { allWorkflows } from '$lib/_workflows.js' ;
85import {
96 WorkflowRunFailedError ,
107 WorkflowRunNotCompletedError ,
118} from 'workflow/internal/errors' ;
129
13- const WORKFLOW_MODULES = {
14- 'workflows/0_calc.ts' : calcWorkflow ,
15- 'workflows/6_batching.ts' : batchingWorkflow ,
16- 'workflows/98_duplicate_case.ts' : duplicateE2e ,
17- 'workflows/99_e2e.ts' : e2eWorkflows ,
18- } as const ;
19-
2010export const POST : RequestHandler = async ( { request } ) => {
2111 const url = new URL ( request . url ) ;
2212 const workflowFile =
2313 url . searchParams . get ( 'workflowFile' ) || 'workflows/99_e2e.ts' ;
24- const workflowFn = url . searchParams . get ( 'workflowFn' ) || 'simple' ;
25-
26- console . log ( 'calling workflow' , { workflowFile , workflowFn } ) ;
27-
28- const workflows =
29- WORKFLOW_MODULES [ workflowFile as keyof typeof WORKFLOW_MODULES ] ;
14+ if ( ! workflowFile ) {
15+ return new Response ( 'No workflowFile query parameter provided' , {
16+ status : 400 ,
17+ } ) ;
18+ }
19+ const workflows = allWorkflows [ workflowFile as keyof typeof allWorkflows ] ;
3020 if ( ! workflows ) {
31- return json (
32- { error : `Workflow file "${ workflowFile } " not found` } ,
33- { status : 404 }
34- ) ;
21+ return new Response ( `Workflow file "${ workflowFile } " not found` , {
22+ status : 400 ,
23+ } ) ;
3524 }
3625
26+ const workflowFn = url . searchParams . get ( 'workflowFn' ) || 'simple' ;
27+ if ( ! workflowFn ) {
28+ return new Response ( 'No workflow query parameter provided' , {
29+ status : 400 ,
30+ } ) ;
31+ }
3732 const workflow = workflows [ workflowFn as keyof typeof workflows ] ;
3833 if ( ! workflow ) {
39- return json (
40- {
41- error : `Workflow "${ workflowFn } " not found in "${ workflowFile } "` ,
42- } ,
43- { status : 404 }
44- ) ;
34+ return new Response ( `Workflow "${ workflowFn } " not found` , { status : 400 } ) ;
4535 }
4636
4737 let args : any [ ] = [ ] ;
@@ -62,14 +52,12 @@ export const POST: RequestHandler = async ({ request }) => {
6252 args = [ 42 ] ;
6353 }
6454 }
65- console . log (
66- `Starting "${ workflowFile } /${ workflowFn } " workflow with args: ${ args } `
67- ) ;
55+ console . log ( `Starting "${ workflowFn } " workflow with args: ${ args } ` ) ;
6856
6957 try {
70- const run = await start ( workflow as any , args ) ;
58+ const run = await start ( workflow as any , args as any ) ;
7159 console . log ( 'Run:' , run ) ;
72- return json ( run ) ;
60+ return Response . json ( run ) ;
7361 } catch ( err ) {
7462 console . error ( `Failed to start!!` , err ) ;
7563 throw err ;
@@ -117,11 +105,11 @@ export const GET: RequestHandler = async ({ request }) => {
117105 'Content-Type' : 'application/octet-stream' ,
118106 } ,
119107 } )
120- : json ( returnValue ) ;
108+ : Response . json ( returnValue ) ;
121109 } catch ( error ) {
122110 if ( error instanceof Error ) {
123111 if ( WorkflowRunNotCompletedError . is ( error ) ) {
124- return json (
112+ return Response . json (
125113 {
126114 ...error ,
127115 name : error . name ,
@@ -133,7 +121,7 @@ export const GET: RequestHandler = async ({ request }) => {
133121
134122 if ( WorkflowRunFailedError . is ( error ) ) {
135123 const cause = error . cause ;
136- return json (
124+ return Response . json (
137125 {
138126 ...error ,
139127 name : error . name ,
@@ -153,7 +141,7 @@ export const GET: RequestHandler = async ({ request }) => {
153141 'Unexpected error while getting workflow return value:' ,
154142 error
155143 ) ;
156- return json (
144+ return Response . json (
157145 {
158146 error : 'Internal server error' ,
159147 } ,
0 commit comments