How to use the @ibm-functions/composer.if function in @ibm-functions/composer

To help you get started, we’ve selected a few @ibm-functions/composer examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github ibm-functions / shell / tests / data / composer-source / path-rel-require / srijith.js View on Github external
*
 * Util class for Composer actions.
 *
 */

const composer = require('@ibm-functions/composer');
const composer_utils = require('./composer_utils');

// Actions
const authentication = require('./actions/authentication/index.js').main,
      configuration = require('./actions/configuration/index.js').main,
      options = require('./actions/options/index.js').main,
      post_processing = require('./actions/post_processing/index.js').main,
      start_session = require('./actions/start_session/index.js').main;

const app = composer.if(
  composer_utils.isOptionsCall,
  options,
  function(args) {
    let metrics_aggregator = composer_utils.MetricsAggregator();
    return composer_utils.TimeOutPromise(
      Promise.resolve(
        composer.sequence(
          composer_utils.addMetricAggregator(metrics_aggregator, authentication),
          composer_utils.addMetricAggregator(metrics_aggregator, configuration),
          composer_utils.addMetricAggregator(metrics_aggregator, start_session),
          composer_utils.addMetricAggregator(metrics_aggregator, post_processing)
        ),
        args.origin,
        metrics_aggregator,
        args.max_seconds * 1000
      )
github apache / openwhisk-composer / samples / node-demo.js View on Github external
* You may obtain a copy of the License at
 *
 * 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.
 */

// require the composer module
const composer = require('@ibm-functions/composer')

// define the composition
const composition = composer.if(
    composer.action('authenticate', { action: function ({ password }) { return { value: password === 'abc123' } } }),
    composer.action('success', { action: function () { return { message: 'success' } } }),
    composer.action('failure', { action: function () { return { message: 'failure' } } }))

// instantiate OpenWhisk client
const wsk = composer.util.openwhisk({ ignore_certs: true })

wsk.compositions.deploy({ name: 'demo', composition }) // deploy composition
    .then(() => wsk.actions.invoke({ name: 'demo', params: { password: 'abc123' }, blocking: true })) // invoke composition
    .then(({ response }) => console.log(JSON.stringify(response.result, null, 4)), console.error)
github ibm-functions / shell / app / plugins / modules / composer / lib / if.js View on Github external
.then( ([{fsm:taskFSM}, {fsm:conditionFSM}, elseBits]) => {
                // make the FSM
                const fsm = elseBits ? composer.if(conditionFSM, taskFSM, elseBits.fsm) : composer.if(conditionFSM, taskFSM)

                // we were asked to create a new action for this FSM
                return create({ name, fsm, wsk, commandTree, execOptions, type })
            })
    }