|
1 | 1 | #!/usr/bin/env node |
2 | 2 |
|
3 | | -'use strict'; |
| 3 | +'use strict' |
4 | 4 |
|
5 | | -var async = require('async'); |
6 | | -var chalk = require('chalk'); |
7 | | -var cmd = require('commander'); |
8 | | -var debug = require('debug')('httpsnippet'); |
9 | | -var fs = require('fs'); |
10 | | -var HTTPSnippet = require('../src'); |
11 | | -var path = require('path'); |
12 | | -var pkg = require('../package.json'); |
| 5 | +var async = require('async') |
| 6 | +var chalk = require('chalk') |
| 7 | +var cmd = require('commander') |
| 8 | +var debug = require('debug')('httpsnippet') |
| 9 | +var fs = require('fs') |
| 10 | +var HTTPSnippet = require('../src') |
| 11 | +var path = require('path') |
| 12 | +var pkg = require('../package.json') |
13 | 13 |
|
14 | 14 | cmd |
15 | 15 | .version(pkg.version) |
16 | | - .usage('[options] <file>') |
| 16 | + .usage('[options] <files ...>') |
17 | 17 | .option('-t, --target <target>', 'target output') |
18 | 18 | .option('-c, --client [client]', 'target client library') |
19 | 19 | .option('-o, --output <directory>', 'write output to directory') |
20 | 20 | .option('-n, --output-name <name>', 'output file name') |
21 | | - .parse(process.argv); |
| 21 | + .parse(process.argv) |
22 | 22 |
|
23 | 23 | if (!cmd.args.length || !cmd.target) { |
24 | | - cmd.help(); |
| 24 | + cmd.help() |
25 | 25 | } |
26 | 26 |
|
27 | 27 | if (cmd.output) { |
28 | | - var dir = path.resolve(cmd.output); |
| 28 | + var dir = path.resolve(cmd.output) |
29 | 29 |
|
30 | 30 | if (!fs.existsSync(dir)) { |
31 | | - fs.mkdirSync(dir); |
| 31 | + fs.mkdirSync(dir) |
32 | 32 | } |
33 | 33 | } |
34 | 34 |
|
35 | 35 | async.waterfall([ |
36 | 36 | function isFile (next) { |
37 | 37 | var iterator = function (item, cb) { |
38 | | - cb(fs.statSync(item).isFile()); |
39 | | - }; |
| 38 | + cb(fs.statSync(item).isFile()) |
| 39 | + } |
40 | 40 |
|
41 | 41 | async.filter(cmd.args, iterator, function (results) { |
42 | | - next(null, results); |
43 | | - }); |
| 42 | + next(null, results) |
| 43 | + }) |
44 | 44 | }, |
45 | 45 |
|
46 | 46 | function read (files, next) { |
47 | 47 | var iterator = function (file, cb) { |
48 | | - fs.readFile(file, cb); |
49 | | - }; |
| 48 | + fs.readFile(file, cb) |
| 49 | + } |
50 | 50 |
|
51 | 51 | async.map(files, iterator, function (err, results) { |
52 | | - next(err, files, results); |
53 | | - }); |
| 52 | + next(err, files, results) |
| 53 | + }) |
54 | 54 | }, |
55 | 55 |
|
56 | 56 | function parse (files, buffers, next) { |
57 | 57 | var iterator = function (buffer, cb) { |
58 | 58 | try { |
59 | | - cb(null, JSON.parse(buffer)); |
| 59 | + cb(null, JSON.parse(buffer)) |
60 | 60 | } catch (e) { |
61 | | - debug('failed to parse source json'); |
62 | | - cb('failed to parse source json', null); |
| 61 | + debug('failed to parse source json') |
| 62 | + cb('failed to parse source json', null) |
63 | 63 | } |
64 | | - }; |
| 64 | + } |
65 | 65 |
|
66 | 66 | async.map(buffers, iterator, function (err, results) { |
67 | | - next(err, files, results); |
68 | | - }); |
| 67 | + next(err, files, results) |
| 68 | + }) |
69 | 69 | }, |
70 | 70 |
|
71 | 71 | function snippet (files, sources, next) { |
72 | 72 | var iterator = function (source, cb) { |
73 | | - var snippet; |
| 73 | + var snippet |
74 | 74 |
|
75 | 75 | try { |
76 | | - snippet = new HTTPSnippet(source); |
| 76 | + snippet = new HTTPSnippet(source) |
77 | 77 | } catch (e) { |
78 | | - debug(e); |
| 78 | + debug(e) |
79 | 79 |
|
80 | | - return cb(!e[0] ? 'invalid input' : (e[0].field + ' ' + e[0].message), null); |
| 80 | + return cb(!e[0] ? 'invalid input' : (e[0].field + ' ' + e[0].message), null) |
81 | 81 | } |
82 | 82 |
|
83 | | - cb(null, snippet.convert(cmd.target, cmd.client)); |
84 | | - }; |
| 83 | + cb(null, snippet.convert(cmd.target, cmd.client)) |
| 84 | + } |
85 | 85 |
|
86 | 86 | async.map(sources, iterator, function (err, results) { |
87 | | - next(err, files, results); |
88 | | - }); |
| 87 | + next(err, files, results) |
| 88 | + }) |
89 | 89 | }, |
90 | 90 |
|
91 | 91 | function writeOutput (files, snippets, next) { |
92 | 92 | if (cmd.output) { |
93 | 93 | var iterator = function (file) { |
94 | | - var index = files.indexOf(file); |
95 | | - var name = path.basename(file, path.extname(file)); |
| 94 | + var index = files.indexOf(file) |
| 95 | + var name = path.basename(file, path.extname(file)) |
96 | 96 |
|
97 | 97 | var filename = path.format({ |
98 | 98 | dir: dir, |
99 | 99 | base: name + HTTPSnippet.extname(cmd.target) |
100 | | - }); |
| 100 | + }) |
101 | 101 |
|
102 | | - fs.writeFile(filename, snippets[index] + '\n'); |
103 | | - }; |
| 102 | + fs.writeFile(filename, snippets[index] + '\n') |
| 103 | + } |
104 | 104 |
|
105 | | - async.each(files, iterator); |
| 105 | + async.each(files, iterator) |
106 | 106 | } |
107 | 107 |
|
108 | | - next(null, files, snippets); |
| 108 | + next(null, files, snippets) |
109 | 109 | }, |
110 | 110 |
|
111 | 111 | function log (files, snippets, next) { |
112 | 112 | if (!cmd.output) { |
113 | 113 | var iterator = function (file) { |
114 | | - var index = files.indexOf(file); |
115 | | - console.log('%s:\n%s\n', chalk.cyan.bold.underline(file), snippets[index]); |
116 | | - }; |
| 114 | + var index = files.indexOf(file) |
| 115 | + console.log('%s:\n%s\n', chalk.cyan.bold.underline(file), snippets[index]) |
| 116 | + } |
117 | 117 |
|
118 | | - async.each(files, iterator); |
| 118 | + async.each(files, iterator) |
119 | 119 | } |
120 | 120 | } |
121 | 121 | ], function (err, result) { |
122 | | - if (err) { |
123 | | - console.log('%s: %s', chalk.red.bold('ERROR'), err); |
124 | | - } |
125 | | -}); |
| 122 | + if (err) { |
| 123 | + console.log('%s: %s', chalk.red.bold('ERROR'), err) |
| 124 | + } |
| 125 | + }) |
0 commit comments