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.
		
		
		
		
		
			
		
			
				
					
					
						
							40 lines
						
					
					
						
							797 B
						
					
					
				
			
		
		
	
	
							40 lines
						
					
					
						
							797 B
						
					
					
				| #!/usr/bin/env node
 | |
| 
 | |
| const flat = require('.')
 | |
| const fs = require('fs')
 | |
| const path = require('path')
 | |
| const readline = require('readline')
 | |
| 
 | |
| if (process.stdin.isTTY) {
 | |
|   // Read from file
 | |
|   const file = path.resolve(process.cwd(), process.argv.slice(2)[0])
 | |
|   if (!file) usage()
 | |
|   if (!fs.existsSync(file)) usage()
 | |
|   out(require(file))
 | |
| } else {
 | |
|   // Read from newline-delimited STDIN
 | |
|   const lines = []
 | |
|   readline.createInterface({
 | |
|     input: process.stdin,
 | |
|     output: process.stdout,
 | |
|     terminal: false
 | |
|   })
 | |
|     .on('line', line => lines.push(line))
 | |
|     .on('close', () => out(JSON.parse(lines.join('\n'))))
 | |
| }
 | |
| 
 | |
| function out (data) {
 | |
|   process.stdout.write(JSON.stringify(flat(data), null, 2))
 | |
| }
 | |
| 
 | |
| function usage () {
 | |
|   console.log(`
 | |
| Usage:
 | |
| 
 | |
| flat foo.json
 | |
| cat foo.json | flat
 | |
| `)
 | |
| 
 | |
|   process.exit()
 | |
| }
 |