UNPKG

8.06 kBJavaScriptView Raw
1"use strict";
2var command_run_1 = require("./command.run");
3var task_resolve_1 = require("./task.resolve");
4var Rx = require("rx");
5var file_utils_1 = require("./file.utils");
6var task_utils_1 = require("./task.utils");
7function execute(trigger) {
8 var input = trigger.input, config = trigger.config;
9 var allNames = Object.keys(trigger.input.tasks);
10 var possibleParents = allNames.filter(function (x) { return task_utils_1.isParentGroupName(x); });
11 var possibleDefaults = allNames.filter(function (x) { return !task_utils_1.isParentGroupName(x); });
12 var cliInput = trigger.cli.input.slice(1);
13 var defaultInputNames = cliInput.filter(function (x) { return !task_utils_1.isParentRef(x, possibleParents); });
14 var parentInputNames = cliInput.filter(function (x) { return task_utils_1.isParentRef(x, possibleParents); });
15 /**
16 * Either resolve ALL tasks, or a subset if given
17 * via the cli.
18 *
19 * eg:
20 * crossbow ls -> all tasks
21 * crossbow ls build-all -> only build all tasks
22 */
23 var defaultsToResolve = (function () {
24 if (defaultInputNames.length) {
25 return defaultInputNames;
26 }
27 if (parentInputNames.length) {
28 return [];
29 }
30 var taskNamesFromTasksDir = file_utils_1.getPossibleTasksFromDirectories(config.tasksDir, config.cwd);
31 return possibleDefaults.concat(taskNamesFromTasksDir);
32 })();
33 var parentsToResolve = (function () {
34 if (parentInputNames.length) {
35 return parentInputNames;
36 }
37 if (defaultInputNames.length) {
38 return [];
39 }
40 return possibleParents;
41 })();
42 /**
43 * Resolve the subset
44 * @type {Tasks}
45 */
46 var resolvedDefault = task_resolve_1.resolveTasks(defaultsToResolve, trigger);
47 var resolvedParents = parentsToResolve
48 .map(task_utils_1.getChildName)
49 .reduce(function (acc, key) {
50 var childKeys = Object.keys(task_utils_1.getChildItems(key, input.tasks));
51 var plainName = key.slice(1, -1);
52 if (!acc[plainName]) {
53 acc[plainName] = childKeys;
54 }
55 else {
56 acc[plainName].push.apply(acc[plainName], childKeys);
57 }
58 return acc;
59 }, {});
60 function getParents(resolvedParents, trigger) {
61 return Object.keys(resolvedParents).map(function (key) {
62 var parent = resolvedParents[key];
63 var items = parent.map(function (x) { return (key + ":" + x); });
64 var resolved = task_resolve_1.resolveTasks(items, trigger);
65 return { title: key, tasks: resolved };
66 });
67 }
68 var groups = (function () {
69 if (resolvedDefault.all.length) {
70 return [
71 { title: "Default Tasks", tasks: resolvedDefault }
72 ].concat(getParents(resolvedParents, trigger));
73 }
74 return getParents(resolvedParents, trigger);
75 })();
76 var tasks = groups.reduce(function (acc, group) {
77 return acc.concat(group.tasks.all);
78 }, []);
79 return Rx.Observable.just({
80 setup: {
81 groups: groups,
82 tasks: tasks,
83 errors: []
84 }
85 });
86}
87function handleIncomingTasksCommand(cli, input, config, reporter) {
88 return execute({
89 cli: cli,
90 input: input,
91 config: config,
92 reporter: reporter,
93 type: command_run_1.TriggerTypes.command
94 });
95}
96Object.defineProperty(exports, "__esModule", { value: true });
97exports.default = handleIncomingTasksCommand;
98//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC50YXNrcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tYW5kLnRhc2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSw0QkFBMkMsZUFBZSxDQUFDLENBQUE7QUFHM0QsNkJBQXdDLGdCQUFnQixDQUFDLENBQUE7QUFHekQsSUFBTyxFQUFFLFdBQVcsSUFBSSxDQUFDLENBQUM7QUFDMUIsMkJBQThDLGNBQWMsQ0FBQyxDQUFBO0FBQzdELDJCQUVPLGNBQWMsQ0FBQyxDQUFBO0FBbUJ0QixpQkFBaUIsT0FBdUI7SUFFN0IseUJBQUssRUFBRSx1QkFBTSxDQUFjO0lBRWxDLElBQU0sUUFBUSxHQUFZLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRCxJQUFNLGVBQWUsR0FBSyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsOEJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQXBCLENBQW9CLENBQUMsQ0FBQztJQUNyRSxJQUFNLGdCQUFnQixHQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLDhCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFyQixDQUFxQixDQUFDLENBQUM7SUFFdEUsSUFBTSxRQUFRLEdBQVksT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JELElBQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsd0JBQVcsQ0FBQyxDQUFDLEVBQUUsZUFBZSxDQUFDLEVBQWhDLENBQWdDLENBQUMsQ0FBQztJQUNqRixJQUFNLGdCQUFnQixHQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSx3QkFBVyxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsRUFB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
\No newline at end of file