# Transform

vendor/Transform.js

## Transform()

The Transform utility can be used to define a relationship between objects from different sources. After defining the relationship, utility methods can be used to do things such as convert data from one source to another, allowing users to then post to API endpoints without additional data manipulation.

**Returns**

* `Void`

## map(mapping, payload)

Map a payload object to the desired output format based on a mapping array.

**Parameters**

| Name    | Type     | Description                                                                                  |   |
| ------- | -------- | -------------------------------------------------------------------------------------------- | - |
| mapping | `array`  | An array of key / value pair objects containing where key is source, value is `destination`. |   |
| payload | `object` | The payload passed into the Task.                                                            |   |

**Returns**

* `Void`

## convert(context, payload)

Convert fields defined in a Transform trigger. This method is called from the Transform trigger scaffolding script.

**Parameters**

| Name    | Type     | Description                                                                                                                      |   |
| ------- | -------- | -------------------------------------------------------------------------------------------------------------------------------- | - |
| context | `object` | The full context object passed into the Task. We use `context.source`, `context.trigger.metadata`, and `context.trigger.fields`. |   |
| payload | `object` | The payload passed into the Task.                                                                                                |   |

**Returns**

* `Void`

## safeSet(obj, key, value)

Proxy for \_.set with handling for line\_items\[].sku not captured in the array logic

**Parameters**

| Name  | Type     | Description |   |
| ----- | -------- | ----------- | - |
| obj   |          |             |   |
| key   | `string` |             |   |
| value |          |             |   |

**Returns**

* `Void`

## handleBracketStringSyntax(value)

For some reason "{{current\_item.fields\['Option 1']}}" doesn't work but "

{{current\_item.fields\[key]}}" does... this is a quick way to try to get it kind-of working

**Parameters**

| Name  | Type     | Description |   |
| ----- | -------- | ----------- | - |
| value | `string` |             |   |

**Returns**

* `string`
