Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
'use strict'
const composer = require('@ibm-functions/composer')
// build action composition
const app = composer.try('RandomError', /* catch */ args => ({ message: args.error + ' is caught' }))
// output action composition
console.log(JSON.stringify(app, null, 4))
// invoke action composition
const wsk = composer.openwhisk({ignore_certs:true})
function print(obj) { console.log(JSON.stringify(obj.response ? obj.response.result : obj, null, 4)) }
wsk.actions.invoke({ name: 'conductor', params: { $run: app, n: 3, $blocking: true }, blocking: true }).then(print, console.error)
.then( ([{entity:task,fsm:taskFSM}, {entity:handler,fsm:handlerFSM}]) => {
// make the FSM
const fsm = composer.try(taskFSM, handlerFSM)
if (options.name) {
// we were asked to create a new action for this FSM
return create({ name: options.name, fsm, wsk, commandTree, execOptions, type })
} else {
// replace the task entity with the fsm
return update({ name: taskName, entity: task, // taking over this entity's name
fsm, wsk, commandTree, execOptions, type })
}
})
}