1 | ;
|
2 | var Immutable = require("immutable");
|
3 | var fromJS = Immutable.fromJS, Map = Immutable.Map;
|
4 | var Rx = require("rx");
|
5 | /**
|
6 | * A task context is just an Immutable Map of key=>value pairs
|
7 | * that may be used to provide addition context to the task running
|
8 | * environment. This is especially useful in situations where you need
|
9 | * to do something that MUST block the task running altogether. An example
|
10 | * would be hashing files/directories to determine if a task/group of tasks should
|
11 | * run.
|
12 | */
|
13 | function getContext(tasks, trigger) {
|
14 | /**
|
15 | * Define a list of async actions
|
16 | * that must complete before any tasks are executed
|
17 | * @type {Array}
|
18 | */
|
19 | var preExecutionTasks = [
|
20 | require("./command.run.pre-execution").createHashes
|
21 | ];
|
22 | /**
|
23 | * Now wrap each Function in an observable
|
24 | * @type {Rx.Observable<PreExecutionTask>[]}
|
25 | */
|
26 | var observables = preExecutionTasks.map(function (fn) {
|
27 | return Rx.Observable.create(function (obs) {
|
28 | fn(tasks, trigger).subscribe(obs);
|
29 | });
|
30 | });
|
31 | /**
|
32 | * Run each item in sequence
|
33 | * finally producing an Immutable Map from all the gathered values
|
34 | */
|
35 | return Rx.Observable
|
36 | .from(observables)
|
37 | .concatAll()
|
38 | .toArray()
|
39 | .map(function (xs) {
|
40 | return (_a = Map({})).mergeDeep.apply(_a, xs.map(function (x) { return fromJS(x); }));
|
41 | var _a;
|
42 | });
|
43 | }
|
44 | Object.defineProperty(exports, "__esModule", { value: true });
|
45 | exports.default = getContext;
|
46 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5ydW4uY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tYW5kLnJ1bi5jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxJQUFPLFNBQVMsV0FBVyxXQUFXLENBQUMsQ0FBQztBQUVqQyw2QkFBTSxFQUFFLG1CQUFHLENBQWM7QUFFaEMsSUFBTyxFQUFFLFdBQVcsSUFBSSxDQUFDLENBQUM7QUFJMUI7Ozs7Ozs7R0FPRztBQUNILG9CQUFtQyxLQUFhLEVBQUUsT0FBdUI7SUFFckU7Ozs7T0FJRztJQUNILElBQU0saUJBQWlCLEdBQTRCO1FBQy9DLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLFlBQVk7S0FDdEQsQ0FBQztJQUVGOzs7T0FHRztJQUNILElBQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxVQUFDLEVBQUU7UUFDekMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRztZQUNyQyxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0lBRUg7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVO1NBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUNqQixTQUFTLEVBQUU7U0FDWCxPQUFPLEVBQUU7U0FDVCxHQUFHLENBQUMsVUFBQSxFQUFFO1FBQ0gsTUFBTSxDQUFDLE1BQUEsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFDLFNBQVMsV0FBSSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFULENBQVMsQ0FBQyxDQUFDLENBQUM7O0lBQ3hELENBQUMsQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQWhDRDs0QkFnQ0MsQ0FBQSJ9 |
\ | No newline at end of file |