New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

react-stdio

Package Overview
Dependencies
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-stdio - npm Package Compare versions

Comparing version
2.0.5
to
2.0.6
+107
server.js
var path = require('path')
var invariant = require('invariant')
var EventStream = require('event-stream')
var JSONStream = require('JSONStream')
var ReactDOMServer = require('react-dom/server')
var React = require('react')
function getDefaultExports(file) {
var moduleExports = require(file)
// Return exports.default if using ES2015 modules.
if (moduleExports && moduleExports.default)
return moduleExports.default
return moduleExports
}
function renderToStaticMarkup(element, callback) {
callback(null, ReactDOMServer.renderToStaticMarkup(element))
}
function renderToString(element, callback) {
callback(null, ReactDOMServer.renderToString(element))
}
function handleRequest(workingDir, request, callback) {
var componentPath = request.component
var renderMethod = request.render
var props = request.props
invariant(
componentPath != null,
'Missing { component } in request'
)
var render
if (renderMethod == null || renderMethod === 'renderToString') {
render = renderToString
} else if (renderMethod === 'renderToStaticMarkup') {
render = renderToStaticMarkup
} else {
var methodFile = path.resolve(workingDir, renderMethod)
try {
render = getDefaultExports(methodFile)
} catch (error) {
if (error.code !== 'MODULE_NOT_FOUND')
process.stderr.write(error.stack + '\n')
}
}
invariant(
typeof render === 'function',
'Cannot load render method: %s',
renderMethod
)
var componentFile = path.resolve(workingDir, componentPath)
var component
try {
component = getDefaultExports(componentFile)
} catch (error) {
if (error.code !== 'MODULE_NOT_FOUND')
process.stderr.write(error.stack + '\n')
}
invariant(
component != null,
'Cannot load component: %s',
componentPath
)
render(
React.createElement(component, props),
callback
)
}
function createRequestHandler(workingDir) {
return function (request, callback) {
try {
handleRequest(workingDir, request, function (error, html) {
if (error) {
callback(error)
} else if (typeof html !== 'string') {
// Crash the server process.
callback(new Error('Render method must return a string'))
} else {
callback(null, JSON.stringify({ html: html }))
}
})
} catch (error) {
callback(null, JSON.stringify({ error: error.message }))
}
}
}
// For convenience, modules we require can use ES2015 and JSX.
require('babel-register')({
presets: [ 'es2015', 'react' ]
})
process.stdin
.pipe(JSONStream.parse())
.pipe(EventStream.map(createRequestHandler(process.cwd())))
.pipe(process.stdout)
+3
-2
{
"name": "react-stdio",
"version": "2.0.5",
"version": "2.0.6",
"description": "Render React.js components on any backend",

@@ -8,3 +8,4 @@ "bin": "./bin/react-stdio",

"files": [
"bin"
"bin",
"server.js"
],

@@ -11,0 +12,0 @@ "author": "Michael Jackson",