UNPKG

4.79 kBJavaScriptView Raw
1"use strict";
2var merge = require("../lodash.custom").merge;
3var assign = require("../lodash.custom").assign;
4function 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}
37exports.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 */
46function 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}
65exports.unwrapShorthand = unwrapShorthand;
66//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2guc2hvcnRoYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dhdGNoLnNob3J0aGFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsSUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ2hELElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQVNsRCxpQ0FBd0MsT0FBdUI7SUFDM0Q7Ozs7T0FJRztJQUNILElBQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFbEU7Ozs7T0FJRztJQUNILElBQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBQyxHQUFHLEVBQUUsSUFBSTtRQUMvQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDcEIsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRztnQkFDYixRQUFRLEVBQUUsQ0FBQzt3QkFDUCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7d0JBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztxQkFDcEIsQ0FBQzthQUNMLENBQUM7UUFDTixDQUFDO1FBQ0QsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUNmLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVQLE9BQU8sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFO1FBQ3JDLEtBQUssRUFBRSxlQUFlO0tBQ3pCLENBQUMsQ0FBQztJQUVIOzs7T0FHRztJQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsSUFBSSxFQUFOLENBQU0sQ0FBQyxDQUFDO0lBRS9DLE1BQU0sQ0FBQyxPQUFPLENBQUM7QUFDbkIsQ0FBQztBQXBDRCwwREFvQ0M7QUFFRDs7Ozs7OztHQU9HO0FBQ0gseUJBQWdDLFFBQWdCLEVBQUUsQ0FBUztJQUN2RCxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDbEIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRWYsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsSUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQVIsQ0FBUSxDQUFDLENBQUM7UUFDeEQsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNYLElBQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDVCxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQXJCLENBQXFCLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsQ0FBQztRQUNMLENBQUM7UUFDRCxNQUFNLENBQUMsRUFBQyxRQUFRLFVBQUEsRUFBRSxLQUFLLE9BQUEsRUFBRSxDQUFDLEdBQUEsRUFBRSxJQUFJLEVBQUUsZ0JBQWMsQ0FBRyxFQUFDLENBQUM7SUFDekQsQ0FBQztJQUNELE1BQU0sQ0FBQyxFQUFDLFFBQVEsVUFBQSxFQUFFLEtBQUssT0FBQSxFQUFFLENBQUMsR0FBQSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUMsQ0FBQztBQUNoRCxDQUFDO0FBbEJELDBDQWtCQyJ9
\No newline at end of file