|
1 | 1 | 'use strict' |
2 | | -var cp = require('child_process') |
3 | | -var path = require('path') |
4 | | -var util = require('util') |
5 | | -var a = require('array-tools') |
6 | | -var o = require('object-tools') |
7 | | -var fs = require('fs') |
8 | | -var mfs = require('more-fs') |
9 | | -var fileSet = require('file-set') |
10 | | -var Transform = require('stream').Transform |
11 | | -var cliOptions = require('./cli-options') |
| 2 | +const cp = require('child_process') |
| 3 | +const path = require('path') |
| 4 | +const util = require('util') |
| 5 | +const a = require('array-tools') |
| 6 | +const o = require('object-tools') |
| 7 | +const fs = require('fs') |
| 8 | +const mfs = require('more-fs') |
| 9 | +const fileSet = require('file-set') |
| 10 | +const Transform = require('stream').Transform |
| 11 | +const cliOptions = require('./cli-options') |
| 12 | +const os = require('os') |
12 | 13 |
|
13 | 14 | /** |
14 | 15 | Exports a single function to parse jsdoc data. |
@@ -186,15 +187,24 @@ function getJsdocOutput (src, options, done) { |
186 | 187 | } |
187 | 188 | args = args.concat(src) |
188 | 189 |
|
189 | | - var outputFilePath = mfs.getTempFilePath() + '.json' |
| 190 | + var outputFilePath = os.tmpdir() + '/jsdoc-stdout.json' |
190 | 191 | var outputFile = fs.openSync(outputFilePath, 'w') |
191 | | - var handle = cp.spawn('node', args, { stdio: [ process.stdin, outputFile, process.stderr ]}) |
| 192 | + var outputStderrPath = os.tmpdir() + '/jsdoc-stderr.json' |
| 193 | + var outputStderr = fs.openSync(outputStderrPath, 'w') |
| 194 | + var handle = cp.spawn('node', args, { stdio: [ process.stdin, outputFile, outputStderr ]}) |
192 | 195 | handle.on('error', done) |
193 | | - handle.on('close', function () { |
194 | | - fs.readFile(outputFilePath, function (err, data) { |
195 | | - done(err, data) |
| 196 | + handle.on('close', function (code) { |
| 197 | + if (code) { |
| 198 | + const output = fs.readFileSync(outputStderrPath, 'utf8') |
196 | 199 | fs.unlinkSync(outputFilePath) |
197 | | - }) |
| 200 | + fs.unlinkSync(outputStderrPath) |
| 201 | + done(new Error(output)) |
| 202 | + } else { |
| 203 | + const output = fs.readFileSync(outputFilePath, 'utf8') |
| 204 | + fs.unlinkSync(outputFilePath) |
| 205 | + fs.unlinkSync(outputStderrPath) |
| 206 | + done(null, output) |
| 207 | + } |
198 | 208 | }) |
199 | 209 | } |
200 | 210 |
|
|
0 commit comments