UNPKG

6.48 kBJavaScriptView Raw
1// koffee 1.14.0
2
3/*
4000 000 0000000 000000000 0000000 000 000
5000 0 000 000 000 000 000 000 000
6000000000 000000000 000 000 000000000
7000 000 000 000 000 000 000 000
800 00 000 000 000 0000000 000 000
9 */
10var Watch, _, args, build, config, klog, kolor, pkg, pretty, ref, runcmd, should, slash, watcher,
11 indexOf = [].indexOf;
12
13ref = require('kxk'), _ = ref._, args = ref.args, klog = ref.klog, kolor = ref.kolor, slash = ref.slash;
14
15pretty = require('./pretty');
16
17should = require('./should');
18
19runcmd = require('./runcmd');
20
21config = require('./config');
22
23build = require('./build');
24
25pkg = require('../package.json');
26
27watcher = null;
28
29Watch = function(wlk, opt) {
30 var start;
31 start = function(cb) {
32 var d, pass, ref1, v;
33 pass = function(p) {
34 var ref1;
35 return ref1 = slash.ext(p), indexOf.call(_.keys(opt), ref1) >= 0;
36 };
37 d = (ref1 = args["arguments"][0]) != null ? ref1 : '.';
38 v = kolor.dim(kolor.gray(pkg.version + " ●"));
39 klog(pretty.time(), kolor.gray("👁 " + v + " " + (pretty.filePath(slash.resolve(d), kolor.white))));
40 watcher = require('kxk').watch.watch(d, {
41 recursive: true,
42 ignore: wlk.ignore
43 });
44 return watcher.on('change', function(info) {
45 if (pass(info.path)) {
46 return cb(slash.path(info.path));
47 }
48 });
49 };
50 return start(function(sourceFile) {
51 var o, test;
52 sourceFile = slash.resolve(sourceFile);
53 o = config.obj(sourceFile, opt);
54 test = function(source) {
55 if (should('test', o, source)) {
56 return runcmd('test', source, config.path('test', slash.resolve(source), opt));
57 }
58 };
59 if (!should('ignore', o, sourceFile)) {
60 return build(sourceFile, opt, test);
61 } else {
62 return test(sourceFile);
63 }
64 });
65};
66
67module.exports = Watch;
68
69//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2guanMiLCJzb3VyY2VSb290IjoiLi4vY29mZmVlIiwic291cmNlcyI6WyJ3YXRjaC5jb2ZmZWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7OztBQUFBLElBQUEsNEZBQUE7SUFBQTs7QUFRQSxNQUFrQyxPQUFBLENBQVEsS0FBUixDQUFsQyxFQUFFLFNBQUYsRUFBSyxlQUFMLEVBQVcsZUFBWCxFQUFpQixpQkFBakIsRUFBd0I7O0FBRXhCLE1BQUEsR0FBUyxPQUFBLENBQVEsVUFBUjs7QUFDVCxNQUFBLEdBQVMsT0FBQSxDQUFRLFVBQVI7O0FBQ1QsTUFBQSxHQUFTLE9BQUEsQ0FBUSxVQUFSOztBQUNULE1BQUEsR0FBUyxPQUFBLENBQVEsVUFBUjs7QUFDVCxLQUFBLEdBQVMsT0FBQSxDQUFRLFNBQVI7O0FBQ1QsR0FBQSxHQUFTLE9BQUEsQ0FBUSxpQkFBUjs7QUFFVCxPQUFBLEdBQVU7O0FBRVYsS0FBQSxHQUFRLFNBQUMsR0FBRCxFQUFNLEdBQU47QUFJSixRQUFBO0lBQUEsS0FBQSxHQUFRLFNBQUMsRUFBRDtBQUVKLFlBQUE7UUFBQSxJQUFBLEdBQU8sU0FBQyxDQUFEO0FBQU8sZ0JBQUE7MEJBQUEsS0FBSyxDQUFDLEdBQU4sQ0FBVSxDQUFWLENBQUEsRUFBQSxhQUFnQixDQUFDLENBQUMsSUFBRixDQUFPLEdBQVAsQ0FBaEIsRUFBQSxJQUFBO1FBQVA7UUFFUCxDQUFBLGtEQUF3QjtRQUN4QixDQUFBLEdBQUksS0FBSyxDQUFDLEdBQU4sQ0FBVSxLQUFLLENBQUMsSUFBTixDQUFjLEdBQUcsQ0FBQyxPQUFMLEdBQWEsSUFBMUIsQ0FBVjtRQUNKLElBQUEsQ0FBSyxNQUFNLENBQUMsSUFBUCxDQUFBLENBQUwsRUFBb0IsS0FBSyxDQUFDLElBQU4sQ0FBVyxPQUFBLEdBQVEsQ0FBUixHQUFVLEdBQVYsR0FBWSxDQUFDLE1BQU0sQ0FBQyxRQUFQLENBQWdCLEtBQUssQ0FBQyxPQUFOLENBQWMsQ0FBZCxDQUFoQixFQUFrQyxLQUFLLENBQUMsS0FBeEMsQ0FBRCxDQUF2QixDQUFwQjtRQUNBLE9BQUEsR0FBVSxPQUFBLENBQVEsS0FBUixDQUFjLENBQUMsS0FBSyxDQUFDLEtBQXJCLENBQTJCLENBQTNCLEVBQThCO1lBQUEsU0FBQSxFQUFVLElBQVY7WUFBZ0IsTUFBQSxFQUFPLEdBQUcsQ0FBQyxNQUEzQjtTQUE5QjtlQUNWLE9BQU8sQ0FBQyxFQUFSLENBQVcsUUFBWCxFQUFvQixTQUFDLElBQUQ7WUFDaEIsSUFBRyxJQUFBLENBQUssSUFBSSxDQUFDLElBQVYsQ0FBSDt1QkFBdUIsRUFBQSxDQUFHLEtBQUssQ0FBQyxJQUFOLENBQVcsSUFBSSxDQUFDLElBQWhCLENBQUgsRUFBdkI7O1FBRGdCLENBQXBCO0lBUkk7V0FXUixLQUFBLENBQU0sU0FBQyxVQUFEO0FBRUYsWUFBQTtRQUFBLFVBQUEsR0FBYSxLQUFLLENBQUMsT0FBTixDQUFjLFVBQWQ7UUFDYixDQUFBLEdBQUksTUFBTSxDQUFDLEdBQVAsQ0FBVyxVQUFYLEVBQXVCLEdBQXZCO1FBRUosSUFBQSxHQUFPLFNBQUMsTUFBRDtZQUNILElBQUcsTUFBQSxDQUFPLE1BQVAsRUFBYyxDQUFkLEVBQWlCLE1BQWpCLENBQUg7dUJBQ0ksTUFBQSxDQUFPLE1BQVAsRUFBYyxNQUFkLEVBQXNCLE1BQU0sQ0FBQyxJQUFQLENBQVksTUFBWixFQUFtQixLQUFLLENBQUMsT0FBTixDQUFjLE1BQWQsQ0FBbkIsRUFBMEMsR0FBMUMsQ0FBdEIsRUFESjs7UUFERztRQUlQLElBQUcsQ0FBSSxNQUFBLENBQU8sUUFBUCxFQUFnQixDQUFoQixFQUFtQixVQUFuQixDQUFQO21CQUNJLEtBQUEsQ0FBTSxVQUFOLEVBQWtCLEdBQWxCLEVBQXVCLElBQXZCLEVBREo7U0FBQSxNQUFBO21CQUdJLElBQUEsQ0FBSyxVQUFMLEVBSEo7O0lBVEUsQ0FBTjtBQWZJOztBQTZCUixNQUFNLENBQUMsT0FBUCxHQUFpQiIsInNvdXJjZXNDb250ZW50IjpbIiMjI1xuMDAwICAgMDAwICAgMDAwMDAwMCAgIDAwMDAwMDAwMCAgIDAwMDAwMDAgIDAwMCAgIDAwMFxuMDAwIDAgMDAwICAwMDAgICAwMDAgICAgIDAwMCAgICAgMDAwICAgICAgIDAwMCAgIDAwMFxuMDAwMDAwMDAwICAwMDAwMDAwMDAgICAgIDAwMCAgICAgMDAwICAgICAgIDAwMDAwMDAwMFxuMDAwICAgMDAwICAwMDAgICAwMDAgICAgIDAwMCAgICAgMDAwICAgICAgIDAwMCAgIDAwMFxuMDAgICAgIDAwICAwMDAgICAwMDAgICAgIDAwMCAgICAgIDAwMDAwMDAgIDAwMCAgIDAwMFxuIyMjXG5cbnsgXywgYXJncywga2xvZywga29sb3IsIHNsYXNoIH0gPSByZXF1aXJlICdreGsnXG5cbnByZXR0eSA9IHJlcXVpcmUgJy4vcHJldHR5J1xuc2hvdWxkID0gcmVxdWlyZSAnLi9zaG91bGQnXG5ydW5jbWQgPSByZXF1aXJlICcuL3J1bmNtZCdcbmNvbmZpZyA9IHJlcXVpcmUgJy4vY29uZmlnJ1xuYnVpbGQgID0gcmVxdWlyZSAnLi9idWlsZCdcbnBrZyAgICA9IHJlcXVpcmUgJy4uL3BhY2thZ2UuanNvbidcblxud2F0Y2hlciA9IG51bGxcblxuV2F0Y2ggPSAod2xrLCBvcHQpIC0+XG4gICAgXG4gICAgIyBrbG9nICd3YXRjaCcgd2xrLCBvcHRcbiAgICBcbiAgICBzdGFydCA9IChjYikgLT5cblxuICAgICAgICBwYXNzID0gKHApIC0+IHNsYXNoLmV4dChwKSBpbiBfLmtleXMob3B0KVxuXG4gICAgICAgIGQgPSBhcmdzLmFyZ3VtZW50c1swXSA/ICcuJ1xuICAgICAgICB2ID0ga29sb3IuZGltIGtvbG9yLmdyYXkgXCIje3BrZy52ZXJzaW9ufSDil49cIlxuICAgICAgICBrbG9nIHByZXR0eS50aW1lKCksIGtvbG9yLmdyYXkgXCLwn5GBICAgI3t2fSAje3ByZXR0eS5maWxlUGF0aCBzbGFzaC5yZXNvbHZlKGQpLCBrb2xvci53aGl0ZX1cIlxuICAgICAgICB3YXRjaGVyID0gcmVxdWlyZSgna3hrJykud2F0Y2gud2F0Y2ggZCwgcmVjdXJzaXZlOnRydWUsIGlnbm9yZTp3bGsuaWdub3JlXG4gICAgICAgIHdhdGNoZXIub24gJ2NoYW5nZScgKGluZm8pIC0+IFxuICAgICAgICAgICAgaWYgcGFzcyBpbmZvLnBhdGggdGhlbiBjYiBzbGFzaC5wYXRoIGluZm8ucGF0aFxuXG4gICAgc3RhcnQgKHNvdXJjZUZpbGUpIC0+XG5cbiAgICAgICAgc291cmNlRmlsZSA9IHNsYXNoLnJlc29sdmUgc291cmNlRmlsZVxuICAgICAgICBvID0gY29uZmlnLm9iaiBzb3VyY2VGaWxlLCBvcHRcblxuICAgICAgICB0ZXN0ID0gKHNvdXJjZSkgLT5cbiAgICAgICAgICAgIGlmIHNob3VsZCAndGVzdCcgbywgc291cmNlXG4gICAgICAgICAgICAgICAgcnVuY21kICd0ZXN0JyBzb3VyY2UsIGNvbmZpZy5wYXRoICd0ZXN0JyBzbGFzaC5yZXNvbHZlKHNvdXJjZSksIG9wdFxuXG4gICAgICAgIGlmIG5vdCBzaG91bGQgJ2lnbm9yZScgbywgc291cmNlRmlsZVxuICAgICAgICAgICAgYnVpbGQgc291cmNlRmlsZSwgb3B0LCB0ZXN0XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRlc3Qgc291cmNlRmlsZVxuXG5tb2R1bGUuZXhwb3J0cyA9IFdhdGNoXG4iXX0=
70//# sourceURL=../coffee/watch.coffee
\No newline at end of file