server: note versions on all consoles

This commit is contained in:
Koushik Dutta
2022-03-19 10:52:02 -07:00
parent 5b91c6b8be
commit d00ca20e54
5 changed files with 16 additions and 10 deletions

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/server",
"version": "0.0.158",
"version": "0.0.159",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@scrypted/server",
"version": "0.0.158",
"version": "0.0.159",
"license": "ISC",
"dependencies": {
"@mapbox/node-pre-gyp": "^1.0.8",

View File

@@ -1,6 +1,6 @@
{
"name": "@scrypted/server",
"version": "0.0.158",
"version": "0.0.159",
"description": "",
"dependencies": {
"@mapbox/node-pre-gyp": "^1.0.8",

View File

@@ -20,9 +20,13 @@ export interface StdPassThroughs {
buffers: Buffer[];
}
export async function createConsoleServer(remoteStdout: Readable, remoteStderr: Readable) {
export async function createConsoleServer(remoteStdout: Readable, remoteStderr: Readable, header: string) {
const outputs = new Map<string, StdPassThroughs>();
const addHeader = (pts: StdPassThroughs) => {
pts.buffers.push(Buffer.from(header));
}
const getPassthroughs = (nativeId?: ScryptedNativeId) => {
if (!nativeId)
nativeId = undefined;
@@ -49,6 +53,8 @@ export async function createConsoleServer(remoteStdout: Readable, remoteStderr:
stdout.on('data', appendOutput);
stderr.on('data', appendOutput);
addHeader(pts);
}
return pts;
@@ -132,6 +138,7 @@ export async function createConsoleServer(remoteStdout: Readable, remoteStderr:
const pt = outputs.get(nativeId);
if (pt)
pt.buffers = [];
addHeader(pt);
},
destroy() {
for (const socket of sockets) {

View File

@@ -25,6 +25,8 @@ import { PythonRuntimeWorker } from './runtime/python-worker';
import { NodeForkWorker } from './runtime/node-fork-worker';
import { NodeThreadWorker } from './runtime/node-thread-worker';
const serverVersion = require('../../package.json').version;
export class PluginHost {
worker: RuntimeWorker;
peer: RpcPeer;
@@ -283,12 +285,8 @@ export class PluginHost {
this.worker.stdout.on('data', data => console.log(data.toString()));
this.worker.stderr.on('data', data => console.error(data.toString()));
this.consoleServer = createConsoleServer(this.worker.stdout, this.worker.stderr);
this.consoleServer.then(cs => {
const { pluginConsole } = cs;
pluginConsole.log('starting plugin', this.pluginId, this.packageJson.version);
});
const consoleHeader = `server version: ${serverVersion}\nplugin version: ${this.pluginId} ${this.packageJson.version}\n`;
this.consoleServer = createConsoleServer(this.worker.stdout, this.worker.stderr, consoleHeader);
const disconnect = () => {
connected = false;

View File

@@ -32,6 +32,7 @@ if (!semver.gte(process.version, '16.0.0')) {
process.on('unhandledRejection', error => {
if (error?.constructor !== RPCResultError && error?.constructor !== PluginError) {
console.error('pending crash', error);
throw error;
}
console.warn('unhandled rejection of RPC Result', error);