server/rpc: add Uint8Array to node transport safe arguments

This commit is contained in:
Koushik Dutta
2023-04-08 10:05:02 -07:00
parent 19f7688a65
commit efd125b6e4
4 changed files with 7 additions and 2 deletions

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/server",
"version": "0.7.54",
"version": "0.7.55",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@scrypted/server",
"version": "0.7.54",
"version": "0.7.55",
"license": "ISC",
"dependencies": {
"@mapbox/node-pre-gyp": "^1.0.10",

View File

@@ -46,6 +46,7 @@ export class NodeForkWorker extends ChildProcessWorker {
}
});
peer.transportSafeArgumentTypes.add(Buffer.name);
peer.transportSafeArgumentTypes.add(Uint8Array.name);
peer.addSerializer(net.Socket, net.Socket.name, new SidebandSocketSerializer());
}

View File

@@ -16,6 +16,7 @@ function start(mainFilename: string) {
}
});
peer.transportSafeArgumentTypes.add(Buffer.name);
peer.transportSafeArgumentTypes.add(Uint8Array.name);
worker_threads.parentPort.on('message', message => peer.handleMessage(v8.deserialize(message)));
}
else {
@@ -27,6 +28,7 @@ function start(mainFilename: string) {
}));
peer.transportSafeArgumentTypes.add(Buffer.name);
peer.transportSafeArgumentTypes.add(Uint8Array.name);
peer.addSerializer(net.Socket, net.Socket.name, new SidebandSocketSerializer());
process.on('message', message => peer.handleMessage(message as RpcMessage));
process.on('disconnect', () => {

View File

@@ -43,6 +43,7 @@ export async function newThread<T>(...args: any[]): Promise<T> {
}
});
mainPeer.transportSafeArgumentTypes.add(Buffer.name);
mainPeer.transportSafeArgumentTypes.add(Uint8Array.name);
thread_worker_threads.parentPort.on('message', (message: any) => mainPeer.handleMessage(thread_v8.deserialize(message)));
mainPeer.params.eval = async (script: string, moduleNames: string[], paramNames: string[], ...paramValues: any[]) => {
@@ -82,6 +83,7 @@ export async function newThread<T>(...args: any[]): Promise<T> {
}
});
threadPeer.transportSafeArgumentTypes.add(Buffer.name);
threadPeer.transportSafeArgumentTypes.add(Uint8Array.name);
worker.on('message', (message: any) => threadPeer.handleMessage(v8.deserialize(message)));
const e = await threadPeer.getParam('eval');