Socket
Socket
Sign inDemoInstall

node-plantuml-latest

Package Overview
Dependencies
2
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.3.0 to 2.0.0

6

History.md
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 @@ ==================

2

lib/node-plantuml.js

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc