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.
		
		
		
		
		
			
		
			
				
					89 lines
				
				1.7 KiB
			
		
		
			
		
	
	
					89 lines
				
				1.7 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								# archy
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Render nested hierarchies `npm ls` style with unicode pipes.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[](http://ci.testling.com/substack/node-archy)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[](http://travis-ci.org/substack/node-archy)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# example
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								``` js
							 | 
						||
| 
								 | 
							
								var archy = require('archy');
							 | 
						||
| 
								 | 
							
								var s = archy({
							 | 
						||
| 
								 | 
							
								  label : 'beep',
							 | 
						||
| 
								 | 
							
								  nodes : [
							 | 
						||
| 
								 | 
							
								    'ity',
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								      label : 'boop',
							 | 
						||
| 
								 | 
							
								      nodes : [
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								          label : 'o_O',
							 | 
						||
| 
								 | 
							
								          nodes : [
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								              label : 'oh',
							 | 
						||
| 
								 | 
							
								              nodes : [ 'hello', 'puny' ]
							 | 
						||
| 
								 | 
							
								            },
							 | 
						||
| 
								 | 
							
								            'human'
							 | 
						||
| 
								 | 
							
								          ]
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        'party\ntime!'
							 | 
						||
| 
								 | 
							
								      ]
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  ]
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								console.log(s);
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								output
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								beep
							 | 
						||
| 
								 | 
							
								├── ity
							 | 
						||
| 
								 | 
							
								└─┬ boop
							 | 
						||
| 
								 | 
							
								  ├─┬ o_O
							 | 
						||
| 
								 | 
							
								  │ ├─┬ oh
							 | 
						||
| 
								 | 
							
								  │ │ ├── hello
							 | 
						||
| 
								 | 
							
								  │ │ └── puny
							 | 
						||
| 
								 | 
							
								  │ └── human
							 | 
						||
| 
								 | 
							
								  └── party
							 | 
						||
| 
								 | 
							
								      time!
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# methods
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var archy = require('archy')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## archy(obj, prefix='', opts={})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Return a string representation of `obj` with unicode pipe characters like how
							 | 
						||
| 
								 | 
							
								`npm ls` looks.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								`obj` should be a tree of nested objects with `'label'` and `'nodes'` fields.
							 | 
						||
| 
								 | 
							
								`'label'` is a string of text to display at a node level and `'nodes'` is an
							 | 
						||
| 
								 | 
							
								array of the descendents of the current node.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								If a node is a string, that string will be used as the `'label'` and an empty
							 | 
						||
| 
								 | 
							
								array of `'nodes'` will be used.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								`prefix` gets prepended to all the lines and is used by the algorithm to
							 | 
						||
| 
								 | 
							
								recursively update.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								If `'label'` has newlines they will be indented at the present indentation level
							 | 
						||
| 
								 | 
							
								with the current prefix.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								To disable unicode results in favor of all-ansi output set `opts.unicode` to
							 | 
						||
| 
								 | 
							
								`false`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# install
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								With [npm](http://npmjs.org) do:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								npm install archy
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# license
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								MIT
							 |