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
			| 
								 
											3 years ago
										 
									 | 
							
								#!/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()
							 | 
						||
| 
								 | 
							
								}
							 |