The Step
and StepRecord
component in FaasJS/Workflow.
// 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'
}
}
})
When you initiate a new step, its status is draft
. You can only modify the data of step in this status.
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 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 means the step is completed. You can only read the data of step in this status.
Rejected means that the step is rejected. You can only read the data of step in this status.
Canceled means that the step is canceled.