diff --git a/chokidar/chokidar-tests.ts b/chokidar/chokidar-tests.ts new file mode 100644 index 000000000..b89dd81a0 --- /dev/null +++ b/chokidar/chokidar-tests.ts @@ -0,0 +1,41 @@ +/// + +import fs = require('fs'); +import chokidar = require('chokidar'); + +var watcher = chokidar.watch('file, dir, or glob', { + ignored: /[\/\\]\./, persistent: true +}); + +var log = console.log.bind(console); + +watcher + .on('add', function(path:string) { log('File', path, 'has been added'); }) + .on('addDir', function(path:string) { log('Directory', path, 'has been added'); }) + .on('change', function(path:string) { log('File', path, 'has been changed'); }) + .on('unlink', function(path:string) { log('File', path, 'has been removed'); }) + .on('unlinkDir', function(path:string) { log('Directory', path, 'has been removed'); }) + .on('error', function(error:any) { log('Error happened', error); }) + .on('ready', function() { log('Initial scan complete. Ready for changes.'); }) + .on('raw', function(event:Event, path:string, details:any) { log('Raw event info:', event, path, details); }) + +// 'add', 'addDir' and 'change' events also receive stat() results as second +// argument when available: http://nodejs.org/api/fs.html#fs_class_fs_stats +watcher.on('change', function(path:string, stats:fs.Stats) { + if (stats) console.log('File', path, 'changed size to', stats.size); +}); + +// Watch new files. +watcher.add('new-file'); +watcher.add(['new-file-2', 'new-file-3', '**/other-file*']); + +// Un-watch some files. +watcher.unwatch('new-file*'); + +// Only needed if watching is `persistent: true`. +watcher.close(); + +// One-liner +require('chokidar').watch('.', {ignored: /[\/\\]\./}).on('all', function(event:string, path:string) { + console.log(event, path); +}); \ No newline at end of file diff --git a/chokidar/chokidar.d.ts b/chokidar/chokidar.d.ts new file mode 100644 index 000000000..6a417ca72 --- /dev/null +++ b/chokidar/chokidar.d.ts @@ -0,0 +1,42 @@ +// Type definitions for chokidar 1.0.0 +// Project: https://github.com/paulmillr/chokidar +// Definitions by: Stefan Steinhart +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module "fs" +{ + interface FSWatcher + { + add(fileDirOrGlob:string):void; + add(filesDirsOrGlobs:Array):void; + unwatch(fileDirOrGlob:string):void; + unwatch(filesDirsOrGlobs:Array):void; + } +} + +declare module "chokidar" +{ + interface WatchOptions + { + persistent?:boolean; + ignored?:any; + ignoreInitial?:boolean; + followSymlinks?:boolean; + cwd?:string; + usePolling?:boolean; + useFsEvents?:boolean; + alwaysStat?:boolean; + depth?:number; + interval?:number; + binaryInterval?:number; + ignorePermissionErrors?:boolean; + atomic?:boolean; + } + + import fs = require("fs"); + + function watch( fileDirOrGlob:string, options?:WatchOptions ):fs.FSWatcher; + function watch( filesDirsOrGlobs:Array, options?:WatchOptions ):fs.FSWatcher; +}