1.0.0-devel-1715300870935 • Published 3 days ago

@faasjs/workflow-step v1.0.0-devel-1715300870935

Weekly downloads
-
License
MIT
Repository
github
Last release
3 days ago

@faasjs/workflow-step

License: MIT NPM Version

The Step and StepRecord component in FaasJS/Workflow.

Examples

// newProduct.func.ts
import { useStepRecordFunc } from '@faasjs/workflow-step'

declare module '@faasjs/workflow-types/steps' {
  interface Steps {
    newProduct: {
      data: {
        productName: string
        productPrice: number
        productQuantity: number
      }
      done: {
        message: string
      }
    }
  }
}

export default useStepRecordFunc({
  stepId: 'newProduct',
  async done ({ createProduct, params }) {
    if(!params.productName) throw new Error('productName is required')
    if(!params.productPrice) throw new Error('productPrice is required')
    if(!params.productQuantity) throw new Error('productQuantity is required')

    await createProduct(params)

    return {
      message: 'Product created'
    }
  }
})

Step's Status

draft

When you initiate a new step, its status is draft. You can only modify the data of step in this status.

hanging

Hanging means that the step is waiting for some reason to complete.

Deference between hanging and draft is that hanging means user knows the step is waiting for something, but draft means user doesn't know the step is waiting for something.

locked

Locked means that the step is waiting for some reason to complete, and the step is locked, which means that the step cannot be modified.

If you want to modify the step, you need to unlock it first.

done

Done means the step is completed. You can only read the data of step in this status.

rejected

Rejected means that the step is rejected. You can only read the data of step in this status.

canceled

Canceled means that the step is canceled.