1 | var define;
|
2 | if (typeof define === "undefined")
|
3 | define = function (classInstance) {
|
4 | classInstance (require, exports, module);
|
5 | }
|
6 |
|
7 | define (function (require, exports, module) {
|
8 |
|
9 | var EventEmitter = require ('events').EventEmitter,
|
10 | util = require ('util'),
|
11 | flow = require ('../flow');
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 | var tokenInitiator = module.exports = function (config) {
|
22 | var self = this;
|
23 |
|
24 | this.flows = config.workflows || config.dataflows || config.flows;
|
25 | }
|
26 |
|
27 | util.inherits (tokenInitiator, EventEmitter);
|
28 |
|
29 | tokenInitiator.prototype.prepare = function () {
|
30 | this.emit ('ready');
|
31 | }
|
32 |
|
33 | tokenInitiator.prototype.process = function (token, dfRequire) {
|
34 |
|
35 | var self = this;
|
36 |
|
37 | var dfConf;
|
38 |
|
39 | if (self.flows.constructor === Array) {
|
40 | self.flows.map (function (item) {
|
41 |
|
42 | var match = (token == item.token);
|
43 |
|
44 | if (match) {
|
45 | dfConf = item;
|
46 | }
|
47 | });
|
48 | } else {
|
49 | dfConf = self.flows[token];
|
50 | }
|
51 |
|
52 | if (!dfConf) {
|
53 | self.emit ("unknown", dfRequire);
|
54 | return;
|
55 | }
|
56 |
|
57 | var df = new flow (
|
58 | util.extend (true, {}, dfConf),
|
59 | dfRequire
|
60 | );
|
61 |
|
62 | self.emit ("detected", dfRequire, df);
|
63 | if (dfConf.autoRun || dfConf.autoRun === undefined || dfRequire.autoRun || dfRequire.autoRun === undefined)
|
64 | df.runDelayed ();
|
65 |
|
66 | if (!df) {
|
67 | self.emit ("unknown", dfRequire);
|
68 | return;
|
69 | }
|
70 |
|
71 | return df;
|
72 | }
|
73 |
|
74 | });
|