1 | ;
|
2 | var merge = require("../lodash.custom").merge;
|
3 | var assign = require("../lodash.custom").assign;
|
4 | function getModifiedWatchContext(trigger) {
|
5 | /**
|
6 | * First, unwrap each item. If it has a <pattern> -> <task> syntax
|
7 | * then we split it, otherwise just return empty arrays for
|
8 | * both patterns and tasks
|
9 | */
|
10 | var unwrapped = trigger.cli.input.slice(1).map(unwrapShorthand);
|
11 | /**
|
12 | * Next take any items that were split and
|
13 | * generate a fake watch options object
|
14 | * @type
|
15 | */
|
16 | var fakeWatchConfig = unwrapped.reduce(function (acc, item) {
|
17 | if (item.tasks.length) {
|
18 | acc[item.name] = {
|
19 | watchers: [{
|
20 | patterns: item.patterns,
|
21 | tasks: item.tasks
|
22 | }]
|
23 | };
|
24 | }
|
25 | return acc;
|
26 | }, {});
|
27 | trigger.input = merge({}, trigger.input, {
|
28 | watch: fakeWatchConfig
|
29 | });
|
30 | /**
|
31 | * Override the CLI input to include the newly split names
|
32 | * @type {*[]}
|
33 | */
|
34 | trigger.cli.input = unwrapped.map(function (x) { return x.name; });
|
35 | return trigger;
|
36 | }
|
37 | exports.getModifiedWatchContext = getModifiedWatchContext;
|
38 | /**
|
39 | * take the following:
|
40 | * $ crossbow watch "*.js -> (lint) (unit)"
|
41 | *
|
42 | * and convert it into
|
43 | * patterns: ["*.js"]
|
44 | * tasks: ["lint", "unit"]
|
45 | */
|
46 | function unwrapShorthand(incoming, i) {
|
47 | var patterns = [];
|
48 | var tasks = [];
|
49 | if (incoming.indexOf(" -> ") > -1) {
|
50 | var split = incoming.split(" -> ").map(function (x) { return x.trim(); });
|
51 | patterns = split[0].split(":");
|
52 | if (split[1]) {
|
53 | var _tasks = split[1].match(/\(.+?\)/g);
|
54 | if (_tasks) {
|
55 | tasks = _tasks.map(function (x) { return x.slice(1, -1).trim(); });
|
56 | }
|
57 | else {
|
58 | tasks = [split[1]];
|
59 | }
|
60 | }
|
61 | return { patterns: patterns, tasks: tasks, i: i, name: "_shorthand_" + i };
|
62 | }
|
63 | return { patterns: patterns, tasks: tasks, i: i, name: incoming };
|
64 | }
|
65 | exports.unwrapShorthand = unwrapShorthand;
|
66 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2guc2hvcnRoYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dhdGNoLnNob3J0aGFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsSUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ2hELElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQVNsRCxpQ0FBd0MsT0FBdUI7SUFDM0Q7Ozs7T0FJRztJQUNILElBQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFbEU7Ozs7T0FJRztJQUNILElBQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBQyxHQUFHLEVBQUUsSUFBSTtRQUMvQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDcEIsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRztnQkFDYixRQUFRLEVBQUUsQ0FBQzt3QkFDUCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7d0JBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztxQkFDcEIsQ0FBQzthQUNMLENBQUM7UUFDTixDQUFDO1FBQ0QsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUNmLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVQLE9BQU8sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFO1FBQ3JDLEtBQUssRUFBRSxlQUFlO0tBQ3pCLENBQUMsQ0FBQztJQUVIOzs7T0FHRztJQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsSUFBSSxFQUFOLENBQU0sQ0FBQyxDQUFDO0lBRS9DLE1BQU0sQ0FBQyxPQUFPLENBQUM7QUFDbkIsQ0FBQztBQXBDRCwwREFvQ0M7QUFFRDs7Ozs7OztHQU9HO0FBQ0gseUJBQWdDLFFBQWdCLEVBQUUsQ0FBUztJQUN2RCxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDbEIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRWYsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsSUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQVIsQ0FBUSxDQUFDLENBQUM7UUFDeEQsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNYLElBQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDVCxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQXJCLENBQXFCLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsQ0FBQztRQUNMLENBQUM7UUFDRCxNQUFNLENBQUMsRUFBQyxRQUFRLFVBQUEsRUFBRSxLQUFLLE9BQUEsRUFBRSxDQUFDLEdBQUEsRUFBRSxJQUFJLEVBQUUsZ0JBQWMsQ0FBRyxFQUFDLENBQUM7SUFDekQsQ0FBQztJQUNELE1BQU0sQ0FBQyxFQUFDLFFBQVEsVUFBQSxFQUFFLEtBQUssT0FBQSxFQUFFLENBQUMsR0FBQSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUMsQ0FBQztBQUNoRCxDQUFDO0FBbEJELDBDQWtCQyJ9 |
\ | No newline at end of file |