You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					53 lines
				
				1.2 KiB
			
		
		
			
		
	
	
					53 lines
				
				1.2 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								var utils = require('../utils');
							 | 
						||
| 
								 | 
							
								var add = require('./add');
							 | 
						||
| 
								 | 
							
								var parse = require('./parse');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// exported
							 | 
						||
| 
								 | 
							
								var rules = { ignore: [], watch: [] };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Loads a nodemon config file and populates the ignore
							 | 
						||
| 
								 | 
							
								 * and watch rules with it's contents, and calls callback
							 | 
						||
| 
								 | 
							
								 * with the new rules
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @param  {String} filename
							 | 
						||
| 
								 | 
							
								 * @param  {Function} callback
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								function load(filename, callback) {
							 | 
						||
| 
								 | 
							
								  parse(filename, function (err, result) {
							 | 
						||
| 
								 | 
							
								    if (err) {
							 | 
						||
| 
								 | 
							
								      // we should have bombed already, but
							 | 
						||
| 
								 | 
							
								      utils.log.error(err);
							 | 
						||
| 
								 | 
							
								      callback(err);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (result.raw) {
							 | 
						||
| 
								 | 
							
								      result.raw.forEach(add.bind(null, rules, 'ignore'));
							 | 
						||
| 
								 | 
							
								    } else {
							 | 
						||
| 
								 | 
							
								      result.ignore.forEach(add.bind(null, rules, 'ignore'));
							 | 
						||
| 
								 | 
							
								      result.watch.forEach(add.bind(null, rules, 'watch'));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    callback(null, rules);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = {
							 | 
						||
| 
								 | 
							
								  reset: function () { // just used for testing
							 | 
						||
| 
								 | 
							
								    rules.ignore.length = rules.watch.length = 0;
							 | 
						||
| 
								 | 
							
								    delete rules.ignore.re;
							 | 
						||
| 
								 | 
							
								    delete rules.watch.re;
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  load: load,
							 | 
						||
| 
								 | 
							
								  ignore: {
							 | 
						||
| 
								 | 
							
								    test: add.bind(null, rules, 'ignore'),
							 | 
						||
| 
								 | 
							
								    add: add.bind(null, rules, 'ignore'),
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  watch: {
							 | 
						||
| 
								 | 
							
								    test: add.bind(null, rules, 'watch'),
							 | 
						||
| 
								 | 
							
								    add: add.bind(null, rules, 'watch'),
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  add: add.bind(null, rules),
							 | 
						||
| 
								 | 
							
								  rules: rules,
							 | 
						||
| 
								 | 
							
								};
							 |