node-plantuml-latest
Advanced tools
Comparing version 1.3.0 to 2.0.0
2.0.0 / 2020-09-10 | ||
================== | ||
**features** | ||
* [[`a7a3f02`](http://github.com/yuque/node-plantuml/commit/a7a3f02efe630afc045d8a84499a9c9dd1050e3c)] - feat: remove nail, upgrade plantuml to 1.2020.16 (dead-horse <<dead_horse@qq.com>>) | ||
1.3.0 / 2019-09-09 | ||
@@ -3,0 +9,0 @@ ================== |
@@ -26,4 +26,2 @@ 'use strict' | ||
module.exports.useNailgun = plantumlExecutor.useNailgun | ||
function PlantumlEncodeStream () { | ||
@@ -30,0 +28,0 @@ stream.Transform.call(this) |
@@ -5,4 +5,2 @@ 'use strict' | ||
var path = require('path') | ||
var nailgun = require('node-nailgun-server') | ||
var ngClient = require('node-nailgun-client-fix') | ||
@@ -12,43 +10,4 @@ var INCLUDED_PLANTUML_JAR = path.join(__dirname, '../vendor/plantuml.jar') | ||
var PLANTUML_NAIL_JAR = path.join(__dirname, '../nail/plantumlnail.jar') | ||
var PLANTUML_NAIL_CLASS = 'PlantumlNail' | ||
var LOCALHOST = 'localhost' | ||
var GENERATE_PORT = 0 | ||
var nailgunServer | ||
var clientOptions | ||
var nailgunRunning = false | ||
module.exports.useNailgun = function (callback) { | ||
var options = { address: LOCALHOST, port: GENERATE_PORT } | ||
nailgunServer = nailgun.createServer(options, function (port) { | ||
clientOptions = { | ||
host: LOCALHOST, | ||
port: port | ||
} | ||
ngClient.exec('ng-cp', [PLANTUML_JAR], clientOptions) | ||
ngClient.exec('ng-cp', [PLANTUML_NAIL_JAR], clientOptions) | ||
// Give Nailgun some time to load the classpath | ||
setTimeout(function () { | ||
nailgunRunning = true | ||
if (typeof callback === 'function') { | ||
callback() | ||
} | ||
}, 50) | ||
}) | ||
return nailgunServer | ||
} | ||
// TODO: proper error handling | ||
function execWithNailgun (argv, cwd, cb) { | ||
clientOptions.cwd = cwd || process.cwd() | ||
return ngClient.exec(PLANTUML_NAIL_CLASS, argv, clientOptions) | ||
} | ||
// TODO: proper error handling | ||
function execWithSpawn (argv, cwd, cb) { | ||
function execWithSpawn (argv, cwd) { | ||
cwd = cwd || process.cwd() | ||
@@ -73,32 +32,27 @@ var opts = [ | ||
var timer = setTimeout(() => { | ||
if (nailgunRunning) { | ||
// reload nailgun server if timeout | ||
nailgunRunning = false | ||
nailgunServer.shutdown() | ||
module.exports.useNailgun() | ||
var task = execWithSpawn(argv, cwd) | ||
if (typeof callback === 'function') { | ||
var cb | ||
var timer = setTimeout(function () { | ||
var err = new Error('generate plantuml timeout after 60s') | ||
err.argv = argv | ||
cb && cb(err, null) | ||
}, 60000) | ||
cb = function (err, buffer) { | ||
clearTimeout(timer) | ||
callback(err, buffer) | ||
cb = null | ||
task.kill() | ||
} | ||
var err = new Error('generate plantuml timeout after 60s') | ||
err.argv = argv | ||
callback && callback(err, null) | ||
callback = null | ||
}, 60000) | ||
var task | ||
if (nailgunRunning) { | ||
task = execWithNailgun(argv, cwd, callback) | ||
} else { | ||
task = execWithSpawn(argv, cwd, callback) | ||
} | ||
if (typeof callback === 'function') { | ||
var chunks = [] | ||
task.stdout.on('data', function (chunk) { chunks.push(chunk) }) | ||
task.stdout.on('end', function () { | ||
clearTimeout(timer) | ||
callback && callback(null, Buffer.concat(chunks)) | ||
cb && cb(null, Buffer.concat(chunks)) | ||
}) | ||
task.stdout.on('error', function () { | ||
clearTimeout(timer) | ||
callback && callback(new Error('error while reading plantuml output'), null) | ||
cb && cb(new Error('error while reading plantuml output'), null) | ||
}) | ||
@@ -105,0 +59,0 @@ } |
{ | ||
"name": "node-plantuml-latest", | ||
"version": "1.3.0", | ||
"plantumlVersion": "1.2019.9", | ||
"version": "2.0.0", | ||
"plantumlVersion": "1.2020.16", | ||
"description": "A Node.js module and CLI for running PlantUML", | ||
@@ -17,4 +17,3 @@ "main": "index.js", | ||
"vendor/plantuml.jar", | ||
"resources/", | ||
"nail/plantumlnail.jar" | ||
"resources/" | ||
], | ||
@@ -28,4 +27,2 @@ "keywords": [ | ||
"commander": "^2.8.1", | ||
"node-nailgun-client-fix": "^1.0.0", | ||
"node-nailgun-server": "^0.1.4", | ||
"plantuml-encoder": "^1.2.5" | ||
@@ -32,0 +29,0 @@ }, |
Sorry, the diff of this file is not supported yet
8689612
2
11
351
- Removednode-nailgun-client-fix@^1.0.0
- Removednode-nailgun-server@^0.1.4
- Removednode-nailgun-client-fix@1.0.0(transitive)
- Removednode-nailgun-server@0.1.4(transitive)