| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 | | 'use strict'; |  |   |  | var test = require('tape'); |  | var traverse = require('../'); |  |   |  | test('interface map', function (t) { |  |     var obj = { a: [5, 6, 7], b: { c: [8] } }; |  |   |  |     t.same( |  |         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' |  |     ); |  |   |  |     t.same( |  |         traverse.nodes(obj), |  |         [ |  |             { a: [5, 6, 7], b: { c: [8] } }, |  |             [5, 6, 7], 5, 6, 7, |  |             { c: [8] }, [8], 8, |  |         ] |  |     ); |  |   |  |     t.same( |  |         traverse.map(obj, function (node) { |  |             if (typeof node === 'number') { |  |                 return node + 1000; |  |             } |  |             if (Array.isArray(node)) { |  |                 return node.join(' '); |  |             } |  |             return void undefined; |  |         }), |  |         { a: '5 6 7', b: { c: '8' } } |  |     ); |  |   |  |     var nodes = 0; |  |     traverse.forEach(obj, function () { nodes += 1; }); |  |     t.equal(nodes, 8); |  |   |  |     t.end(); |  | }); | 
 |