@@ -20,56 +20,60 @@ import {
2020import type { Task , TaskResult } from "../../src/open-api" ;
2121
2222// ── Workers ─────────────────────────────────────────────────────────
23- @worker ( { taskDefName : "sw_validate" , registerTaskDef : true } )
24- async function validateOrder ( task : Task ) : Promise < TaskResult > {
25- const orderId = task . inputData ?. orderId as string ;
26- return {
27- status : "COMPLETED" ,
28- outputData : { orderId, valid : true , validatedAt : new Date ( ) . toISOString ( ) } ,
29- } ;
30- }
31-
32- @worker ( { taskDefName : "sw_charge" , registerTaskDef : true } )
33- async function chargePayment ( task : Task ) : Promise < TaskResult > {
34- const orderId = task . inputData ?. orderId as string ;
35- const amount = ( task . inputData ?. amount as number ) ?? 0 ;
36- return {
37- status : "COMPLETED" ,
38- outputData : {
39- orderId,
40- amount,
41- charged : true ,
42- transactionId : `TXN-${ Date . now ( ) } ` ,
43- } ,
44- } ;
45- }
46-
47- @worker ( { taskDefName : "sw_ship" , registerTaskDef : true } )
48- async function shipOrder ( task : Task ) : Promise < TaskResult > {
49- const orderId = task . inputData ?. orderId as string ;
50- return {
51- status : "COMPLETED" ,
52- outputData : {
53- orderId,
54- shipped : true ,
55- trackingNumber : `TRACK-${ Date . now ( ) } ` ,
56- } ,
57- } ;
58- }
59-
60- @worker ( { taskDefName : "sw_notify" , registerTaskDef : true } )
61- async function notifyCustomer ( task : Task ) : Promise < TaskResult > {
62- const orderId = task . inputData ?. orderId as string ;
63- const tracking = task . inputData ?. trackingNumber as string ;
64- return {
65- status : "COMPLETED" ,
66- outputData : {
67- orderId,
68- notified : true ,
69- message : `Order ${ orderId } shipped. Tracking: ${ tracking } ` ,
70- } ,
71- } ;
72- }
23+ const validateOrder = worker ( { taskDefName : "sw_validate" , registerTaskDef : true } ) (
24+ async ( task : Task ) => {
25+ const orderId = task . inputData ?. orderId as string ;
26+ return {
27+ status : "COMPLETED" ,
28+ outputData : { orderId, valid : true , validatedAt : new Date ( ) . toISOString ( ) } ,
29+ } ;
30+ }
31+ ) ;
32+
33+ const chargePayment = worker ( { taskDefName : "sw_charge" , registerTaskDef : true } ) (
34+ async ( task : Task ) => {
35+ const orderId = task . inputData ?. orderId as string ;
36+ const amount = ( task . inputData ?. amount as number ) ?? 0 ;
37+ return {
38+ status : "COMPLETED" ,
39+ outputData : {
40+ orderId,
41+ amount,
42+ charged : true ,
43+ transactionId : `TXN-${ Date . now ( ) } ` ,
44+ } ,
45+ } ;
46+ }
47+ ) ;
48+
49+ const shipOrder = worker ( { taskDefName : "sw_ship" , registerTaskDef : true } ) (
50+ async ( task : Task ) => {
51+ const orderId = task . inputData ?. orderId as string ;
52+ return {
53+ status : "COMPLETED" ,
54+ outputData : {
55+ orderId,
56+ shipped : true ,
57+ trackingNumber : `TRACK-${ Date . now ( ) } ` ,
58+ } ,
59+ } ;
60+ }
61+ ) ;
62+
63+ const notifyCustomer = worker ( { taskDefName : "sw_notify" , registerTaskDef : true } ) (
64+ async ( task : Task ) => {
65+ const orderId = task . inputData ?. orderId as string ;
66+ const tracking = task . inputData ?. trackingNumber as string ;
67+ return {
68+ status : "COMPLETED" ,
69+ outputData : {
70+ orderId,
71+ notified : true ,
72+ message : `Order ${ orderId } shipped. Tracking: ${ tracking } ` ,
73+ } ,
74+ } ;
75+ }
76+ ) ;
7377
7478async function main ( ) {
7579 const clients = await OrkesClients . from ( ) ;
0 commit comments