prettyjson
1.44 KB
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
47
48
49
50
#!/usr/bin/env node
var prettyjson = require('../lib/prettyjson');
var fs = require('fs');
var colors = require('colors/safe');
var argv = require('minimist')(process.argv.slice(2));
var options = {
keysColor: argv.keys || process.env.PRETTYJSON_KEYS,
dashColor: argv.dash || process.env.PRETTYJSON_DASH,
defaultIndentation: argv.indent || process.env.PRETTYJSON_INDENT,
stringColor: argv.string || process.env.PRETTYJSON_STRING,
numberColor: argv.number || process.env.PRETTYJSON_NUMBER,
noColor: argv['nocolor'] || process.env.PRETTYJSON_NOCOLOR,
noAlign: argv['noalign'] || process.env.PRETTYJSON_NOALIGN,
inlineArrays: argv['inline-arrays'] || process.env.PRETTYJSON_INLINE_ARRAYS
};
var renderInputJson = function(input){
console.log(prettyjson.renderString(input, options));
};
if (argv._.length) {
// First parameter is the file to read and parse
var filename = argv._[0];
try {
renderInputJson(fs.readFileSync(filename, 'utf8'));
} catch (e) {
console.error(colors.red('Error: ') + 'File \'' + filename + '\' does not exist');
process.exit(1);
}
} else {
// Read input stream
var streamData = '';
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', function (chunk) {
if (chunk === '\n') {
renderInputJson(streamData);
streamData = '';
return;
}
streamData += chunk;
});
process.stdin.on('end', function(){
renderInputJson(streamData);
});
}