UNPKG

7.96 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC50YXNrcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tYW5kLnRhc2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSw2Q0FBMkQ7QUFHM0QsK0NBQXlEO0FBR3pELHVCQUEwQjtBQUMxQiwyQ0FBNkQ7QUFDN0QsMkNBRXNCO0FBbUJ0QixpQkFBaUIsT0FBdUI7SUFFN0IsSUFBQSxxQkFBSyxFQUFFLHVCQUFNLENBQWM7SUFFbEMsSUFBTSxRQUFRLEdBQVksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELElBQU0sZUFBZSxHQUFLLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSw4QkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBcEIsQ0FBb0IsQ0FBQyxDQUFDO0lBQ3JFLElBQU0sZ0JBQWdCLEdBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsOEJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQXJCLENBQXFCLENBQUMsQ0FBQztJQUV0RSxJQUFNLFFBQVEsR0FBWSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckQsSUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyx3QkFBVyxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsRUFBaEMsQ0FBZ0MsQ0FBQyxDQUFDO0lBQ2pGLElBQU0sZ0JBQWdCLEdBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLHdCQUFXLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxFQUEvQixDQUErQixDQUFDLENBQUM7SUFFaEY7Ozs7Ozs7T0FPRztJQUNILElBQU0saUJBQWlCLEdBQUcsQ0FBQztRQUN2QixFQUFFLENBQUMs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
\No newline at end of file