Code: Select all
async function calculateScriptExpression(s: Switch, flowElement: FlowElement, job: Job): Promise<string> {
const dataTags: Array<{ tag: string; value: any }> = await job.getPrivateData()
// Converts the array of tags and values into an object, e.g. [{ tag: 'foo', value: 'bar' }] -> { foo: 'bar' }
const privateDataObject: Record<string, any> = dataTags.reduce((acc: Record<string, any>, { tag, value }) => {
acc[tag] = value
return acc
}, {})
// A set of tags that we want to ignore when processing job data (like certain system-generated tags)
const irrelevantKeys = ['EnfocusSwitch.initiated', 'EnfocusSwitch.origin']
irrelevantKeys.forEach((key) => delete privateDataObject[key])
const privateDataString = JSON.stringify(privateDataObject)
return privateDataString === '{}' ? 'No private data' : privateDataString
// You can comment out the code above if you don't want this script being run every time you inspect the jobs pane
return '// disabled'
}