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.
		
		
		
		
		
			
		
			
				
					43 lines
				
				1.0 KiB
			
		
		
			
		
	
	
					43 lines
				
				1.0 KiB
			| 
											2 years ago
										 | var assert = require('assert'); | ||
|  | var Traverse = require('traverse'); | ||
|  | 
 | ||
|  | exports['interface map'] = function () { | ||
|  |     var obj = { a : [ 5,6,7 ], b : { c : [8] } }; | ||
|  |      | ||
|  |     assert.deepEqual( | ||
|  |         Traverse.paths(obj) | ||
|  |             .sort() | ||
|  |             .map(function (path) { return path.join('/') }) | ||
|  |             .slice(1) | ||
|  |             .join(' ') | ||
|  |          , | ||
|  |          'a a/0 a/1 a/2 b b/c b/c/0' | ||
|  |     ); | ||
|  |      | ||
|  |     assert.deepEqual( | ||
|  |         Traverse.nodes(obj), | ||
|  |         [ | ||
|  |             { a: [ 5, 6, 7 ], b: { c: [ 8 ] } }, | ||
|  |             [ 5, 6, 7 ], 5, 6, 7, | ||
|  |             { c: [ 8 ] }, [ 8 ], 8 | ||
|  |         ] | ||
|  |     ); | ||
|  |      | ||
|  |     assert.deepEqual( | ||
|  |         Traverse.map(obj, function (node) { | ||
|  |             if (typeof node == 'number') { | ||
|  |                 return node + 1000; | ||
|  |             } | ||
|  |             else if (Array.isArray(node)) { | ||
|  |                 return node.join(' '); | ||
|  |             } | ||
|  |         }), | ||
|  |         { a: '5 6 7', b: { c: '8' } } | ||
|  |     ); | ||
|  |      | ||
|  |     var nodes = 0; | ||
|  |     Traverse.forEach(obj, function (node) { nodes ++ }); | ||
|  |     assert.deepEqual(nodes, 8); | ||
|  | }; | ||
|  | 
 |