mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-16 15:45:13 +00:00
41 lines
769 B
JavaScript
41 lines
769 B
JavaScript
var Q = require("q");
|
|
var _ = require("lodash");
|
|
var path = require("path");
|
|
var chokidar = require("chokidar");
|
|
|
|
var parsers = require("gitbook-parsers");
|
|
|
|
function watch(dir) {
|
|
var d = Q.defer();
|
|
dir = path.resolve(dir);
|
|
|
|
var toWatch = [
|
|
"book.json", "book.js"
|
|
];
|
|
|
|
_.each(parsers.extensions, function(ext) {
|
|
toWatch.push("**/*"+ext);
|
|
});
|
|
|
|
var watcher = chokidar.watch(toWatch, {
|
|
cwd: dir,
|
|
ignored: "_book/**",
|
|
ignoreInitial: true
|
|
});
|
|
|
|
watcher.once("all", function(e, filepath) {
|
|
watcher.close();
|
|
|
|
d.resolve(filepath);
|
|
});
|
|
watcher.once("error", function(err) {
|
|
watcher.close();
|
|
|
|
d.reject(err);
|
|
});
|
|
|
|
return d.promise;
|
|
}
|
|
|
|
module.exports = watch;
|