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.
		
		
		
		
		
			
		
			
				
					36 lines
				
				780 B
			
		
		
			
		
	
	
					36 lines
				
				780 B
			| 
								 
											3 years ago
										 
									 | 
							
								var assert = require('assert');
							 | 
						||
| 
								 | 
							
								var Traverse = require('traverse');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.dateEach = function () {
							 | 
						||
| 
								 | 
							
								    var obj = { x : new Date, y : 10, z : 5 };
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    var counts = {};
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    Traverse(obj).forEach(function (node) {
							 | 
						||
| 
								 | 
							
								        var t = (node instanceof Date && 'Date') || typeof node;
							 | 
						||
| 
								 | 
							
								        counts[t] = (counts[t] || 0) + 1;
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    assert.deepEqual(counts, {
							 | 
						||
| 
								 | 
							
								        object : 1,
							 | 
						||
| 
								 | 
							
								        Date : 1,
							 | 
						||
| 
								 | 
							
								        number : 2,
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.dateMap = function () {
							 | 
						||
| 
								 | 
							
								    var obj = { x : new Date, y : 10, z : 5 };
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    var res = Traverse(obj).map(function (node) {
							 | 
						||
| 
								 | 
							
								        if (typeof node === 'number') this.update(node + 100);
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    assert.ok(obj.x !== res.x);
							 | 
						||
| 
								 | 
							
								    assert.deepEqual(res, {
							 | 
						||
| 
								 | 
							
								        x : obj.x,
							 | 
						||
| 
								 | 
							
								        y : 110,
							 | 
						||
| 
								 | 
							
								        z : 105,
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 |