docs: document alternatives for conditional operators (#10588)
* docs: document alternatives for conditional operators * more operators * fix lint errors
This commit is contained in:
@@ -165,13 +165,13 @@ You can't use conditional operators in a workflow, such as `??` or `||`.
|
|||||||
|
|
||||||
<Note>
|
<Note>
|
||||||
|
|
||||||
Learn more about why you can't use if-conditions [in this chapter](../conditions/page.mdx#why-if-conditions-arent-allowed-in-workflows)
|
Learn more about why you can't use conditional operators [in this chapter](../conditions/page.mdx#why-if-conditions-arent-allowed-in-workflows)
|
||||||
|
|
||||||
</Note>
|
</Note>
|
||||||
|
|
||||||
Instead, use `transform` to store the desired value in a variable.
|
Instead, use `transform` to store the desired value in a variable.
|
||||||
|
|
||||||
For example:
|
### Logical Or (||) Alternative
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
// Don't
|
// Don't
|
||||||
@@ -197,6 +197,132 @@ const myWorkflow = createWorkflow(
|
|||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Nullish Coalescing (??) Alternative
|
||||||
|
|
||||||
|
```ts
|
||||||
|
// Don't
|
||||||
|
const myWorkflow = createWorkflow(
|
||||||
|
"hello-world",
|
||||||
|
function (input: WorkflowInput) {
|
||||||
|
const message = input.message ?? "Hello"
|
||||||
|
})
|
||||||
|
|
||||||
|
// Do
|
||||||
|
// other imports...
|
||||||
|
import { transform } from "@medusajs/framework/workflows-sdk"
|
||||||
|
|
||||||
|
const myWorkflow = createWorkflow(
|
||||||
|
"hello-world",
|
||||||
|
function (input: WorkflowInput) {
|
||||||
|
const message = transform(
|
||||||
|
{
|
||||||
|
input,
|
||||||
|
},
|
||||||
|
(data) => data.input.message ?? "hello"
|
||||||
|
)
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
### Double Not (!!) Alternative
|
||||||
|
|
||||||
|
```ts
|
||||||
|
// Don't
|
||||||
|
const myWorkflow = createWorkflow(
|
||||||
|
"hello-world",
|
||||||
|
function (input: WorkflowInput) {
|
||||||
|
step1({
|
||||||
|
isActive: !!input.is_active,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
// Do
|
||||||
|
// other imports...
|
||||||
|
import { transform } from "@medusajs/framework/workflows-sdk"
|
||||||
|
|
||||||
|
const myWorkflow = createWorkflow(
|
||||||
|
"hello-world",
|
||||||
|
function (input: WorkflowInput) {
|
||||||
|
const isActive = transform(
|
||||||
|
{
|
||||||
|
input,
|
||||||
|
},
|
||||||
|
(data) => !!data.input.is_active
|
||||||
|
)
|
||||||
|
|
||||||
|
step1({
|
||||||
|
isActive,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ternary Alternative
|
||||||
|
|
||||||
|
```ts
|
||||||
|
// Don't
|
||||||
|
const myWorkflow = createWorkflow(
|
||||||
|
"hello-world",
|
||||||
|
function (input: WorkflowInput) {
|
||||||
|
step1({
|
||||||
|
message: input.is_active ? "active" : "inactive",
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
// Do
|
||||||
|
// other imports...
|
||||||
|
import { transform } from "@medusajs/framework/workflows-sdk"
|
||||||
|
|
||||||
|
const myWorkflow = createWorkflow(
|
||||||
|
"hello-world",
|
||||||
|
function (input: WorkflowInput) {
|
||||||
|
const message = transform(
|
||||||
|
{
|
||||||
|
input,
|
||||||
|
},
|
||||||
|
(data) => {
|
||||||
|
return data.input.is_active ? "active" : "inactive"
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
step1({
|
||||||
|
message,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
### Optional Chaining (?.) Alternative
|
||||||
|
|
||||||
|
```ts
|
||||||
|
// Don't
|
||||||
|
const myWorkflow = createWorkflow(
|
||||||
|
"hello-world",
|
||||||
|
function (input: WorkflowInput) {
|
||||||
|
step1({
|
||||||
|
name: input.customer?.name,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
// Do
|
||||||
|
// other imports...
|
||||||
|
import { transform } from "@medusajs/framework/workflows-sdk"
|
||||||
|
|
||||||
|
const myWorkflow = createWorkflow(
|
||||||
|
"hello-world",
|
||||||
|
function (input: WorkflowInput) {
|
||||||
|
const name = transform(
|
||||||
|
{
|
||||||
|
input,
|
||||||
|
},
|
||||||
|
(data) => data.input.customer?.name
|
||||||
|
)
|
||||||
|
|
||||||
|
step1({
|
||||||
|
name,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Step Constraints
|
## Step Constraints
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ export const generatedEditDates = {
|
|||||||
"app/learn/fundamentals/modules/module-link-directions/page.mdx": "2024-07-24T09:16:01+02:00",
|
"app/learn/fundamentals/modules/module-link-directions/page.mdx": "2024-07-24T09:16:01+02:00",
|
||||||
"app/learn/fundamentals/admin/page.mdx": "2024-10-23T07:08:55.898Z",
|
"app/learn/fundamentals/admin/page.mdx": "2024-10-23T07:08:55.898Z",
|
||||||
"app/learn/fundamentals/workflows/long-running-workflow/page.mdx": "2024-12-04T07:37:59.822Z",
|
"app/learn/fundamentals/workflows/long-running-workflow/page.mdx": "2024-12-04T07:37:59.822Z",
|
||||||
"app/learn/fundamentals/workflows/constructor-constraints/page.mdx": "2024-12-11T08:36:08.282Z",
|
"app/learn/fundamentals/workflows/constructor-constraints/page.mdx": "2024-12-12T15:09:41.179Z",
|
||||||
"app/learn/fundamentals/data-models/write-migration/page.mdx": "2024-11-11T15:27:59.794Z",
|
"app/learn/fundamentals/data-models/write-migration/page.mdx": "2024-11-11T15:27:59.794Z",
|
||||||
"app/learn/fundamentals/data-models/manage-relationships/page.mdx": "2024-12-12T14:23:26.254Z",
|
"app/learn/fundamentals/data-models/manage-relationships/page.mdx": "2024-12-12T14:23:26.254Z",
|
||||||
"app/learn/fundamentals/modules/remote-query/page.mdx": "2024-07-21T21:20:24+02:00",
|
"app/learn/fundamentals/modules/remote-query/page.mdx": "2024-07-21T21:20:24+02:00",
|
||||||
|
|||||||
Reference in New Issue
Block a user