UNPKG

6.45 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.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2guanMiLCJzb3VyY2VSb290IjoiLi4vY29mZmVlIiwic291cmNlcyI6WyJ3YXRjaC5jb2ZmZWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7OztBQUFBLElBQUEsNEZBQUE7SUFBQTs7QUFRQSxNQUFrQyxPQUFBLENBQVEsS0FBUixDQUFsQyxFQUFFLFNBQUYsRUFBSyxlQUFMLEVBQVcsZUFBWCxFQUFpQixpQkFBakIsRUFBd0I7O0FBRXhCLE1BQUEsR0FBUyxPQUFBLENBQVEsVUFBUjs7QUFDVCxNQUFBLEdBQVMsT0FBQSxDQUFRLFVBQVI7O0FBQ1QsTUFBQSxHQUFTLE9BQUEsQ0FBUSxVQUFSOztBQUNULE1BQUEsR0FBUyxPQUFBLENBQVEsVUFBUjs7QUFDVCxLQUFBLEdBQVMsT0FBQSxDQUFRLFNBQVI7O0FBQ1QsR0FBQSxHQUFTLE9BQUEsQ0FBUSxpQkFBUjs7QUFFVCxPQUFBLEdBQVU7O0FBRVYsS0FBQSxHQUFRLFNBQUMsR0FBRCxFQUFNLEdBQU47QUFJSixRQUFBO0lBQUEsS0FBQSxHQUFRLFNBQUMsRUFBRDtBQUVKLFlBQUE7UUFBQSxJQUFBLEdBQU8sU0FBQyxDQUFEO0FBQU8sZ0JBQUE7MEJBQUEsS0FBSyxDQUFDLEdBQU4sQ0FBVSxDQUFWLENBQUEsRUFBQSxhQUFnQixDQUFDLENBQUMsSUFBRixDQUFPLEdBQVAsQ0FBaEIsRUFBQSxJQUFBO1FBQVA7UUFFUCxDQUFBLGtEQUF3QjtRQUN4QixDQUFBLEdBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFWLENBQWtCLEdBQUcsQ0FBQyxPQUFMLEdBQWEsSUFBOUI7UUFDSixJQUFBLENBQUssTUFBTSxDQUFDLElBQVAsQ0FBQSxDQUFMLEVBQW9CLEtBQUssQ0FBQyxJQUFOLENBQVcsT0FBQSxHQUFRLENBQVIsR0FBVSxHQUFWLEdBQVksQ0FBQyxNQUFNLENBQUMsUUFBUCxDQUFnQixLQUFLLENBQUMsT0FBTixDQUFjLENBQWQsQ0FBaEIsRUFBa0MsS0FBSyxDQUFDLEtBQXhDLENBQUQsQ0FBdkIsQ0FBcEI7UUFDQSxPQUFBLEdBQVUsT0FBQSxDQUFRLEtBQVIsQ0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFyQixDQUEyQixDQUEzQixFQUE4QjtZQUFBLFNBQUEsRUFBVSxJQUFWO1lBQWdCLE1BQUEsRUFBTyxHQUFHLENBQUMsTUFBM0I7U0FBOUI7ZUFDVixPQUFPLENBQUMsRUFBUixDQUFXLFFBQVgsRUFBb0IsU0FBQyxJQUFEO1lBQ2hCLElBQUcsSUFBQSxDQUFLLElBQUksQ0FBQyxJQUFWLENBQUg7dUJBQXVCLEVBQUEsQ0FBRyxLQUFLLENBQUMsSUFBTixDQUFXLElBQUksQ0FBQyxJQUFoQixDQUFILEVBQXZCOztRQURnQixDQUFwQjtJQVJJO1dBV1IsS0FBQSxDQUFNLFNBQUMsVUFBRDtBQUVGLFlBQUE7UUFBQSxVQUFBLEdBQWEsS0FBSyxDQUFDLE9BQU4sQ0FBYyxVQUFkO1FBQ2IsQ0FBQSxHQUFJLE1BQU0sQ0FBQyxHQUFQLENBQVcsVUFBWCxFQUF1QixHQUF2QjtRQUVKLElBQUEsR0FBTyxTQUFDLE1BQUQ7WUFDSCxJQUFHLE1BQUEsQ0FBTyxNQUFQLEVBQWMsQ0FBZCxFQUFpQixNQUFqQixDQUFIO3VCQUNJLE1BQUEsQ0FBTyxNQUFQLEVBQWMsTUFBZCxFQUFzQixNQUFNLENBQUMsSUFBUCxDQUFZLE1BQVosRUFBbUIsS0FBSyxDQUFDLE9BQU4sQ0FBYyxNQUFkLENBQW5CLEVBQTBDLEdBQTFDLENBQXRCLEVBREo7O1FBREc7UUFJUCxJQUFHLENBQUksTUFBQSxDQUFPLFFBQVAsRUFBZ0IsQ0FBaEIsRUFBbUIsVUFBbkIsQ0FBUDttQkFDSSxLQUFBLENBQU0sVUFBTixFQUFrQixHQUFsQixFQUF1QixJQUF2QixFQURKO1NBQUEsTUFBQTttQkFHSSxJQUFBLENBQUssVUFBTCxFQUhKOztJQVRFLENBQU47QUFmSTs7QUE2QlIsTUFBTSxDQUFDLE9BQVAsR0FBaUIiLCJzb3VyY2VzQ29udGVudCI6WyIjIyNcbjAwMCAgIDAwMCAgIDAwMDAwMDAgICAwMDAwMDAwMDAgICAwMDAwMDAwICAwMDAgICAwMDBcbjAwMCAwIDAwMCAgMDAwICAgMDAwICAgICAwMDAgICAgIDAwMCAgICAgICAwMDAgICAwMDBcbjAwMDAwMDAwMCAgMDAwMDAwMDAwICAgICAwMDAgICAgIDAwMCAgICAgICAwMDAwMDAwMDBcbjAwMCAgIDAwMCAgMDAwICAgMDAwICAgICAwMDAgICAgIDAwMCAgICAgICAwMDAgICAwMDBcbjAwICAgICAwMCAgMDAwICAgMDAwICAgICAwMDAgICAgICAwMDAwMDAwICAwMDAgICAwMDBcbiMjI1xuXG57IF8sIGFyZ3MsIGtsb2csIGtvbG9yLCBzbGFzaCB9ID0gcmVxdWlyZSAna3hrJ1xuXG5wcmV0dHkgPSByZXF1aXJlICcuL3ByZXR0eSdcbnNob3VsZCA9IHJlcXVpcmUgJy4vc2hvdWxkJ1xucnVuY21kID0gcmVxdWlyZSAnLi9ydW5jbWQnXG5jb25maWcgPSByZXF1aXJlICcuL2NvbmZpZydcbmJ1aWxkICA9IHJlcXVpcmUgJy4vYnVpbGQnXG5wa2cgICAgPSByZXF1aXJlICcuLi9wYWNrYWdlLmpzb24nXG5cbndhdGNoZXIgPSBudWxsXG5cbldhdGNoID0gKHdsaywgb3B0KSAtPlxuICAgIFxuICAgICMga2xvZyAnd2F0Y2gnIHdsaywgb3B0XG4gICAgXG4gICAgc3RhcnQgPSAoY2IpIC0+XG5cbiAgICAgICAgcGFzcyA9IChwKSAtPiBzbGFzaC5leHQocCkgaW4gXy5rZXlzKG9wdClcblxuICAgICAgICBkID0gYXJncy5hcmd1bWVudHNbMF0gPyAnLidcbiAgICAgICAgdiA9IGtvbG9yLmRpbS5ncmF5IFwiI3twa2cudmVyc2lvbn0g4pePXCJcbiAgICAgICAga2xvZyBwcmV0dHkudGltZSgpLCBrb2xvci5ncmF5IFwi8J+RgSAgICN7dn0gI3twcmV0dHkuZmlsZVBhdGggc2xhc2gucmVzb2x2ZShkKSwga29sb3Iud2hpdGV9XCJcbiAgICAgICAgd2F0Y2hlciA9IHJlcXVpcmUoJ2t4aycpLndhdGNoLndhdGNoIGQsIHJlY3Vyc2l2ZTp0cnVlLCBpZ25vcmU6d2xrLmlnbm9yZVxuICAgICAgICB3YXRjaGVyLm9uICdjaGFuZ2UnIChpbmZvKSAtPiBcbiAgICAgICAgICAgIGlmIHBhc3MgaW5mby5wYXRoIHRoZW4gY2Igc2xhc2gucGF0aCBpbmZvLnBhdGhcblxuICAgIHN0YXJ0IChzb3VyY2VGaWxlKSAtPlxuXG4gICAgICAgIHNvdXJjZUZpbGUgPSBzbGFzaC5yZXNvbHZlIHNvdXJjZUZpbGVcbiAgICAgICAgbyA9IGNvbmZpZy5vYmogc291cmNlRmlsZSwgb3B0XG5cbiAgICAgICAgdGVzdCA9IChzb3VyY2UpIC0+XG4gICAgICAgICAgICBpZiBzaG91bGQgJ3Rlc3QnIG8sIHNvdXJjZVxuICAgICAgICAgICAgICAgIHJ1bmNtZCAndGVzdCcgc291cmNlLCBjb25maWcucGF0aCAndGVzdCcgc2xhc2gucmVzb2x2ZShzb3VyY2UpLCBvcHRcblxuICAgICAgICBpZiBub3Qgc2hvdWxkICdpZ25vcmUnIG8sIHNvdXJjZUZpbGVcbiAgICAgICAgICAgIGJ1aWxkIHNvdXJjZUZpbGUsIG9wdCwgdGVzdFxuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0ZXN0IHNvdXJjZUZpbGVcblxubW9kdWxlLmV4cG9ydHMgPSBXYXRjaFxuIl19
70//# sourceURL=../coffee/watch.coffee
\No newline at end of file