24 lines
		
	
	
		
			697 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			24 lines
		
	
	
		
			697 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | var fs = require('fs') | ||
|  |   , watch = require('../main') | ||
|  |   , assert = require('assert') | ||
|  |   ; | ||
|  | 
 | ||
|  | //
 | ||
|  | // Demonstrate that the function of 'filter' is semantically inconsistent with
 | ||
|  | // usual convention, that returning true means 'keep this'.
 | ||
|  | //
 | ||
|  | function isDirOrQ(f, stat) { return stat.isDirectory() || f === 'Q'; } | ||
|  | 
 | ||
|  | watch.watchTree(__dirname, { filter: isDirOrQ }, function (f, curr, prev) { | ||
|  |   if (typeof f == 'object' && prev === null && curr === null) { | ||
|  |     Object.keys(f).forEach(function(name) { | ||
|  |       var stat = f[name]; | ||
|  |       assert(isDirOrQ(name, stat)); | ||
|  |     }); | ||
|  | 
 | ||
|  |     // If the process never exits then `unwatchTree` failed to unwatch all
 | ||
|  |     // the files.
 | ||
|  |     watch.unwatchTree(__dirname); | ||
|  |   } | ||
|  | }); |