UNPKG

usher

Version:

Simple DSL for composing decision workflows for AWS Simple Workflow

49 lines (34 loc) 1.1 kB
/*! * Usher * Copyright(c) 2014 meltmedia <mike@meltmedia.com> */ 'use strict'; var util = require('util'), Task = require('./task'), STATUS = require('./status'); module.exports = Activity; function Activity(name, deps, options) { if (!(this instanceof Activity)) { return new Activity(name, deps, options); } Task.apply(this, Array.prototype.slice.call(arguments)); this.options = options || {}; } util.inherits(Activity, Task); Activity.prototype.execute = function execute(context, done) { // Check to see if we ran and failed if (context.didActivityFail(this)) { return done(STATUS.mask('failed')); } // Check to see if we ran and completed if (context.didActivityComplete(this)) { context.addActivityResult(this); return done(STATUS.mask('complete', 'resolved')); } // If we have been scheduled, and are not failed or completed, we must still be outstanding if (context.isActivityOutstanding(this)) { return done(STATUS.mask('outstanding')); } context.scheduleActivity(this); return done(STATUS.mask('scheduled')); };